You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/09/28 19:58:23 UTC

[01/11] airavata git commit: data storage preference related changes to app catalog

Repository: airavata
Updated Branches:
  refs/heads/master 07da736bc -> d84783da0


http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 e78762b..7ea49a1 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 7cbec78..0770f8a 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 300aaef..8a60e4d 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 2f9f58c..0ff1255 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 bc247ce..de8be7b 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 14606b7..d50126d 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 d28b61d..c34336e 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
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  *   A friendly description of the task, usally used to communicate information to users.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 3b89d38..ff7927d 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 3bac9cd..021c468 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
@@ -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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 846a9f2..386a5e6 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 057bc7e..6af0fab 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 49eee38..f9dec17 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
index 359916d..f0085ed 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/GwyResourceProfileImpl.java
@@ -22,6 +22,7 @@
 package org.apache.airavata.registry.core.app.catalog.impl;
 
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.registry.core.app.catalog.resources.*;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogThriftConversion;
@@ -58,6 +59,7 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                     resource.setGatewayId(profileResource.getGatewayID());
                     resource.setOverrideByAiravata(preference.isOverridebyAiravata());
                     resource.setLoginUserName(preference.getLoginUserName());
+                    resource.setResourceCSToken(preference.getResourceSpecificCredentialStoreToken());
                     if (preference.getPreferredJobSubmissionProtocol() != null){
                         resource.setPreferredJobProtocol(preference.getPreferredJobSubmissionProtocol().toString());
                     }
@@ -72,6 +74,19 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                     resource.save();
                 }
             }
+            List<DataStoragePreference> dataStoragePreferences = gatewayProfile.getDataStoragePreferences();
+            if (dataStoragePreferences != null && !dataStoragePreferences.isEmpty()){
+                for (DataStoragePreference storagePreference : dataStoragePreferences){
+                    DataStoragePreferenceResource resource = new DataStoragePreferenceResource();
+                    resource.setDataMoveId(storagePreference.getDataMovememtResourceId());
+                    resource.setGatewayId(profileResource.getGatewayID());
+                    resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
+                    resource.setLoginUserName(storagePreference.getLoginUserName());
+                    resource.setResourceCSToken(storagePreference.getResourceSpecificCredentialStoreToken());
+                    resource.setGatewayProfile(profileResource);
+                    resource.save();
+                }
+            }
             return profileResource.getGatewayID();
         }catch (Exception e) {
             logger.error("Error while saving gateway profile...", e);
@@ -110,6 +125,19 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                     resource.save();
                 }
             }
+            List<DataStoragePreference> dataStoragePreferences = updatedProfile.getDataStoragePreferences();
+            if (dataStoragePreferences != null && !dataStoragePreferences.isEmpty()){
+                for (DataStoragePreference storagePreference : dataStoragePreferences){
+                    DataStoragePreferenceResource resource = new DataStoragePreferenceResource();
+                    resource.setDataMoveId(storagePreference.getDataMovememtResourceId());
+                    resource.setGatewayId(profileResource.getGatewayID());
+                    resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
+                    resource.setLoginUserName(storagePreference.getLoginUserName());
+                    resource.setResourceCSToken(storagePreference.getResourceSpecificCredentialStoreToken());
+                    resource.setGatewayProfile(profileResource);
+                    resource.save();
+                }
+            }
         }catch (Exception e) {
             logger.error("Error while updating gateway profile...", e);
             throw new AppCatalogException(e);
@@ -124,7 +152,8 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
             ComputeHostPreferenceResource prefResource = new ComputeHostPreferenceResource();
             List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.ComputeResourcePreferenceConstants.GATEWAY_ID, gatewayId);
             List<ComputeResourcePreference> computeResourcePreferences = AppCatalogThriftConversion.getComputeResourcePreferences(computePrefList);
-            return AppCatalogThriftConversion.getGatewayResourceProfile(gwresource, computeResourcePreferences);
+            List<DataStoragePreference> dataStoragePreferences = getAllDataStoragePreferences(gatewayId);
+            return AppCatalogThriftConversion.getGatewayResourceProfile(gwresource, computeResourcePreferences, dataStoragePreferences);
         }catch (Exception e) {
             logger.error("Error while retrieving gateway profile...", e);
             throw new AppCatalogException(e);
@@ -159,6 +188,21 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
     }
 
     @Override
+    public boolean removeDataStoragePreferenceFromGateway(String gatewayId, String preferenceId) throws AppCatalogException {
+        try {
+            DataStoragePreferenceResource resource = new DataStoragePreferenceResource();
+            Map<String, String> ids = new HashMap<String, String>();
+            ids.put(AppCatAbstractResource.DataStoragePreferenceConstants.GATEWAY_ID, gatewayId);
+            ids.put(AppCatAbstractResource.DataStoragePreferenceConstants.DATA_MOVEMENT_ID, preferenceId);
+            resource.remove(ids);
+            return true;
+        }catch (Exception e) {
+            logger.error("Error while deleting gateway profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
     public boolean isGatewayResourceProfileExists(String gatewayId) throws AppCatalogException {
         try {
             GatewayProfileResource resource = new GatewayProfileResource();
@@ -194,6 +238,26 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
         return null;
     }
 
+    @Override
+    public DataStoragePreference getDataStoragePreference(String gatewayId, String dataMoveId) throws AppCatalogException {
+        try {
+            DataStoragePreferenceResource prefResource = new DataStoragePreferenceResource();
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.ComputeResourcePreferenceConstants.GATEWAY_ID, gatewayId);
+            for (AppCatalogResource resource : computePrefList){
+                DataStoragePreferenceResource dsP = (DataStoragePreferenceResource) resource;
+                if (dsP.getDataMoveId() != null && !dsP.getDataMoveId().equals("")){
+                    if (dsP.getDataMoveId().equals(dataMoveId)){
+                        return AppCatalogThriftConversion.getDataStoragePreference(dsP);
+                    }
+                }
+            }
+        }catch (Exception e) {
+            logger.error("Error while retrieving data storage preference...", e);
+            throw new AppCatalogException(e);
+        }
+        return null;
+    }
+
     /**
      * @param gatewayId
      * @return
@@ -211,6 +275,18 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
     }
 
     @Override
+    public List<DataStoragePreference> getAllDataStoragePreferences(String gatewayId) throws AppCatalogException {
+        try {
+            DataStoragePreferenceResource prefResource = new DataStoragePreferenceResource();
+            List<AppCatalogResource> dataStoragePrefList = prefResource.get(AppCatAbstractResource.DataStoragePreferenceConstants.GATEWAY_ID, gatewayId);
+            return AppCatalogThriftConversion.getDataStoragePreferences(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 {
             GatewayProfileResource profileResource = new GatewayProfileResource();
@@ -238,7 +314,8 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                 for (AppCatalogResource resource : resourceList){
                     GatewayProfileResource gatewayProfileResource = (GatewayProfileResource)resource;
                     List<ComputeResourcePreference> computeResourcePreferences = getAllComputeResourcePreferences(gatewayProfileResource.getGatewayID());
-                    GatewayResourceProfile gatewayResourceProfile = AppCatalogThriftConversion.getGatewayResourceProfile(gatewayProfileResource, computeResourcePreferences);
+                    List<DataStoragePreference> dataStoragePreferences = getAllDataStoragePreferences(gatewayProfileResource.getGatewayID());
+                    GatewayResourceProfile gatewayResourceProfile = AppCatalogThriftConversion.getGatewayResourceProfile(gatewayProfileResource, computeResourcePreferences, dataStoragePreferences);
                     gatewayResourceProfileList.add(gatewayResourceProfile);
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/ComputeResourcePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/ComputeResourcePreference.java
index 0424d89..635c361 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/ComputeResourcePreference.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/ComputeResourcePreference.java
@@ -55,6 +55,8 @@ public class ComputeResourcePreference {
     private String projectNumber;
     @Column(name = "LOGIN_USERNAME")
     private String loginUserName;
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String computeResourceCSToken;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "RESOURCE_ID")
@@ -151,4 +153,12 @@ public class ComputeResourcePreference {
     public void setLoginUserName(String loginUserName) {
         this.loginUserName = loginUserName;
     }
+
+    public String getComputeResourceCSToken() {
+        return computeResourceCSToken;
+    }
+
+    public void setComputeResourceCSToken(String computeResourceCSToken) {
+        this.computeResourceCSToken = computeResourceCSToken;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
new file mode 100644
index 0000000..601f0db
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreference.java
@@ -0,0 +1,96 @@
+/*
+ *
+ * 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 = "DATA_STORAGE_PREFERENCE")
+@IdClass(DataStoragePreferencePK.class)
+public class DataStoragePreference {
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+    @Id
+    @Column(name = "DATA_MOVEMENT_ID")
+    private String dataMovementId;
+    @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 GatewayProfile gatewayProfile;
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public GatewayProfile getGatewayProfile() {
+        return gatewayProfile;
+    }
+
+    public void setGatewayProfile(GatewayProfile gatewayProfile) {
+        this.gatewayProfile = gatewayProfile;
+    }
+
+    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 getDataMovementID() {
+        return dataMovementId;
+    }
+
+    public void setDataMovementID(String dataMovementId) {
+        this.dataMovementId = dataMovementId;
+    }
+
+    public String getFsRootLocation() {
+        return fsRootLocation;
+    }
+
+    public void setFsRootLocation(String fsRootLocation) {
+        this.fsRootLocation = fsRootLocation;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
new file mode 100644
index 0000000..b33f221
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/DataStoragePreferencePK.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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 DataStoragePreferencePK implements Serializable {
+    private String gatewayId;
+    private String dataMovementId;
+
+    public DataStoragePreferencePK(String gatewayId, String dataMoveId) {
+        this.gatewayId = gatewayId;
+        this.dataMovementId = dataMoveId;
+    }
+
+    public DataStoragePreferencePK() {
+        ;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getDataMoveId() {
+        return dataMovementId;
+    }
+
+    public void setDataMoveId(String dataMoveId) {
+        this.dataMovementId = dataMoveId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 7e06859..ec669d2 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
@@ -53,6 +53,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public static final String WORKFLOW_OUTPUT = "WorkflowOutput";
     public static final String GATEWAY_PROFILE = "GatewayProfile";
     public static final String COMPUTE_RESOURCE_PREFERENCE = "ComputeResourcePreference";
+    public static final String DATA_STORAGE_PREFERENCE = "DataStoragePreference";
 	public static final String BATCH_QUEUE = "BatchQueue";
 	public static final String COMPUTE_RESOURCE_FILE_SYSTEM = "ComputeResourceFileSystem";
 	public static final String JOB_SUBMISSION_INTERFACE = "JobSubmissionInterface";
@@ -284,6 +285,11 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String ALLOCATION_PROJECT_NUMBER = "projectNumber";
     }
 
+    public final class DataStoragePreferenceConstants {
+        public static final String GATEWAY_ID = "gatewayId";
+        public static final String DATA_MOVEMENT_ID = "dataMovementId";
+    }
+
     // Batch Queue Table
  	public final class BatchQueueConstants {
  		public static final String COMPUTE_RESOURCE_ID = "computeResourceId";

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 46685c2..0528843 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
@@ -51,6 +51,7 @@ public class ComputeHostPreferenceResource extends AppCatAbstractResource {
     private String scratchLocation;
     private String projectNumber;
     private String loginUserName;
+    private String resourceCSToken;
 
     private GatewayProfileResource gatewayProfile;
     private ComputeResourceResource computeHostResource;
@@ -143,6 +144,14 @@ public class ComputeHostPreferenceResource extends AppCatAbstractResource {
         this.computeHostResource = computeHostResource;
     }
 
+    public String getResourceCSToken() {
+        return resourceCSToken;
+    }
+
+    public void setResourceCSToken(String resourceCSToken) {
+        this.resourceCSToken = resourceCSToken;
+    }
+
     @Override
     public void remove(Object identifier) throws AppCatalogException {
         HashMap<String, String> ids;
@@ -349,6 +358,7 @@ public class ComputeHostPreferenceResource extends AppCatAbstractResource {
                 existingPreference.setProjectNumber(projectNumber);
                 existingPreference.setBatchQueue(batchQueue);
                 existingPreference.setLoginUserName(loginUserName);
+                existingPreference.setComputeResourceCSToken(resourceCSToken);
                 em.merge(existingPreference);
             } else {
                 ComputeResourcePreference resourcePreference = new ComputeResourcePreference();
@@ -363,6 +373,7 @@ public class ComputeHostPreferenceResource extends AppCatAbstractResource {
                 resourcePreference.setProjectNumber(projectNumber);
                 resourcePreference.setBatchQueue(batchQueue);
                 resourcePreference.setLoginUserName(loginUserName);
+                resourcePreference.setComputeResourceCSToken(resourceCSToken);
                 em.persist(resourcePreference);
             }
             em.getTransaction().commit();

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/DataStoragePreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/DataStoragePreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/DataStoragePreferenceResource.java
new file mode 100644
index 0000000..482589d
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/DataStoragePreferenceResource.java
@@ -0,0 +1,323 @@
+/*
+ *
+ * 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.*;
+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 DataStoragePreferenceResource extends AppCatAbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(DataStoragePreferenceResource.class);
+    private String gatewayId;
+    private String dataMoveId;
+    private String loginUserName;
+    private String fsRootLocation;
+    private String resourceCSToken;
+
+    private GatewayProfileResource gatewayProfile;
+
+    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 GatewayProfileResource getGatewayProfile() {
+        return gatewayProfile;
+    }
+
+    public void setGatewayProfile(GatewayProfileResource gatewayProfile) {
+        this.gatewayProfile = gatewayProfile;
+    }
+
+    public String getResourceCSToken() {
+        return resourceCSToken;
+    }
+
+    public void setResourceCSToken(String resourceCSToken) {
+        this.resourceCSToken = resourceCSToken;
+    }
+
+    public String getDataMoveId() {
+        return dataMoveId;
+    }
+
+    public void setDataMoveId(String dataMoveId) {
+        this.dataMoveId = dataMoveId;
+    }
+
+    public String getFsRootLocation() {
+        return fsRootLocation;
+    }
+
+    public void setFsRootLocation(String fsRootLocation) {
+        this.fsRootLocation = fsRootLocation;
+    }
+
+    @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(DATA_STORAGE_PREFERENCE);
+            generator.setParameter(DataStoragePreferenceConstants.DATA_MOVEMENT_ID, ids.get(DataStoragePreferenceConstants.DATA_MOVEMENT_ID));
+            generator.setParameter(DataStoragePreferenceConstants.GATEWAY_ID, ids.get(DataStoragePreferenceConstants.GATEWAY_ID));
+
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            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(DATA_STORAGE_PREFERENCE);
+            generator.setParameter(DataStoragePreferenceConstants.GATEWAY_ID, ids.get(DataStoragePreferenceConstants.GATEWAY_ID));
+            generator.setParameter(DataStoragePreferenceConstants.DATA_MOVEMENT_ID, ids.get(DataStoragePreferenceConstants.DATA_MOVEMENT_ID));
+            Query q = generator.selectQuery(em);
+            DataStoragePreference preference = (DataStoragePreference) q.getSingleResult();
+            DataStoragePreferenceResource preferenceResource =
+                    (DataStoragePreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.DATA_STORAGE_PREFERENCE, preference);
+            em.getTransaction().commit();
+            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(DATA_STORAGE_PREFERENCE);
+            List results;
+            if (fieldName.equals(DataStoragePreferenceConstants.DATA_MOVEMENT_ID)) {
+                generator.setParameter(DataStoragePreferenceConstants.DATA_MOVEMENT_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        DataStoragePreference preference = (DataStoragePreference) result;
+                        if (preference.getDataMovementID()!=null) {
+							DataStoragePreferenceResource preferenceResource = (DataStoragePreferenceResource) AppCatalogJPAUtils
+									.getResource(
+											AppCatalogResourceType.DATA_STORAGE_PREFERENCE,
+											preference);
+							preferenceResourceList.add(preferenceResource);
+						}
+                    }
+                }
+            } else if (fieldName.equals(DataStoragePreferenceConstants.GATEWAY_ID)) {
+                generator.setParameter(DataStoragePreferenceConstants.GATEWAY_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        DataStoragePreference preference = (DataStoragePreference) result;
+                        if (preference.getDataMovementID()!=null) {
+	                        DataStoragePreferenceResource preferenceResource =
+	                                (DataStoragePreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.DATA_STORAGE_PREFERENCE, preference);
+	                        preferenceResourceList.add(preferenceResource);
+                        }
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                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();
+            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();
+            DataStoragePreference existingPreference = em.find(DataStoragePreference.class, new DataStoragePreferencePK(gatewayId, dataMoveId));
+            em.close();
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            DataMovementInterface dataMovementInterface = em.find(DataMovementInterface.class, dataMoveId);
+            GatewayProfile gatewayProf = em.find(GatewayProfile.class, gatewayId);
+            if (existingPreference != null) {
+                existingPreference.setDataMovementID(dataMoveId);
+                existingPreference.setGatewayId(gatewayId);
+                existingPreference.setGatewayProfile(gatewayProf);
+                existingPreference.setLoginUserName(loginUserName);
+                existingPreference.setComputeResourceCSToken(resourceCSToken);
+                existingPreference.setFsRootLocation(fsRootLocation);
+                em.merge(existingPreference);
+            } else {
+                DataStoragePreference resourcePreference = new DataStoragePreference();
+                resourcePreference.setDataMovementID(dataMoveId);
+                resourcePreference.setGatewayId(gatewayId);
+                resourcePreference.setGatewayProfile(gatewayProf);
+                resourcePreference.setLoginUserName(loginUserName);
+                resourcePreference.setComputeResourceCSToken(resourceCSToken);
+                resourcePreference.setFsRootLocation(fsRootLocation);
+                em.persist(resourcePreference);
+            }
+            em.getTransaction().commit();
+            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();
+            DataStoragePreference existingPreference = em.find(DataStoragePreference.class,
+                    new DataStoragePreferencePK(ids.get(DataStoragePreferenceConstants.GATEWAY_ID),
+                            ids.get(DataStoragePreferenceConstants.DATA_MOVEMENT_ID)));
+            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/d84783da/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 4ef21bd..a027ef4 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
@@ -280,6 +280,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 DATA_STORAGE_PREFERENCE:
+                if (o instanceof DataStoragePreference){
+                    return createDataStoragePref((DataStoragePreference) o);
+                }else {
+                    logger.error("Object should be a data storage Preference.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a data storage Preference.");
+                }
             case APPLICATION_INPUT:
                 if (o instanceof ApplicationIntInput){
                     return createApplicationInput((ApplicationIntInput) o);
@@ -879,12 +886,26 @@ public class AppCatalogJPAUtils {
             resource.setScratchLocation(o.getScratchLocation());
             resource.setProjectNumber(o.getProjectNumber());
             resource.setLoginUserName(o.getLoginUserName());
+            resource.setResourceCSToken(o.getComputeResourceCSToken());
             resource.setComputeHostResource((ComputeResourceResource) createComputeResource(o.getComputeHostResource()));
             resource.setGatewayProfile((GatewayProfileResource) createGatewayProfile(o.getGatewayProfile()));
         }
         return resource;
     }
 
+    private static AppCatalogResource createDataStoragePref(DataStoragePreference o) {
+        DataStoragePreferenceResource resource = new DataStoragePreferenceResource();
+        if (o != null) {
+            resource.setGatewayId(o.getGatewayId());
+            resource.setDataMoveId(o.getDataMovementID());
+            resource.setLoginUserName(o.getLoginUserName());
+            resource.setResourceCSToken(o.getComputeResourceCSToken());
+            resource.setFsRootLocation(o.getFsRootLocation());
+            resource.setGatewayProfile((GatewayProfileResource) createGatewayProfile(o.getGatewayProfile()));
+        }
+        return resource;
+    }
+
     private static AppCatalogResource createModuleLoadCmd(ModuleLoadCmd o) {
         ModuleLoadCmdResource moduleLoadCmdResource = new ModuleLoadCmdResource();
         if (o != null){

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 96f020e..91f59ec 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
@@ -50,6 +50,7 @@ public enum AppCatalogResourceType {
     APPLICATION_OUTPUT,
     GATEWAY_PROFILE,
     COMPUTE_RESOURCE_PREFERENCE,
+    DATA_STORAGE_PREFERENCE,
 	BATCH_QUEUE,
 	COMPUTE_RESOURCE_FILE_SYSTEM,
 	JOB_SUBMISSION_INTERFACE,

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 4b85765..58e9659 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
@@ -37,6 +37,7 @@ import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
 import org.apache.airavata.model.appcatalog.computeresource.UnicoreDataMovement;
 import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
@@ -744,6 +745,7 @@ public class AppCatalogThriftConversion {
         preference.setScratchLocation(resource.getScratchLocation());
         preference.setAllocationProjectNumber(resource.getProjectNumber());
         preference.setLoginUserName(resource.getLoginUserName());
+        preference.setResourceSpecificCredentialStoreToken(resource.getResourceCSToken());
         return preference;
     }
 
@@ -757,6 +759,25 @@ public class AppCatalogThriftConversion {
         return preferences;
     }
 
+    public static DataStoragePreference getDataStoragePreference (DataStoragePreferenceResource resource){
+        DataStoragePreference preference = new DataStoragePreference();
+        preference.setDataMovememtResourceId(resource.getDataMoveId());
+        preference.setFileSystemRootLocation(resource.getFsRootLocation());
+        preference.setLoginUserName(resource.getLoginUserName());
+        preference.setResourceSpecificCredentialStoreToken(resource.getResourceCSToken());
+        return preference;
+    }
+
+    public static List<DataStoragePreference> getDataStoragePreferences (List<AppCatalogResource> resources){
+        List<DataStoragePreference> preferences = new ArrayList<DataStoragePreference>();
+        if (resources != null && !resources.isEmpty()){
+            for (AppCatalogResource resource : resources){
+                preferences.add(getDataStoragePreference((DataStoragePreferenceResource)resource));
+            }
+        }
+        return preferences;
+    }
+
     public static InputDataObjectType getWorkflowInput (WorkflowInputResource resource){
         InputDataObjectType input = new InputDataObjectType();
         input.setName(resource.getInputKey());
@@ -781,10 +802,11 @@ public class AppCatalogThriftConversion {
         return inputResources;
     }
 
-    public static GatewayResourceProfile getGatewayResourceProfile(GatewayProfileResource gw, List<ComputeResourcePreference> preferences){
+    public static GatewayResourceProfile getGatewayResourceProfile(GatewayProfileResource gw, List<ComputeResourcePreference> preferences, List<DataStoragePreference> storagePreferences){
         GatewayResourceProfile gatewayProfile = new GatewayResourceProfile();
         gatewayProfile.setGatewayID(gw.getGatewayID());
         gatewayProfile.setComputeResourcePreferences(preferences);
+        gatewayProfile.setDataStoragePreferences(storagePreferences);
         return gatewayProfile;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 e9cc636..092ce1d 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
@@ -54,6 +54,7 @@
         <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResourceFileSystem</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.JobSubmissionInterface</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.DataMovementInterface</class>
+        <class>org.apache.airavata.registry.core.app.catalog.model.DataStoragePreference</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.ResourceJobManager</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.JobManagerCommand</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.LocalSubmission</class>

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
index b3af3f7..f148e9c 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
@@ -332,6 +332,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
         LOGIN_USERNAME VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -401,7 +402,18 @@ CREATE TABLE LOCAL_SUBMISSION
         UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
         PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
         FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
-      );
+);
+
+CREATE TABLE DATA_STORAGE_PREFERENCE
+(
+        GATEWAY_ID VARCHAR(255),
+        DATA_MOVEMENT_ID VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
+        FS_ROOT_LOCATION VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
+        PRIMARY KEY(GATEWAY_ID,DATA_MOVEMENT_ID),
+        FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
+);
 
 CREATE TABLE LOCAL_DATA_MOVEMENT
 (

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
index 5e869df..5cc5b8e 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
@@ -330,6 +330,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
         LOGIN_USERNAME VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -407,6 +408,17 @@ CREATE TABLE LOCAL_DATA_MOVEMENT
         PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
+CREATE TABLE DATA_STORAGE_PREFERENCE
+(
+        GATEWAY_ID VARCHAR(255),
+        DATA_MOVEMENT_ID VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
+        FS_ROOT_LOCATION VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
+        PRIMARY KEY(GATEWAY_ID,DATA_MOVEMENT_ID),
+        FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
+);
+
 CREATE TABLE WORKFLOW
 (
         WF_TEMPLATE_ID VARCHAR (255) NOT NULL,

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-core/src/test/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/resources/appcatalog-derby.sql b/modules/registry/registry-core/src/test/resources/appcatalog-derby.sql
index fc24d83..f148e9c 100644
--- a/modules/registry/registry-core/src/test/resources/appcatalog-derby.sql
+++ b/modules/registry/registry-core/src/test/resources/appcatalog-derby.sql
@@ -27,6 +27,7 @@ CREATE TABLE COMPUTE_RESOURCE
         CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
         UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
         MAX_MEMORY_NODE INTEGER,
+        ENABLED SMALLINT,
         PRIMARY KEY (RESOURCE_ID)
 );
 
@@ -331,6 +332,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
         LOGIN_USERNAME VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -400,7 +402,18 @@ CREATE TABLE LOCAL_SUBMISSION
         UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
         PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
         FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
-      );
+);
+
+CREATE TABLE DATA_STORAGE_PREFERENCE
+(
+        GATEWAY_ID VARCHAR(255),
+        DATA_MOVEMENT_ID VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
+        FS_ROOT_LOCATION VARCHAR(255),
+        RESOURCE_CS_TOKEN VARCHAR(255),
+        PRIMARY KEY(GATEWAY_ID,DATA_MOVEMENT_ID),
+        FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
+);
 
 CREATE TABLE LOCAL_DATA_MOVEMENT
 (
@@ -454,7 +467,7 @@ CREATE TABLE CONFIGURATION
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.15');
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.16');
 
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/GwyResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/GwyResourceProfile.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/GwyResourceProfile.java
index 0988926..aeee0fc 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/GwyResourceProfile.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/GwyResourceProfile.java
@@ -20,6 +20,7 @@
 package org.apache.airavata.registry.cpi;
 
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 
 import java.util.List;
@@ -53,6 +54,7 @@ public interface GwyResourceProfile {
      */
     boolean removeGatewayResourceProfile(String gatewayId) throws AppCatalogException;
     boolean removeComputeResourcePreferenceFromGateway(String gatewayId, String preferenceId) throws AppCatalogException;
+    boolean removeDataStoragePreferenceFromGateway(String gatewayId, String preferenceId) throws AppCatalogException;
 
     /**
      * This method will check whether gateway profile exists
@@ -68,6 +70,7 @@ public interface GwyResourceProfile {
      * @return ComputeResourcePreference
      */
     ComputeResourcePreference getComputeResourcePreference (String gatewayId, String hostId) throws AppCatalogException;
+    DataStoragePreference getDataStoragePreference (String gatewayId, String dataMoveId) throws AppCatalogException;
 
     /**
      *
@@ -75,6 +78,7 @@ public interface GwyResourceProfile {
      * @return
      */
     List<ComputeResourcePreference> getAllComputeResourcePreferences (String gatewayId) throws AppCatalogException;
+    List<DataStoragePreference> getAllDataStoragePreferences (String gatewayId) throws AppCatalogException;
 
     List<String> getGatewayProfileIds (String gatewayName) throws AppCatalogException;
     List<GatewayResourceProfile> getAllGatewayProfiles () throws AppCatalogException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/thrift-interface-descriptions/airavata-api/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/airavata_api.thrift b/thrift-interface-descriptions/airavata-api/airavata_api.thrift
index 5b64735..5da95cc 100644
--- a/thrift-interface-descriptions/airavata-api/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-api/airavata_api.thrift
@@ -1994,6 +1994,13 @@ service Airavata {
             3: airavata_errors.AiravataSystemException ase,
             4: airavata_errors.AuthorizationException ae)
 
+  bool addGatewayDataStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string gatewayID,
+              3: required string dataMoveId,
+              4: required gateway_resource_profile_model.DataStoragePreference dataStoragePreference)
+    	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 gateway profile.
    *
@@ -2015,6 +2022,14 @@ service Airavata {
             3: airavata_errors.AiravataSystemException ase,
             4: airavata_errors.AuthorizationException ae)
 
+  gateway_resource_profile_model.DataStoragePreference getGatewayDataStoragePreference(1: required security_model.AuthzToken authzToken,
+              2: required string gatewayID,
+              3: required string dataMoveId)
+    	throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.AiravataClientException ace,
+              3: airavata_errors.AiravataSystemException ase,
+              4: airavata_errors.AuthorizationException ae)
+
   /**
    * Fetch all Compute Resource Preferences of a registered gateway profile.
    *
@@ -2033,6 +2048,13 @@ service Airavata {
             4: airavata_errors.AuthorizationException ae)
 
 
+  list<gateway_resource_profile_model.DataStoragePreference>
+              getAllGatewayDataStoragePreferences(1: required security_model.AuthzToken authzToken, 2: 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 gateway profiles registered
   **/
@@ -2067,6 +2089,14 @@ service Airavata {
             3: airavata_errors.AiravataSystemException ase,
             4: airavata_errors.AuthorizationException ae)
 
+  bool updateGatewayDataStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string gatewayID,
+              3: required string dataMoveId,
+              4: required gateway_resource_profile_model.DataStoragePreference dataStoragePreference)
+    	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 gateway profile.
    *
@@ -2087,6 +2117,13 @@ service Airavata {
             3: airavata_errors.AiravataSystemException ase,
             4: airavata_errors.AuthorizationException ae)
 
+  bool deleteGatewayDataStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string gatewayID,
+              3: required string dataMoveId)
+    	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/d84783da/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift b/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift
index bee5483..d22953f 100644
--- a/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift
+++ b/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift
@@ -75,7 +75,7 @@ struct DataStoragePreference {
     1: required string dataMovememtResourceId,
     2: optional string loginUserName,
     3: optional string fileSystemRootLocation,
-    3: optional string resourceSpecificCredentialStoreToken
+    4: optional string resourceSpecificCredentialStoreToken
 }
 
 /**


[11/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
data storage preference related changes to app catalog


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

Branch: refs/heads/master
Commit: d84783da02f25e9a8f99178eecf6a626c28a5595
Parents: 07da736
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Mon Sep 28 13:58:08 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Mon Sep 28 13:58:08 2015 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   127 +
 .../java/org/apache/airavata/api/Airavata.java  | 38423 ++++++++++-------
 .../main/resources/lib/airavata/Airavata.cpp    |  9723 +++--
 .../src/main/resources/lib/airavata/Airavata.h  |  1319 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    25 +
 .../airavata/compute_resource_model_types.cpp   |   420 +-
 .../lib/airavata/compute_resource_model_types.h |    14 +-
 .../gateway_resource_profile_model_types.cpp    |   291 +-
 .../gateway_resource_profile_model_types.h      |   108 +-
 .../resources/lib/Airavata/API/Airavata.php     |  2190 +-
 .../Model/AppCatalog/ComputeResource/Types.php  |   196 +-
 .../Model/AppCatalog/GatewayProfile/Types.php   |   257 +-
 .../lib/apache/airavata/api/Airavata-remote     |    35 +
 .../lib/apache/airavata/api/Airavata.py         |  5361 ++-
 .../model/appcatalog/computeresource/ttypes.py  |   124 +-
 .../model/appcatalog/gatewayprofile/ttypes.py   |   176 +-
 .../org/apache/airavata/model/Workflow.java     |     2 +-
 .../ApplicationDeploymentDescription.java       |     2 +-
 .../appdeployment/ApplicationModule.java        |     2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |     2 +-
 .../ApplicationInterfaceDescription.java        |     2 +-
 .../appcatalog/computeresource/BatchQueue.java  |     2 +-
 .../computeresource/CloudJobSubmission.java     |     2 +-
 .../ComputeResourceDescription.java             |   218 +-
 .../computeresource/DataMovementInterface.java  |     2 +-
 .../computeresource/GlobusJobSubmission.java    |    34 +-
 .../computeresource/GridFTPDataMovement.java    |     2 +-
 .../computeresource/JobSubmissionInterface.java |     2 +-
 .../computeresource/LOCALDataMovement.java      |     2 +-
 .../computeresource/LOCALSubmission.java        |     2 +-
 .../computeresource/ResourceJobManager.java     |     2 +-
 .../computeresource/SCPDataMovement.java        |     2 +-
 .../computeresource/SSHJobSubmission.java       |   172 +-
 .../computeresource/UnicoreDataMovement.java    |     2 +-
 .../computeresource/UnicoreJobSubmission.java   |     2 +-
 .../ComputeResourcePreference.java              |   120 +-
 .../gatewayprofile/GatewayResourceProfile.java  |   312 +-
 .../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 +-
 .../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 +-
 .../org/apache/airavata/model/job/JobModel.java |     2 +-
 .../event/ExperimentStatusChangeEvent.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 +-
 .../apache/airavata/model/task/TaskModel.java   |     2 +-
 .../airavata/model/workspace/Gateway.java       |     2 +-
 .../apache/airavata/model/workspace/Group.java  |     2 +-
 .../airavata/model/workspace/Project.java       |     2 +-
 .../apache/airavata/model/workspace/User.java   |     2 +-
 .../catalog/impl/GwyResourceProfileImpl.java    |    81 +-
 .../model/ComputeResourcePreference.java        |    10 +
 .../catalog/model/DataStoragePreference.java    |    96 +
 .../catalog/model/DataStoragePreferencePK.java  |    64 +
 .../resources/AppCatAbstractResource.java       |     6 +
 .../ComputeHostPreferenceResource.java          |    11 +
 .../DataStoragePreferenceResource.java          |   323 +
 .../app/catalog/util/AppCatalogJPAUtils.java    |    21 +
 .../catalog/util/AppCatalogResourceType.java    |     1 +
 .../util/AppCatalogThriftConversion.java        |    24 +-
 .../src/main/resources/META-INF/persistence.xml |     1 +
 .../src/main/resources/appcatalog-derby.sql     |    14 +-
 .../src/main/resources/appcatalog-mysql.sql     |    12 +
 .../src/test/resources/appcatalog-derby.sql     |    17 +-
 .../registry/cpi/GwyResourceProfile.java        |     4 +
 .../airavata-api/airavata_api.thrift            |    37 +
 .../gateway_resource_profile_model.thrift       |     2 +-
 102 files changed, 38638 insertions(+), 21859 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 dd30b9e..fccf66f 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
@@ -41,6 +41,7 @@ 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.DataStoragePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
@@ -3366,6 +3367,32 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    @Override
+    public boolean addGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId, DataStoragePreference dataStoragePreference) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            if (!isGatewayExistInternal(gatewayID)){
+                logger.error("Gateway does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+            if (!gatewayProfile.isGatewayResourceProfileExists(gatewayID)){
+                throw new AppCatalogException("Gateway resource profile '"+gatewayID+"' does not exist!!!");
+            }
+            GatewayResourceProfile profile = gatewayProfile.getGatewayProfile(gatewayID);
+//            gatewayProfile.removeGatewayResourceProfile(gatewayID);
+            profile.addToDataStoragePreferences(dataStoragePreference);
+            gatewayProfile.updateGatewayResourceProfile(gatewayID, profile);
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while registering gateway resource profile preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while registering gateway resource profile preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     /**
      * Fetch a Compute Resource Preference of a registered gateway profile.
      *
@@ -3410,6 +3437,34 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    @Override
+    public DataStoragePreference getGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            if (!isGatewayExistInternal(gatewayID)){
+                logger.error("Gateway does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+            ComputeResource computeResource = appCatalog.getComputeResource();
+            if (!gatewayProfile.isGatewayResourceProfileExists(gatewayID)){
+                logger.error(gatewayID, "Given gateway profile does not exist in the system. Please provide a valid gateway id...");
+                AiravataSystemException exception = new AiravataSystemException();
+                exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+                exception.setMessage("Given gateway profile does not exist in the system. Please provide a valid gateway id...");
+                throw exception;
+            }
+
+            return gatewayProfile.getDataStoragePreference(gatewayID, dataMoveId);
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading gateway data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     /**
      * Fetch all Compute Resource Preferences of a registered gateway profile.
      *
@@ -3439,6 +3494,25 @@ public class AiravataServerHandler implements Airavata.Iface {
     }
 
     @Override
+    public List<DataStoragePreference> getAllGatewayDataStoragePreferences(AuthzToken authzToken, String gatewayID) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            if (!isGatewayExistInternal(gatewayID)){
+                logger.error("Gateway does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+            return gatewayProfile.getGatewayProfile(gatewayID).getDataStoragePreferences();
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading gateway data storage preferences...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading gateway data storage preferences. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
     @SecurityCheck
     public List<GatewayResourceProfile> getAllGatewayComputeResources(AuthzToken authzToken) throws InvalidRequestException,
             AiravataClientException, AiravataSystemException, AuthorizationException, TException {
@@ -3500,6 +3574,40 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    @Override
+    public boolean updateGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId, DataStoragePreference dataStoragePreference) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            if (!isGatewayExistInternal(gatewayID)){
+                logger.error("Gateway does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+            GatewayResourceProfile profile = gatewayProfile.getGatewayProfile(gatewayID);
+            List<DataStoragePreference> dataStoragePreferences = profile.getDataStoragePreferences();
+            DataStoragePreference preferenceToRemove = null;
+            for (DataStoragePreference preference : dataStoragePreferences) {
+                if (preference.getDataMovememtResourceId().equals(dataMoveId)){
+                    preferenceToRemove=preference;
+                    break;
+                }
+            }
+            if (preferenceToRemove!=null) {
+                profile.getDataStoragePreferences().remove(
+                        preferenceToRemove);
+            }
+            profile.getDataStoragePreferences().add(dataStoragePreference);
+            gatewayProfile.updateGatewayResourceProfile(gatewayID, profile);
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating gateway data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     /**
      * Delete the Compute Resource Preference of a registered gateway profile.
      *
@@ -3530,6 +3638,25 @@ public class AiravataServerHandler implements Airavata.Iface {
     }
 
     @Override
+    public boolean deleteGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            if (!isGatewayExistInternal(gatewayID)){
+                logger.error("Gateway does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+            return gatewayProfile.removeDataStoragePreferenceFromGateway(gatewayID, dataMoveId);
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating gateway data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
     @SecurityCheck
 	public List<String> getAllWorkflows(AuthzToken authzToken, String gatewayId) throws InvalidRequestException,
 			AiravataClientException, AiravataSystemException, AuthorizationException, TException {


[09/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 160b94f..875474e 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
@@ -33275,11 +33275,11 @@ uint32_t Airavata_addGatewayComputeResourcePreference_presult::read(::apache::th
 }
 
 
-Airavata_getGatewayComputeResourcePreference_args::~Airavata_getGatewayComputeResourcePreference_args() throw() {
+Airavata_addGatewayDataStoragePreference_args::~Airavata_addGatewayDataStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGatewayDataStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33292,7 +33292,8 @@ uint32_t Airavata_getGatewayComputeResourcePreference_args::read(::apache::thrif
 
   bool isset_authzToken = false;
   bool isset_gatewayID = false;
-  bool isset_computeResourceId = false;
+  bool isset_dataMoveId = false;
+  bool isset_dataStoragePreference = false;
 
   while (true)
   {
@@ -33320,8 +33321,16 @@ uint32_t Airavata_getGatewayComputeResourcePreference_args::read(::apache::thrif
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->computeResourceId);
-          isset_computeResourceId = true;
+          xfer += iprot->readString(this->dataMoveId);
+          isset_dataMoveId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->dataStoragePreference.read(iprot);
+          isset_dataStoragePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -33339,15 +33348,17 @@ uint32_t Airavata_getGatewayComputeResourcePreference_args::read(::apache::thrif
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_computeResourceId)
+  if (!isset_dataMoveId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_dataStoragePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGatewayDataStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_args");
+  xfer += oprot->writeStructBegin("Airavata_addGatewayDataStoragePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -33357,8 +33368,12 @@ uint32_t Airavata_getGatewayComputeResourcePreference_args::write(::apache::thri
   xfer += oprot->writeString(this->gatewayID);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldBegin("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->dataMoveId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataStoragePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->dataStoragePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -33368,14 +33383,14 @@ uint32_t Airavata_getGatewayComputeResourcePreference_args::write(::apache::thri
 }
 
 
-Airavata_getGatewayComputeResourcePreference_pargs::~Airavata_getGatewayComputeResourcePreference_pargs() throw() {
+Airavata_addGatewayDataStoragePreference_pargs::~Airavata_addGatewayDataStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGatewayDataStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_pargs");
+  xfer += oprot->writeStructBegin("Airavata_addGatewayDataStoragePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -33385,8 +33400,12 @@ uint32_t Airavata_getGatewayComputeResourcePreference_pargs::write(::apache::thr
   xfer += oprot->writeString((*(this->gatewayID)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldBegin("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->dataMoveId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataStoragePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->dataStoragePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -33396,11 +33415,11 @@ uint32_t Airavata_getGatewayComputeResourcePreference_pargs::write(::apache::thr
 }
 
 
-Airavata_getGatewayComputeResourcePreference_result::~Airavata_getGatewayComputeResourcePreference_result() throw() {
+Airavata_addGatewayDataStoragePreference_result::~Airavata_addGatewayDataStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGatewayDataStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33421,8 +33440,8 @@ uint32_t Airavata_getGatewayComputeResourcePreference_result::read(::apache::thr
     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);
@@ -33472,15 +33491,15 @@ uint32_t Airavata_getGatewayComputeResourcePreference_result::read(::apache::thr
   return xfer;
 }
 
-uint32_t Airavata_getGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGatewayDataStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_result");
+  xfer += oprot->writeStructBegin("Airavata_addGatewayDataStoragePreference_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);
@@ -33505,11 +33524,11 @@ uint32_t Airavata_getGatewayComputeResourcePreference_result::write(::apache::th
 }
 
 
-Airavata_getGatewayComputeResourcePreference_presult::~Airavata_getGatewayComputeResourcePreference_presult() throw() {
+Airavata_addGatewayDataStoragePreference_presult::~Airavata_addGatewayDataStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGatewayDataStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33530,8 +33549,8 @@ uint32_t Airavata_getGatewayComputeResourcePreference_presult::read(::apache::th
     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);
@@ -33582,11 +33601,11 @@ uint32_t Airavata_getGatewayComputeResourcePreference_presult::read(::apache::th
 }
 
 
-Airavata_getAllGatewayComputeResourcePreferences_args::~Airavata_getAllGatewayComputeResourcePreferences_args() throw() {
+Airavata_getGatewayComputeResourcePreference_args::~Airavata_getGatewayComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33599,6 +33618,7 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::read(::apache::t
 
   bool isset_authzToken = false;
   bool isset_gatewayID = false;
+  bool isset_computeResourceId = false;
 
   while (true)
   {
@@ -33624,6 +33644,14 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::read(::apache::t
           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;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -33637,13 +33665,15 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::read(::apache::t
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_args");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -33653,6 +33683,10 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::write(::apache::
   xfer += oprot->writeString(this->gatewayID);
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -33660,14 +33694,14 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::write(::apache::
 }
 
 
-Airavata_getAllGatewayComputeResourcePreferences_pargs::~Airavata_getAllGatewayComputeResourcePreferences_pargs() throw() {
+Airavata_getGatewayComputeResourcePreference_pargs::~Airavata_getGatewayComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -33677,6 +33711,10 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_pargs::write(::apache:
   xfer += oprot->writeString((*(this->gatewayID)));
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -33684,11 +33722,11 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_pargs::write(::apache:
 }
 
 
-Airavata_getAllGatewayComputeResourcePreferences_result::~Airavata_getAllGatewayComputeResourcePreferences_result() throw() {
+Airavata_getGatewayComputeResourcePreference_result::~Airavata_getGatewayComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33709,20 +33747,8 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::read(::apache:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size335;
-            ::apache::thrift::protocol::TType _etype338;
-            xfer += iprot->readListBegin(_etype338, _size335);
-            this->success.resize(_size335);
-            uint32_t _i339;
-            for (_i339 = 0; _i339 < _size335; ++_i339)
-            {
-              xfer += this->success[_i339].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -33772,23 +33798,15 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::read(::apache:
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_result");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayComputeResourcePreference_result");
 
   if (this->__isset.success) {
-    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::gatewayprofile::ComputeResourcePreference> ::const_iterator _iter340;
-      for (_iter340 = this->success.begin(); _iter340 != this->success.end(); ++_iter340)
-      {
-        xfer += (*_iter340).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
+    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);
@@ -33813,11 +33831,11 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::write(::apache
 }
 
 
-Airavata_getAllGatewayComputeResourcePreferences_presult::~Airavata_getAllGatewayComputeResourcePreferences_presult() throw() {
+Airavata_getGatewayComputeResourcePreference_presult::~Airavata_getGatewayComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResourcePreferences_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33838,20 +33856,8 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_presult::read(::apache
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size341;
-            ::apache::thrift::protocol::TType _etype344;
-            xfer += iprot->readListBegin(_etype344, _size341);
-            (*(this->success)).resize(_size341);
-            uint32_t _i345;
-            for (_i345 = 0; _i345 < _size341; ++_i345)
-            {
-              xfer += (*(this->success))[_i345].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -33902,11 +33908,11 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_presult::read(::apache
 }
 
 
-Airavata_getAllGatewayComputeResources_args::~Airavata_getAllGatewayComputeResources_args() throw() {
+Airavata_getGatewayDataStoragePreference_args::~Airavata_getGatewayDataStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResources_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayDataStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -33918,6 +33924,8 @@ uint32_t Airavata_getAllGatewayComputeResources_args::read(::apache::thrift::pro
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
+  bool isset_gatewayID = false;
+  bool isset_dataMoveId = false;
 
   while (true)
   {
@@ -33935,6 +33943,22 @@ uint32_t Airavata_getAllGatewayComputeResources_args::read(::apache::thrift::pro
           xfer += iprot->skip(ftype);
         }
         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_STRING) {
+          xfer += iprot->readString(this->dataMoveId);
+          isset_dataMoveId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -33946,18 +33970,30 @@ uint32_t Airavata_getAllGatewayComputeResources_args::read(::apache::thrift::pro
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_dataMoveId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewayComputeResources_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayDataStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_args");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayDataStoragePreference_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("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->dataMoveId);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -33965,19 +34001,27 @@ uint32_t Airavata_getAllGatewayComputeResources_args::write(::apache::thrift::pr
 }
 
 
-Airavata_getAllGatewayComputeResources_pargs::~Airavata_getAllGatewayComputeResources_pargs() throw() {
+Airavata_getGatewayDataStoragePreference_pargs::~Airavata_getGatewayDataStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResources_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayDataStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayDataStoragePreference_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("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->dataMoveId)));
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -33985,11 +34029,11 @@ uint32_t Airavata_getAllGatewayComputeResources_pargs::write(::apache::thrift::p
 }
 
 
-Airavata_getAllGatewayComputeResources_result::~Airavata_getAllGatewayComputeResources_result() throw() {
+Airavata_getGatewayDataStoragePreference_result::~Airavata_getGatewayDataStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResources_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayDataStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34010,20 +34054,8 @@ uint32_t Airavata_getAllGatewayComputeResources_result::read(::apache::thrift::p
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size346;
-            ::apache::thrift::protocol::TType _etype349;
-            xfer += iprot->readListBegin(_etype349, _size346);
-            this->success.resize(_size346);
-            uint32_t _i350;
-            for (_i350 = 0; _i350 < _size346; ++_i350)
-            {
-              xfer += this->success[_i350].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34073,23 +34105,15 @@ uint32_t Airavata_getAllGatewayComputeResources_result::read(::apache::thrift::p
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewayComputeResources_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGatewayDataStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_result");
+  xfer += oprot->writeStructBegin("Airavata_getGatewayDataStoragePreference_result");
 
   if (this->__isset.success) {
-    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::gatewayprofile::GatewayResourceProfile> ::const_iterator _iter351;
-      for (_iter351 = this->success.begin(); _iter351 != this->success.end(); ++_iter351)
-      {
-        xfer += (*_iter351).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
+    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);
@@ -34114,11 +34138,11 @@ uint32_t Airavata_getAllGatewayComputeResources_result::write(::apache::thrift::
 }
 
 
-Airavata_getAllGatewayComputeResources_presult::~Airavata_getAllGatewayComputeResources_presult() throw() {
+Airavata_getGatewayDataStoragePreference_presult::~Airavata_getGatewayDataStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewayComputeResources_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGatewayDataStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34139,20 +34163,8 @@ uint32_t Airavata_getAllGatewayComputeResources_presult::read(::apache::thrift::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size352;
-            ::apache::thrift::protocol::TType _etype355;
-            xfer += iprot->readListBegin(_etype355, _size352);
-            (*(this->success)).resize(_size352);
-            uint32_t _i356;
-            for (_i356 = 0; _i356 < _size352; ++_i356)
-            {
-              xfer += (*(this->success))[_i356].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34203,11 +34215,11 @@ uint32_t Airavata_getAllGatewayComputeResources_presult::read(::apache::thrift::
 }
 
 
-Airavata_updateGatewayComputeResourcePreference_args::~Airavata_updateGatewayComputeResourcePreference_args() throw() {
+Airavata_getAllGatewayComputeResourcePreferences_args::~Airavata_getAllGatewayComputeResourcePreferences_args() throw() {
 }
 
 
-uint32_t Airavata_updateGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34220,8 +34232,6 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_args::read(::apache::th
 
   bool isset_authzToken = false;
   bool isset_gatewayID = false;
-  bool isset_computeResourceId = false;
-  bool isset_computeResourcePreference = false;
 
   while (true)
   {
@@ -34247,22 +34257,6 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_args::read(::apache::th
           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->computeResourcePreference.read(iprot);
-          isset_computeResourcePreference = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -34276,17 +34270,13 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_args::read(::apache::th
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayID)
     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_updateGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -34296,14 +34286,6 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_args::write(::apache::t
   xfer += oprot->writeString(this->gatewayID);
   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();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34311,14 +34293,14 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_args::write(::apache::t
 }
 
 
-Airavata_updateGatewayComputeResourcePreference_pargs::~Airavata_updateGatewayComputeResourcePreference_pargs() throw() {
+Airavata_getAllGatewayComputeResourcePreferences_pargs::~Airavata_getAllGatewayComputeResourcePreferences_pargs() throw() {
 }
 
 
-uint32_t Airavata_updateGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -34328,14 +34310,6 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_pargs::write(::apache::
   xfer += oprot->writeString((*(this->gatewayID)));
   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();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34343,11 +34317,11 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_pargs::write(::apache::
 }
 
 
-Airavata_updateGatewayComputeResourcePreference_result::~Airavata_updateGatewayComputeResourcePreference_result() throw() {
+Airavata_getAllGatewayComputeResourcePreferences_result::~Airavata_getAllGatewayComputeResourcePreferences_result() throw() {
 }
 
 
-uint32_t Airavata_updateGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34368,8 +34342,20 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_result::read(::apache::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size335;
+            ::apache::thrift::protocol::TType _etype338;
+            xfer += iprot->readListBegin(_etype338, _size335);
+            this->success.resize(_size335);
+            uint32_t _i339;
+            for (_i339 = 0; _i339 < _size335; ++_i339)
+            {
+              xfer += this->success[_i339].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34419,15 +34405,23 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_result::read(::apache::
   return xfer;
 }
 
-uint32_t Airavata_updateGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResourcePreferences_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_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> ::const_iterator _iter340;
+      for (_iter340 = this->success.begin(); _iter340 != this->success.end(); ++_iter340)
+      {
+        xfer += (*_iter340).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -34452,11 +34446,11 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_result::write(::apache:
 }
 
 
-Airavata_updateGatewayComputeResourcePreference_presult::~Airavata_updateGatewayComputeResourcePreference_presult() throw() {
+Airavata_getAllGatewayComputeResourcePreferences_presult::~Airavata_getAllGatewayComputeResourcePreferences_presult() throw() {
 }
 
 
-uint32_t Airavata_updateGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResourcePreferences_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34477,8 +34471,20 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_presult::read(::apache:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size341;
+            ::apache::thrift::protocol::TType _etype344;
+            xfer += iprot->readListBegin(_etype344, _size341);
+            (*(this->success)).resize(_size341);
+            uint32_t _i345;
+            for (_i345 = 0; _i345 < _size341; ++_i345)
+            {
+              xfer += (*(this->success))[_i345].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34529,11 +34535,11 @@ uint32_t Airavata_updateGatewayComputeResourcePreference_presult::read(::apache:
 }
 
 
-Airavata_deleteGatewayComputeResourcePreference_args::~Airavata_deleteGatewayComputeResourcePreference_args() throw() {
+Airavata_getAllGatewayDataStoragePreferences_args::~Airavata_getAllGatewayDataStoragePreferences_args() throw() {
 }
 
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34546,7 +34552,6 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_args::read(::apache::th
 
   bool isset_authzToken = false;
   bool isset_gatewayID = false;
-  bool isset_computeResourceId = false;
 
   while (true)
   {
@@ -34572,14 +34577,6 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_args::read(::apache::th
           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;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -34593,15 +34590,13 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_args::read(::apache::th
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_computeResourceId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayDataStoragePreferences_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -34611,10 +34606,6 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_args::write(::apache::t
   xfer += oprot->writeString(this->gatewayID);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString(this->computeResourceId);
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34622,14 +34613,14 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_args::write(::apache::t
 }
 
 
-Airavata_deleteGatewayComputeResourcePreference_pargs::~Airavata_deleteGatewayComputeResourcePreference_pargs() throw() {
+Airavata_getAllGatewayDataStoragePreferences_pargs::~Airavata_getAllGatewayDataStoragePreferences_pargs() throw() {
 }
 
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayDataStoragePreferences_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -34639,10 +34630,6 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_pargs::write(::apache::
   xfer += oprot->writeString((*(this->gatewayID)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString((*(this->computeResourceId)));
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34650,11 +34637,11 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_pargs::write(::apache::
 }
 
 
-Airavata_deleteGatewayComputeResourcePreference_result::~Airavata_deleteGatewayComputeResourcePreference_result() throw() {
+Airavata_getAllGatewayDataStoragePreferences_result::~Airavata_getAllGatewayDataStoragePreferences_result() throw() {
 }
 
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34675,8 +34662,20 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_result::read(::apache::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size346;
+            ::apache::thrift::protocol::TType _etype349;
+            xfer += iprot->readListBegin(_etype349, _size346);
+            this->success.resize(_size346);
+            uint32_t _i350;
+            for (_i350 = 0; _i350 < _size346; ++_i350)
+            {
+              xfer += this->success[_i350].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34726,15 +34725,23 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_result::read(::apache::
   return xfer;
 }
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayDataStoragePreferences_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_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> ::const_iterator _iter351;
+      for (_iter351 = this->success.begin(); _iter351 != this->success.end(); ++_iter351)
+      {
+        xfer += (*_iter351).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -34759,11 +34766,11 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_result::write(::apache:
 }
 
 
-Airavata_deleteGatewayComputeResourcePreference_presult::~Airavata_deleteGatewayComputeResourcePreference_presult() throw() {
+Airavata_getAllGatewayDataStoragePreferences_presult::~Airavata_getAllGatewayDataStoragePreferences_presult() throw() {
 }
 
 
-uint32_t Airavata_deleteGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayDataStoragePreferences_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34784,8 +34791,20 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_presult::read(::apache:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size352;
+            ::apache::thrift::protocol::TType _etype355;
+            xfer += iprot->readListBegin(_etype355, _size352);
+            (*(this->success)).resize(_size352);
+            uint32_t _i356;
+            for (_i356 = 0; _i356 < _size352; ++_i356)
+            {
+              xfer += (*(this->success))[_i356].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -34836,11 +34855,11 @@ uint32_t Airavata_deleteGatewayComputeResourcePreference_presult::read(::apache:
 }
 
 
-Airavata_getAllWorkflows_args::~Airavata_getAllWorkflows_args() throw() {
+Airavata_getAllGatewayComputeResources_args::~Airavata_getAllGatewayComputeResources_args() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResources_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34852,7 +34871,6 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -34870,14 +34888,6 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -34889,24 +34899,18 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllWorkflows_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayComputeResources_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_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->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34914,23 +34918,19 @@ uint32_t Airavata_getAllWorkflows_args::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_getAllWorkflows_pargs::~Airavata_getAllWorkflows_pargs() throw() {
+Airavata_getAllGatewayComputeResources_pargs::~Airavata_getAllGatewayComputeResources_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewayComputeResources_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_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->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -34938,11 +34938,11 @@ uint32_t Airavata_getAllWorkflows_pargs::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_getAllWorkflows_result::~Airavata_getAllWorkflows_result() throw() {
+Airavata_getAllGatewayComputeResources_result::~Airavata_getAllGatewayComputeResources_result() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResources_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -34973,7 +34973,7 @@ uint32_t Airavata_getAllWorkflows_result::read(::apache::thrift::protocol::TProt
             uint32_t _i361;
             for (_i361 = 0; _i361 < _size357; ++_i361)
             {
-              xfer += iprot->readString(this->success[_i361]);
+              xfer += this->success[_i361].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -35026,20 +35026,20 @@ 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_getAllGatewayComputeResources_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewayComputeResources_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 _iter362;
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> ::const_iterator _iter362;
       for (_iter362 = this->success.begin(); _iter362 != this->success.end(); ++_iter362)
       {
-        xfer += oprot->writeString((*_iter362));
+        xfer += (*_iter362).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -35067,11 +35067,11 @@ uint32_t Airavata_getAllWorkflows_result::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_getAllWorkflows_presult::~Airavata_getAllWorkflows_presult() throw() {
+Airavata_getAllGatewayComputeResources_presult::~Airavata_getAllGatewayComputeResources_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewayComputeResources_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35102,7 +35102,7 @@ uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TPro
             uint32_t _i367;
             for (_i367 = 0; _i367 < _size363; ++_i367)
             {
-              xfer += iprot->readString((*(this->success))[_i367]);
+              xfer += (*(this->success))[_i367].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -35156,11 +35156,11 @@ uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_getWorkflow_args::~Airavata_getWorkflow_args() throw() {
+Airavata_updateGatewayComputeResourcePreference_args::~Airavata_updateGatewayComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35172,7 +35172,9 @@ 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_gatewayID = false;
+  bool isset_computeResourceId = false;
+  bool isset_computeResourcePreference = false;
 
   while (true)
   {
@@ -35192,8 +35194,24 @@ 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->gatewayID);
+          isset_gatewayID = 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->computeResourcePreference.read(iprot);
+          isset_computeResourcePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -35209,22 +35227,34 @@ uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_gatewayID)
+    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_getWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_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("gatewayID", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayID);
+  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();
@@ -35234,35 +35264,43 @@ uint32_t Airavata_getWorkflow_args::write(::apache::thrift::protocol::TProtocol*
 }
 
 
-Airavata_getWorkflow_pargs::~Airavata_getWorkflow_pargs() throw() {
+Airavata_updateGatewayComputeResourcePreference_pargs::~Airavata_updateGatewayComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_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("gatewayID", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayID)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
+  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();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
 
-Airavata_getWorkflow_result::~Airavata_getWorkflow_result() throw() {
+Airavata_updateGatewayComputeResourcePreference_result::~Airavata_updateGatewayComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35283,8 +35321,8 @@ uint32_t Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol
     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);
@@ -35334,15 +35372,15 @@ 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_updateGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayComputeResourcePreference_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);
@@ -35367,11 +35405,11 @@ uint32_t Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_getWorkflow_presult::~Airavata_getWorkflow_presult() throw() {
+Airavata_updateGatewayComputeResourcePreference_presult::~Airavata_updateGatewayComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35392,8 +35430,8 @@ uint32_t Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtoco
     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);
@@ -35444,11 +35482,11 @@ uint32_t Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_deleteWorkflow_args::~Airavata_deleteWorkflow_args() throw() {
+Airavata_updateGatewayDataStoragePreference_args::~Airavata_updateGatewayDataStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayDataStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35460,7 +35498,9 @@ 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_gatewayID = false;
+  bool isset_dataMoveId = false;
+  bool isset_dataStoragePreference = false;
 
   while (true)
   {
@@ -35480,8 +35520,24 @@ 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->gatewayID);
+          isset_gatewayID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->dataMoveId);
+          isset_dataMoveId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->dataStoragePreference.read(iprot);
+          isset_dataStoragePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -35497,22 +35553,34 @@ uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_gatewayID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_dataMoveId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_dataStoragePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGatewayDataStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayDataStoragePreference_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("gatewayID", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->dataMoveId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataStoragePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->dataStoragePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -35522,21 +35590,29 @@ uint32_t Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_deleteWorkflow_pargs::~Airavata_deleteWorkflow_pargs() throw() {
+Airavata_updateGatewayDataStoragePreference_pargs::~Airavata_updateGatewayDataStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGatewayDataStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayDataStoragePreference_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("gatewayID", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayID)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->dataMoveId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataStoragePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->dataStoragePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -35546,11 +35622,11 @@ uint32_t Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_deleteWorkflow_result::~Airavata_deleteWorkflow_result() throw() {
+Airavata_updateGatewayDataStoragePreference_result::~Airavata_updateGatewayDataStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayDataStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35570,6 +35646,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);
@@ -35614,13 +35698,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_updateGatewayDataStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_updateGatewayDataStoragePreference_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();
@@ -35643,11 +35731,11 @@ uint32_t Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_deleteWorkflow_presult::~Airavata_deleteWorkflow_presult() throw() {
+Airavata_updateGatewayDataStoragePreference_presult::~Airavata_updateGatewayDataStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGatewayDataStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35667,6 +35755,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);
@@ -35712,11 +35808,11 @@ uint32_t Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_args::~Airavata_registerWorkflow_args() throw() {
+Airavata_deleteGatewayComputeResourcePreference_args::~Airavata_deleteGatewayComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35728,8 +35824,8 @@ 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_gatewayID = false;
+  bool isset_computeResourceId = false;
 
   while (true)
   {
@@ -35749,16 +35845,16 @@ 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;
+          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;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -35774,28 +35870,28 @@ uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
+  if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflow)
+  if (!isset_computeResourceId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGatewayComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_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("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("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->computeResourceId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -35805,25 +35901,25 @@ uint32_t Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_pargs::~Airavata_registerWorkflow_pargs() throw() {
+Airavata_deleteGatewayComputeResourcePreference_pargs::~Airavata_deleteGatewayComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGatewayComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_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("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("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->computeResourceId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -35833,11 +35929,11 @@ uint32_t Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_registerWorkflow_result::~Airavata_registerWorkflow_result() throw() {
+Airavata_deleteGatewayComputeResourcePreference_result::~Airavata_deleteGatewayComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35858,8 +35954,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);
@@ -35909,15 +36005,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_deleteGatewayComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayComputeResourcePreference_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);
@@ -35942,11 +36038,11 @@ uint32_t Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_registerWorkflow_presult::~Airavata_registerWorkflow_presult() throw() {
+Airavata_deleteGatewayComputeResourcePreference_presult::~Airavata_deleteGatewayComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -35967,8 +36063,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);
@@ -36019,11 +36115,11 @@ uint32_t Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_updateWorkflow_args::~Airavata_updateWorkflow_args() throw() {
+Airavata_deleteGatewayDataStoragePreference_args::~Airavata_deleteGatewayDataStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayDataStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -36035,8 +36131,8 @@ 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_gatewayID = false;
+  bool isset_dataMoveId = false;
 
   while (true)
   {
@@ -36056,16 +36152,16 @@ 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->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;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->dataMoveId);
+          isset_dataMoveId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -36081,28 +36177,28 @@ uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflow)
+  if (!isset_dataMoveId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGatewayDataStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayDataStoragePreference_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("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("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->dataMoveId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -36112,25 +36208,25 @@ uint32_t Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_updateWorkflow_pargs::~Airavata_updateWorkflow_pargs() throw() {
+Airavata_deleteGatewayDataStoragePreference_pargs::~Airavata_deleteGatewayDataStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGatewayDataStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayDataStoragePreference_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("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("dataMoveId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->dataMoveId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -36140,11 +36236,11 @@ uint32_t Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_updateWorkflow_result::~Airavata_updateWorkflow_result() throw() {
+Airavata_deleteGatewayDataStoragePreference_result::~Airavata_deleteGatewayDataStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayDataStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -36164,6 +36260,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);
@@ -36208,13 +36312,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_deleteGatewayDataStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteGatewayDataStoragePreference_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();
@@ -36237,11 +36345,11 @@ uint32_t Airavata_updateWorkflow_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_updateWorkflow_presult::~Airavata_updateWorkflow_presult() throw() {
+Airavata_deleteGatewayDataStoragePreference_presult::~Airavata_deleteGatewayDataStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGatewayDataStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -36261,6 +36369,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);
@@ -36306,11 +36422,11 @@ uint32_t Airavata_updateWorkflow_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_getWorkflowTemplateId_args::~Airavata_getWorkflowTemplateId_args() throw() {
+Airavata_getAllWorkflows_args::~Airavata_getAllWorkflows_args() throw() {
 }
 
 
-uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -36322,7 +36438,7 @@ 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_gatewayId = false;
 
   while (true)
   {
@@ -36342,8 +36458,8 @@ 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->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -36359,22 +36475,22 @@ uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::T
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowName)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getWorkflowTemplateId_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllWorkflows_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   oprot->incrementRecursionDepth();
-  xfer += oprot->writeStructBegin("Airavata_getWorkflowTemplateId_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_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("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -36384,21 +36500,21 @@ uint32_t Airavata_getWorkflowTemplateId_args::write(::apache::thrift::protocol::
 }
 
 
-Airavata_getWorkflowTemplateId_pargs::~Airavata_getWorkflowTemplateId_pargs() throw() {
+Airavata_getAllWorkflows_pargs::~Airavata_getAllWorkflows_pargs() throw() {
 }
 
 
-uint32_t 

<TRUNCATED>

[07/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 a1c5143..155b8ef 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
@@ -1972,6 +1972,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("addGatewayComputeResourcePreference\n");
   }
 
+  bool addGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& dataStoragePreference) {
+    // Your implementation goes here
+    printf("addGatewayDataStoragePreference\n");
+  }
+
   /**
    * Fetch a Compute Resource Preference of a registered gateway profile.
    * 
@@ -1994,6 +1999,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getGatewayComputeResourcePreference\n");
   }
 
+  void getGatewayDataStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId) {
+    // Your implementation goes here
+    printf("getGatewayDataStoragePreference\n");
+  }
+
   /**
    * Fetch all Compute Resource Preferences of a registered gateway profile.
    * 
@@ -2012,6 +2022,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAllGatewayComputeResourcePreferences\n");
   }
 
+  void getAllGatewayDataStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID) {
+    // Your implementation goes here
+    printf("getAllGatewayDataStoragePreferences\n");
+  }
+
   /**
    * Fetch all gateway profiles registered
    * 
@@ -2049,6 +2064,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("updateGatewayComputeResourcePreference\n");
   }
 
+  bool updateGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& dataStoragePreference) {
+    // Your implementation goes here
+    printf("updateGatewayDataStoragePreference\n");
+  }
+
   /**
    * Delete the Compute Resource Preference of a registered gateway profile.
    * 
@@ -2071,6 +2091,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("deleteGatewayComputeResourcePreference\n");
   }
 
+  bool deleteGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId) {
+    // Your implementation goes here
+    printf("deleteGatewayDataStoragePreference\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/d84783da/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
index 952612c..949a59d 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
@@ -1286,8 +1286,13 @@ void SSHJobSubmission::__set_monitorMode(const MonitorMode::type val) {
 __isset.monitorMode = true;
 }
 
-const char* SSHJobSubmission::ascii_fingerprint = "A62183DAA7AFF027173705420A9D99D0";
-const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0xA6,0x21,0x83,0xDA,0xA7,0xAF,0xF0,0x27,0x17,0x37,0x05,0x42,0x0A,0x9D,0x99,0xD0};
+void SSHJobSubmission::__set_batchQueueEmailSenders(const std::vector<std::string> & val) {
+  this->batchQueueEmailSenders = val;
+__isset.batchQueueEmailSenders = true;
+}
+
+const char* SSHJobSubmission::ascii_fingerprint = "46172F971809F7ECCCF7AB14291B87C6";
+const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0x46,0x17,0x2F,0x97,0x18,0x09,0xF7,0xEC,0xCC,0xF7,0xAB,0x14,0x29,0x1B,0x87,0xC6};
 
 uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1364,6 +1369,26 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->batchQueueEmailSenders.clear();
+            uint32_t _size35;
+            ::apache::thrift::protocol::TType _etype38;
+            xfer += iprot->readListBegin(_etype38, _size35);
+            this->batchQueueEmailSenders.resize(_size35);
+            uint32_t _i39;
+            for (_i39 = 0; _i39 < _size35; ++_i39)
+            {
+              xfer += iprot->readString(this->batchQueueEmailSenders[_i39]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.batchQueueEmailSenders = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -1414,6 +1439,19 @@ uint32_t SSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) c
     xfer += oprot->writeI32((int32_t)this->monitorMode);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.batchQueueEmailSenders) {
+    xfer += oprot->writeFieldBegin("batchQueueEmailSenders", ::apache::thrift::protocol::T_LIST, 7);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->batchQueueEmailSenders.size()));
+      std::vector<std::string> ::const_iterator _iter40;
+      for (_iter40 = this->batchQueueEmailSenders.begin(); _iter40 != this->batchQueueEmailSenders.end(); ++_iter40)
+      {
+        xfer += oprot->writeString((*_iter40));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -1428,26 +1466,29 @@ void swap(SSHJobSubmission &a, SSHJobSubmission &b) {
   swap(a.alternativeSSHHostName, b.alternativeSSHHostName);
   swap(a.sshPort, b.sshPort);
   swap(a.monitorMode, b.monitorMode);
+  swap(a.batchQueueEmailSenders, b.batchQueueEmailSenders);
   swap(a.__isset, b.__isset);
 }
 
-SSHJobSubmission::SSHJobSubmission(const SSHJobSubmission& other35) {
-  jobSubmissionInterfaceId = other35.jobSubmissionInterfaceId;
-  securityProtocol = other35.securityProtocol;
-  resourceJobManager = other35.resourceJobManager;
-  alternativeSSHHostName = other35.alternativeSSHHostName;
-  sshPort = other35.sshPort;
-  monitorMode = other35.monitorMode;
-  __isset = other35.__isset;
-}
-SSHJobSubmission& SSHJobSubmission::operator=(const SSHJobSubmission& other36) {
-  jobSubmissionInterfaceId = other36.jobSubmissionInterfaceId;
-  securityProtocol = other36.securityProtocol;
-  resourceJobManager = other36.resourceJobManager;
-  alternativeSSHHostName = other36.alternativeSSHHostName;
-  sshPort = other36.sshPort;
-  monitorMode = other36.monitorMode;
-  __isset = other36.__isset;
+SSHJobSubmission::SSHJobSubmission(const SSHJobSubmission& other41) {
+  jobSubmissionInterfaceId = other41.jobSubmissionInterfaceId;
+  securityProtocol = other41.securityProtocol;
+  resourceJobManager = other41.resourceJobManager;
+  alternativeSSHHostName = other41.alternativeSSHHostName;
+  sshPort = other41.sshPort;
+  monitorMode = other41.monitorMode;
+  batchQueueEmailSenders = other41.batchQueueEmailSenders;
+  __isset = other41.__isset;
+}
+SSHJobSubmission& SSHJobSubmission::operator=(const SSHJobSubmission& other42) {
+  jobSubmissionInterfaceId = other42.jobSubmissionInterfaceId;
+  securityProtocol = other42.securityProtocol;
+  resourceJobManager = other42.resourceJobManager;
+  alternativeSSHHostName = other42.alternativeSSHHostName;
+  sshPort = other42.sshPort;
+  monitorMode = other42.monitorMode;
+  batchQueueEmailSenders = other42.batchQueueEmailSenders;
+  __isset = other42.__isset;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const SSHJobSubmission& obj) {
@@ -1459,6 +1500,7 @@ std::ostream& operator<<(std::ostream& out, const SSHJobSubmission& obj) {
   out << ", " << "alternativeSSHHostName="; (obj.__isset.alternativeSSHHostName ? (out << to_string(obj.alternativeSSHHostName)) : (out << "<null>"));
   out << ", " << "sshPort="; (obj.__isset.sshPort ? (out << to_string(obj.sshPort)) : (out << "<null>"));
   out << ", " << "monitorMode="; (obj.__isset.monitorMode ? (out << to_string(obj.monitorMode)) : (out << "<null>"));
+  out << ", " << "batchQueueEmailSenders="; (obj.__isset.batchQueueEmailSenders ? (out << to_string(obj.batchQueueEmailSenders)) : (out << "<null>"));
   out << ")";
   return out;
 }
@@ -1516,9 +1558,9 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast37;
-          xfer += iprot->readI32(ecast37);
-          this->securityProtocol = (SecurityProtocol::type)ecast37;
+          int32_t ecast43;
+          xfer += iprot->readI32(ecast43);
+          this->securityProtocol = (SecurityProtocol::type)ecast43;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1528,14 +1570,14 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->globusGateKeeperEndPoint.clear();
-            uint32_t _size38;
-            ::apache::thrift::protocol::TType _etype41;
-            xfer += iprot->readListBegin(_etype41, _size38);
-            this->globusGateKeeperEndPoint.resize(_size38);
-            uint32_t _i42;
-            for (_i42 = 0; _i42 < _size38; ++_i42)
+            uint32_t _size44;
+            ::apache::thrift::protocol::TType _etype47;
+            xfer += iprot->readListBegin(_etype47, _size44);
+            this->globusGateKeeperEndPoint.resize(_size44);
+            uint32_t _i48;
+            for (_i48 = 0; _i48 < _size44; ++_i48)
             {
-              xfer += iprot->readString(this->globusGateKeeperEndPoint[_i42]);
+              xfer += iprot->readString(this->globusGateKeeperEndPoint[_i48]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1577,10 +1619,10 @@ uint32_t GlobusJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("globusGateKeeperEndPoint", ::apache::thrift::protocol::T_LIST, 3);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->globusGateKeeperEndPoint.size()));
-      std::vector<std::string> ::const_iterator _iter43;
-      for (_iter43 = this->globusGateKeeperEndPoint.begin(); _iter43 != this->globusGateKeeperEndPoint.end(); ++_iter43)
+      std::vector<std::string> ::const_iterator _iter49;
+      for (_iter49 = this->globusGateKeeperEndPoint.begin(); _iter49 != this->globusGateKeeperEndPoint.end(); ++_iter49)
       {
-        xfer += oprot->writeString((*_iter43));
+        xfer += oprot->writeString((*_iter49));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1600,17 +1642,17 @@ void swap(GlobusJobSubmission &a, GlobusJobSubmission &b) {
   swap(a.__isset, b.__isset);
 }
 
-GlobusJobSubmission::GlobusJobSubmission(const GlobusJobSubmission& other44) {
-  jobSubmissionInterfaceId = other44.jobSubmissionInterfaceId;
-  securityProtocol = other44.securityProtocol;
-  globusGateKeeperEndPoint = other44.globusGateKeeperEndPoint;
-  __isset = other44.__isset;
+GlobusJobSubmission::GlobusJobSubmission(const GlobusJobSubmission& other50) {
+  jobSubmissionInterfaceId = other50.jobSubmissionInterfaceId;
+  securityProtocol = other50.securityProtocol;
+  globusGateKeeperEndPoint = other50.globusGateKeeperEndPoint;
+  __isset = other50.__isset;
 }
-GlobusJobSubmission& GlobusJobSubmission::operator=(const GlobusJobSubmission& other45) {
-  jobSubmissionInterfaceId = other45.jobSubmissionInterfaceId;
-  securityProtocol = other45.securityProtocol;
-  globusGateKeeperEndPoint = other45.globusGateKeeperEndPoint;
-  __isset = other45.__isset;
+GlobusJobSubmission& GlobusJobSubmission::operator=(const GlobusJobSubmission& other51) {
+  jobSubmissionInterfaceId = other51.jobSubmissionInterfaceId;
+  securityProtocol = other51.securityProtocol;
+  globusGateKeeperEndPoint = other51.globusGateKeeperEndPoint;
+  __isset = other51.__isset;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const GlobusJobSubmission& obj) {
@@ -1676,9 +1718,9 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast46;
-          xfer += iprot->readI32(ecast46);
-          this->securityProtocol = (SecurityProtocol::type)ecast46;
+          int32_t ecast52;
+          xfer += iprot->readI32(ecast52);
+          this->securityProtocol = (SecurityProtocol::type)ecast52;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1740,15 +1782,15 @@ void swap(UnicoreJobSubmission &a, UnicoreJobSubmission &b) {
   swap(a.unicoreEndPointURL, b.unicoreEndPointURL);
 }
 
-UnicoreJobSubmission::UnicoreJobSubmission(const UnicoreJobSubmission& other47) {
-  jobSubmissionInterfaceId = other47.jobSubmissionInterfaceId;
-  securityProtocol = other47.securityProtocol;
-  unicoreEndPointURL = other47.unicoreEndPointURL;
+UnicoreJobSubmission::UnicoreJobSubmission(const UnicoreJobSubmission& other53) {
+  jobSubmissionInterfaceId = other53.jobSubmissionInterfaceId;
+  securityProtocol = other53.securityProtocol;
+  unicoreEndPointURL = other53.unicoreEndPointURL;
 }
-UnicoreJobSubmission& UnicoreJobSubmission::operator=(const UnicoreJobSubmission& other48) {
-  jobSubmissionInterfaceId = other48.jobSubmissionInterfaceId;
-  securityProtocol = other48.securityProtocol;
-  unicoreEndPointURL = other48.unicoreEndPointURL;
+UnicoreJobSubmission& UnicoreJobSubmission::operator=(const UnicoreJobSubmission& other54) {
+  jobSubmissionInterfaceId = other54.jobSubmissionInterfaceId;
+  securityProtocol = other54.securityProtocol;
+  unicoreEndPointURL = other54.unicoreEndPointURL;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const UnicoreJobSubmission& obj) {
@@ -1829,9 +1871,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast49;
-          xfer += iprot->readI32(ecast49);
-          this->securityProtocol = (SecurityProtocol::type)ecast49;
+          int32_t ecast55;
+          xfer += iprot->readI32(ecast55);
+          this->securityProtocol = (SecurityProtocol::type)ecast55;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1855,9 +1897,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 5:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast50;
-          xfer += iprot->readI32(ecast50);
-          this->providerName = (ProviderName::type)ecast50;
+          int32_t ecast56;
+          xfer += iprot->readI32(ecast56);
+          this->providerName = (ProviderName::type)ecast56;
           isset_providerName = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1940,21 +1982,21 @@ void swap(CloudJobSubmission &a, CloudJobSubmission &b) {
   swap(a.userAccountName, b.userAccountName);
 }
 
-CloudJobSubmission::CloudJobSubmission(const CloudJobSubmission& other51) {
-  jobSubmissionInterfaceId = other51.jobSubmissionInterfaceId;
-  securityProtocol = other51.securityProtocol;
-  nodeId = other51.nodeId;
-  executableType = other51.executableType;
-  providerName = other51.providerName;
-  userAccountName = other51.userAccountName;
-}
-CloudJobSubmission& CloudJobSubmission::operator=(const CloudJobSubmission& other52) {
-  jobSubmissionInterfaceId = other52.jobSubmissionInterfaceId;
-  securityProtocol = other52.securityProtocol;
-  nodeId = other52.nodeId;
-  executableType = other52.executableType;
-  providerName = other52.providerName;
-  userAccountName = other52.userAccountName;
+CloudJobSubmission::CloudJobSubmission(const CloudJobSubmission& other57) {
+  jobSubmissionInterfaceId = other57.jobSubmissionInterfaceId;
+  securityProtocol = other57.securityProtocol;
+  nodeId = other57.nodeId;
+  executableType = other57.executableType;
+  providerName = other57.providerName;
+  userAccountName = other57.userAccountName;
+}
+CloudJobSubmission& CloudJobSubmission::operator=(const CloudJobSubmission& other58) {
+  jobSubmissionInterfaceId = other58.jobSubmissionInterfaceId;
+  securityProtocol = other58.securityProtocol;
+  nodeId = other58.nodeId;
+  executableType = other58.executableType;
+  providerName = other58.providerName;
+  userAccountName = other58.userAccountName;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const CloudJobSubmission& obj) {
@@ -2023,9 +2065,9 @@ uint32_t JobSubmissionInterface::read(::apache::thrift::protocol::TProtocol* ipr
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast53;
-          xfer += iprot->readI32(ecast53);
-          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast53;
+          int32_t ecast59;
+          xfer += iprot->readI32(ecast59);
+          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast59;
           isset_jobSubmissionProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -2087,15 +2129,15 @@ void swap(JobSubmissionInterface &a, JobSubmissionInterface &b) {
   swap(a.priorityOrder, b.priorityOrder);
 }
 
-JobSubmissionInterface::JobSubmissionInterface(const JobSubmissionInterface& other54) {
-  jobSubmissionInterfaceId = other54.jobSubmissionInterfaceId;
-  jobSubmissionProtocol = other54.jobSubmissionProtocol;
-  priorityOrder = other54.priorityOrder;
+JobSubmissionInterface::JobSubmissionInterface(const JobSubmissionInterface& other60) {
+  jobSubmissionInterfaceId = other60.jobSubmissionInterfaceId;
+  jobSubmissionProtocol = other60.jobSubmissionProtocol;
+  priorityOrder = other60.priorityOrder;
 }
-JobSubmissionInterface& JobSubmissionInterface::operator=(const JobSubmissionInterface& other55) {
-  jobSubmissionInterfaceId = other55.jobSubmissionInterfaceId;
-  jobSubmissionProtocol = other55.jobSubmissionProtocol;
-  priorityOrder = other55.priorityOrder;
+JobSubmissionInterface& JobSubmissionInterface::operator=(const JobSubmissionInterface& other61) {
+  jobSubmissionInterfaceId = other61.jobSubmissionInterfaceId;
+  jobSubmissionProtocol = other61.jobSubmissionProtocol;
+  priorityOrder = other61.priorityOrder;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const JobSubmissionInterface& obj) {
@@ -2161,9 +2203,9 @@ uint32_t DataMovementInterface::read(::apache::thrift::protocol::TProtocol* ipro
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast56;
-          xfer += iprot->readI32(ecast56);
-          this->dataMovementProtocol = (DataMovementProtocol::type)ecast56;
+          int32_t ecast62;
+          xfer += iprot->readI32(ecast62);
+          this->dataMovementProtocol = (DataMovementProtocol::type)ecast62;
           isset_dataMovementProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -2225,15 +2267,15 @@ void swap(DataMovementInterface &a, DataMovementInterface &b) {
   swap(a.priorityOrder, b.priorityOrder);
 }
 
-DataMovementInterface::DataMovementInterface(const DataMovementInterface& other57) {
-  dataMovementInterfaceId = other57.dataMovementInterfaceId;
-  dataMovementProtocol = other57.dataMovementProtocol;
-  priorityOrder = other57.priorityOrder;
+DataMovementInterface::DataMovementInterface(const DataMovementInterface& other63) {
+  dataMovementInterfaceId = other63.dataMovementInterfaceId;
+  dataMovementProtocol = other63.dataMovementProtocol;
+  priorityOrder = other63.priorityOrder;
 }
-DataMovementInterface& DataMovementInterface::operator=(const DataMovementInterface& other58) {
-  dataMovementInterfaceId = other58.dataMovementInterfaceId;
-  dataMovementProtocol = other58.dataMovementProtocol;
-  priorityOrder = other58.priorityOrder;
+DataMovementInterface& DataMovementInterface::operator=(const DataMovementInterface& other64) {
+  dataMovementInterfaceId = other64.dataMovementInterfaceId;
+  dataMovementProtocol = other64.dataMovementProtocol;
+  priorityOrder = other64.priorityOrder;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const DataMovementInterface& obj) {
@@ -2349,14 +2391,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->hostAliases.clear();
-            uint32_t _size59;
-            ::apache::thrift::protocol::TType _etype62;
-            xfer += iprot->readListBegin(_etype62, _size59);
-            this->hostAliases.resize(_size59);
-            uint32_t _i63;
-            for (_i63 = 0; _i63 < _size59; ++_i63)
+            uint32_t _size65;
+            ::apache::thrift::protocol::TType _etype68;
+            xfer += iprot->readListBegin(_etype68, _size65);
+            this->hostAliases.resize(_size65);
+            uint32_t _i69;
+            for (_i69 = 0; _i69 < _size65; ++_i69)
             {
-              xfer += iprot->readString(this->hostAliases[_i63]);
+              xfer += iprot->readString(this->hostAliases[_i69]);
             }
             xfer += iprot->readListEnd();
           }
@@ -2369,14 +2411,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->ipAddresses.clear();
-            uint32_t _size64;
-            ::apache::thrift::protocol::TType _etype67;
-            xfer += iprot->readListBegin(_etype67, _size64);
-            this->ipAddresses.resize(_size64);
-            uint32_t _i68;
-            for (_i68 = 0; _i68 < _size64; ++_i68)
+            uint32_t _size70;
+            ::apache::thrift::protocol::TType _etype73;
+            xfer += iprot->readListBegin(_etype73, _size70);
+            this->ipAddresses.resize(_size70);
+            uint32_t _i74;
+            for (_i74 = 0; _i74 < _size70; ++_i74)
             {
-              xfer += iprot->readString(this->ipAddresses[_i68]);
+              xfer += iprot->readString(this->ipAddresses[_i74]);
             }
             xfer += iprot->readListEnd();
           }
@@ -2405,14 +2447,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->batchQueues.clear();
-            uint32_t _size69;
-            ::apache::thrift::protocol::TType _etype72;
-            xfer += iprot->readListBegin(_etype72, _size69);
-            this->batchQueues.resize(_size69);
-            uint32_t _i73;
-            for (_i73 = 0; _i73 < _size69; ++_i73)
+            uint32_t _size75;
+            ::apache::thrift::protocol::TType _etype78;
+            xfer += iprot->readListBegin(_etype78, _size75);
+            this->batchQueues.resize(_size75);
+            uint32_t _i79;
+            for (_i79 = 0; _i79 < _size75; ++_i79)
             {
-              xfer += this->batchQueues[_i73].read(iprot);
+              xfer += this->batchQueues[_i79].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2425,19 +2467,19 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->fileSystems.clear();
-            uint32_t _size74;
-            ::apache::thrift::protocol::TType _ktype75;
-            ::apache::thrift::protocol::TType _vtype76;
-            xfer += iprot->readMapBegin(_ktype75, _vtype76, _size74);
-            uint32_t _i78;
-            for (_i78 = 0; _i78 < _size74; ++_i78)
+            uint32_t _size80;
+            ::apache::thrift::protocol::TType _ktype81;
+            ::apache::thrift::protocol::TType _vtype82;
+            xfer += iprot->readMapBegin(_ktype81, _vtype82, _size80);
+            uint32_t _i84;
+            for (_i84 = 0; _i84 < _size80; ++_i84)
             {
-              FileSystems::type _key79;
-              int32_t ecast81;
-              xfer += iprot->readI32(ecast81);
-              _key79 = (FileSystems::type)ecast81;
-              std::string& _val80 = this->fileSystems[_key79];
-              xfer += iprot->readString(_val80);
+              FileSystems::type _key85;
+              int32_t ecast87;
+              xfer += iprot->readI32(ecast87);
+              _key85 = (FileSystems::type)ecast87;
+              std::string& _val86 = this->fileSystems[_key85];
+              xfer += iprot->readString(_val86);
             }
             xfer += iprot->readMapEnd();
           }
@@ -2450,14 +2492,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobSubmissionInterfaces.clear();
-            uint32_t _size82;
-            ::apache::thrift::protocol::TType _etype85;
-            xfer += iprot->readListBegin(_etype85, _size82);
-            this->jobSubmissionInterfaces.resize(_size82);
-            uint32_t _i86;
-            for (_i86 = 0; _i86 < _size82; ++_i86)
+            uint32_t _size88;
+            ::apache::thrift::protocol::TType _etype91;
+            xfer += iprot->readListBegin(_etype91, _size88);
+            this->jobSubmissionInterfaces.resize(_size88);
+            uint32_t _i92;
+            for (_i92 = 0; _i92 < _size88; ++_i92)
             {
-              xfer += this->jobSubmissionInterfaces[_i86].read(iprot);
+              xfer += this->jobSubmissionInterfaces[_i92].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2470,14 +2512,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->dataMovementInterfaces.clear();
-            uint32_t _size87;
-            ::apache::thrift::protocol::TType _etype90;
-            xfer += iprot->readListBegin(_etype90, _size87);
-            this->dataMovementInterfaces.resize(_size87);
-            uint32_t _i91;
-            for (_i91 = 0; _i91 < _size87; ++_i91)
+            uint32_t _size93;
+            ::apache::thrift::protocol::TType _etype96;
+            xfer += iprot->readListBegin(_etype96, _size93);
+            this->dataMovementInterfaces.resize(_size93);
+            uint32_t _i97;
+            for (_i97 = 0; _i97 < _size93; ++_i97)
             {
-              xfer += this->dataMovementInterfaces[_i91].read(iprot);
+              xfer += this->dataMovementInterfaces[_i97].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2527,10 +2569,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("hostAliases", ::apache::thrift::protocol::T_LIST, 3);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->hostAliases.size()));
-      std::vector<std::string> ::const_iterator _iter92;
-      for (_iter92 = this->hostAliases.begin(); _iter92 != this->hostAliases.end(); ++_iter92)
+      std::vector<std::string> ::const_iterator _iter98;
+      for (_iter98 = this->hostAliases.begin(); _iter98 != this->hostAliases.end(); ++_iter98)
       {
-        xfer += oprot->writeString((*_iter92));
+        xfer += oprot->writeString((*_iter98));
       }
       xfer += oprot->writeListEnd();
     }
@@ -2540,10 +2582,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ipAddresses", ::apache::thrift::protocol::T_LIST, 4);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->ipAddresses.size()));
-      std::vector<std::string> ::const_iterator _iter93;
-      for (_iter93 = this->ipAddresses.begin(); _iter93 != this->ipAddresses.end(); ++_iter93)
+      std::vector<std::string> ::const_iterator _iter99;
+      for (_iter99 = this->ipAddresses.begin(); _iter99 != this->ipAddresses.end(); ++_iter99)
       {
-        xfer += oprot->writeString((*_iter93));
+        xfer += oprot->writeString((*_iter99));
       }
       xfer += oprot->writeListEnd();
     }
@@ -2563,10 +2605,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("batchQueues", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->batchQueues.size()));
-      std::vector<BatchQueue> ::const_iterator _iter94;
-      for (_iter94 = this->batchQueues.begin(); _iter94 != this->batchQueues.end(); ++_iter94)
+      std::vector<BatchQueue> ::const_iterator _iter100;
+      for (_iter100 = this->batchQueues.begin(); _iter100 != this->batchQueues.end(); ++_iter100)
       {
-        xfer += (*_iter94).write(oprot);
+        xfer += (*_iter100).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2576,11 +2618,11 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("fileSystems", ::apache::thrift::protocol::T_MAP, 8);
     {
       xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->fileSystems.size()));
-      std::map<FileSystems::type, std::string> ::const_iterator _iter95;
-      for (_iter95 = this->fileSystems.begin(); _iter95 != this->fileSystems.end(); ++_iter95)
+      std::map<FileSystems::type, std::string> ::const_iterator _iter101;
+      for (_iter101 = this->fileSystems.begin(); _iter101 != this->fileSystems.end(); ++_iter101)
       {
-        xfer += oprot->writeI32((int32_t)_iter95->first);
-        xfer += oprot->writeString(_iter95->second);
+        xfer += oprot->writeI32((int32_t)_iter101->first);
+        xfer += oprot->writeString(_iter101->second);
       }
       xfer += oprot->writeMapEnd();
     }
@@ -2590,10 +2632,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("jobSubmissionInterfaces", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobSubmissionInterfaces.size()));
-      std::vector<JobSubmissionInterface> ::const_iterator _iter96;
-      for (_iter96 = this->jobSubmissionInterfaces.begin(); _iter96 != this->jobSubmissionInterfaces.end(); ++_iter96)
+      std::vector<JobSubmissionInterface> ::const_iterator _iter102;
+      for (_iter102 = this->jobSubmissionInterfaces.begin(); _iter102 != this->jobSubmissionInterfaces.end(); ++_iter102)
       {
-        xfer += (*_iter96).write(oprot);
+        xfer += (*_iter102).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2603,10 +2645,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("dataMovementInterfaces", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataMovementInterfaces.size()));
-      std::vector<DataMovementInterface> ::const_iterator _iter97;
-      for (_iter97 = this->dataMovementInterfaces.begin(); _iter97 != this->dataMovementInterfaces.end(); ++_iter97)
+      std::vector<DataMovementInterface> ::const_iterator _iter103;
+      for (_iter103 = this->dataMovementInterfaces.begin(); _iter103 != this->dataMovementInterfaces.end(); ++_iter103)
       {
-        xfer += (*_iter97).write(oprot);
+        xfer += (*_iter103).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2639,33 +2681,33 @@ void swap(ComputeResourceDescription &a, ComputeResourceDescription &b) {
   swap(a.__isset, b.__isset);
 }
 
-ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDescription& other98) {
-  computeResourceId = other98.computeResourceId;
-  hostName = other98.hostName;
-  hostAliases = other98.hostAliases;
-  ipAddresses = other98.ipAddresses;
-  resourceDescription = other98.resourceDescription;
-  enabled = other98.enabled;
-  batchQueues = other98.batchQueues;
-  fileSystems = other98.fileSystems;
-  jobSubmissionInterfaces = other98.jobSubmissionInterfaces;
-  dataMovementInterfaces = other98.dataMovementInterfaces;
-  maxMemoryPerNode = other98.maxMemoryPerNode;
-  __isset = other98.__isset;
-}
-ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other99) {
-  computeResourceId = other99.computeResourceId;
-  hostName = other99.hostName;
-  hostAliases = other99.hostAliases;
-  ipAddresses = other99.ipAddresses;
-  resourceDescription = other99.resourceDescription;
-  enabled = other99.enabled;
-  batchQueues = other99.batchQueues;
-  fileSystems = other99.fileSystems;
-  jobSubmissionInterfaces = other99.jobSubmissionInterfaces;
-  dataMovementInterfaces = other99.dataMovementInterfaces;
-  maxMemoryPerNode = other99.maxMemoryPerNode;
-  __isset = other99.__isset;
+ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDescription& other104) {
+  computeResourceId = other104.computeResourceId;
+  hostName = other104.hostName;
+  hostAliases = other104.hostAliases;
+  ipAddresses = other104.ipAddresses;
+  resourceDescription = other104.resourceDescription;
+  enabled = other104.enabled;
+  batchQueues = other104.batchQueues;
+  fileSystems = other104.fileSystems;
+  jobSubmissionInterfaces = other104.jobSubmissionInterfaces;
+  dataMovementInterfaces = other104.dataMovementInterfaces;
+  maxMemoryPerNode = other104.maxMemoryPerNode;
+  __isset = other104.__isset;
+}
+ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other105) {
+  computeResourceId = other105.computeResourceId;
+  hostName = other105.hostName;
+  hostAliases = other105.hostAliases;
+  ipAddresses = other105.ipAddresses;
+  resourceDescription = other105.resourceDescription;
+  enabled = other105.enabled;
+  batchQueues = other105.batchQueues;
+  fileSystems = other105.fileSystems;
+  jobSubmissionInterfaces = other105.jobSubmissionInterfaces;
+  dataMovementInterfaces = other105.dataMovementInterfaces;
+  maxMemoryPerNode = other105.maxMemoryPerNode;
+  __isset = other105.__isset;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const ComputeResourceDescription& obj) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
index a169f7b..bfcd20e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
@@ -559,17 +559,18 @@ class LOCALDataMovement {
 void swap(LOCALDataMovement &a, LOCALDataMovement &b);
 
 typedef struct _SSHJobSubmission__isset {
-  _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false) {}
+  _SSHJobSubmission__isset() : alternativeSSHHostName(false), sshPort(true), monitorMode(false), batchQueueEmailSenders(false) {}
   bool alternativeSSHHostName :1;
   bool sshPort :1;
   bool monitorMode :1;
+  bool batchQueueEmailSenders :1;
 } _SSHJobSubmission__isset;
 
 class SSHJobSubmission {
  public:
 
-  static const char* ascii_fingerprint; // = "A62183DAA7AFF027173705420A9D99D0";
-  static const uint8_t binary_fingerprint[16]; // = {0xA6,0x21,0x83,0xDA,0xA7,0xAF,0xF0,0x27,0x17,0x37,0x05,0x42,0x0A,0x9D,0x99,0xD0};
+  static const char* ascii_fingerprint; // = "46172F971809F7ECCCF7AB14291B87C6";
+  static const uint8_t binary_fingerprint[16]; // = {0x46,0x17,0x2F,0x97,0x18,0x09,0xF7,0xEC,0xCC,0xF7,0xAB,0x14,0x29,0x1B,0x87,0xC6};
 
   SSHJobSubmission(const SSHJobSubmission&);
   SSHJobSubmission& operator=(const SSHJobSubmission&);
@@ -583,6 +584,7 @@ class SSHJobSubmission {
   std::string alternativeSSHHostName;
   int32_t sshPort;
   MonitorMode::type monitorMode;
+  std::vector<std::string>  batchQueueEmailSenders;
 
   _SSHJobSubmission__isset __isset;
 
@@ -598,6 +600,8 @@ class SSHJobSubmission {
 
   void __set_monitorMode(const MonitorMode::type val);
 
+  void __set_batchQueueEmailSenders(const std::vector<std::string> & val);
+
   bool operator == (const SSHJobSubmission & rhs) const
   {
     if (!(jobSubmissionInterfaceId == rhs.jobSubmissionInterfaceId))
@@ -618,6 +622,10 @@ class SSHJobSubmission {
       return false;
     else if (__isset.monitorMode && !(monitorMode == rhs.monitorMode))
       return false;
+    if (__isset.batchQueueEmailSenders != rhs.__isset.batchQueueEmailSenders)
+      return false;
+    else if (__isset.batchQueueEmailSenders && !(batchQueueEmailSenders == rhs.batchQueueEmailSenders))
+      return false;
     return true;
   }
   bool operator != (const SSHJobSubmission &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
index efe4c1a..6da0cfa 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
@@ -73,8 +73,13 @@ void ComputeResourcePreference::__set_allocationProjectNumber(const std::string&
 __isset.allocationProjectNumber = true;
 }
 
-const char* ComputeResourcePreference::ascii_fingerprint = "D89E0E13D04B60B99B78496AC9B85D52";
-const uint8_t ComputeResourcePreference::binary_fingerprint[16] = {0xD8,0x9E,0x0E,0x13,0xD0,0x4B,0x60,0xB9,0x9B,0x78,0x49,0x6A,0xC9,0xB8,0x5D,0x52};
+void ComputeResourcePreference::__set_resourceSpecificCredentialStoreToken(const std::string& val) {
+  this->resourceSpecificCredentialStoreToken = val;
+__isset.resourceSpecificCredentialStoreToken = true;
+}
+
+const char* ComputeResourcePreference::ascii_fingerprint = "294547CFB0912EC49097370EC1C66E41";
+const uint8_t ComputeResourcePreference::binary_fingerprint[16] = {0x29,0x45,0x47,0xCF,0xB0,0x91,0x2E,0xC4,0x90,0x97,0x37,0x0E,0xC1,0xC6,0x6E,0x41};
 
 uint32_t ComputeResourcePreference::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -166,6 +171,14 @@ uint32_t ComputeResourcePreference::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 9:
+        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;
@@ -225,6 +238,11 @@ uint32_t ComputeResourcePreference::write(::apache::thrift::protocol::TProtocol*
     xfer += oprot->writeString(this->allocationProjectNumber);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.resourceSpecificCredentialStoreToken) {
+    xfer += oprot->writeFieldBegin("resourceSpecificCredentialStoreToken", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeString(this->resourceSpecificCredentialStoreToken);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   oprot->decrementRecursionDepth();
@@ -241,6 +259,7 @@ void swap(ComputeResourcePreference &a, ComputeResourcePreference &b) {
   swap(a.preferredBatchQueue, b.preferredBatchQueue);
   swap(a.scratchLocation, b.scratchLocation);
   swap(a.allocationProjectNumber, b.allocationProjectNumber);
+  swap(a.resourceSpecificCredentialStoreToken, b.resourceSpecificCredentialStoreToken);
   swap(a.__isset, b.__isset);
 }
 
@@ -253,6 +272,7 @@ ComputeResourcePreference::ComputeResourcePreference(const ComputeResourcePrefer
   preferredBatchQueue = other2.preferredBatchQueue;
   scratchLocation = other2.scratchLocation;
   allocationProjectNumber = other2.allocationProjectNumber;
+  resourceSpecificCredentialStoreToken = other2.resourceSpecificCredentialStoreToken;
   __isset = other2.__isset;
 }
 ComputeResourcePreference& ComputeResourcePreference::operator=(const ComputeResourcePreference& other3) {
@@ -264,6 +284,7 @@ ComputeResourcePreference& ComputeResourcePreference::operator=(const ComputeRes
   preferredBatchQueue = other3.preferredBatchQueue;
   scratchLocation = other3.scratchLocation;
   allocationProjectNumber = other3.allocationProjectNumber;
+  resourceSpecificCredentialStoreToken = other3.resourceSpecificCredentialStoreToken;
   __isset = other3.__isset;
   return *this;
 }
@@ -278,6 +299,166 @@ std::ostream& operator<<(std::ostream& out, const ComputeResourcePreference& obj
   out << ", " << "preferredBatchQueue="; (obj.__isset.preferredBatchQueue ? (out << to_string(obj.preferredBatchQueue)) : (out << "<null>"));
   out << ", " << "scratchLocation="; (obj.__isset.scratchLocation ? (out << to_string(obj.scratchLocation)) : (out << "<null>"));
   out << ", " << "allocationProjectNumber="; (obj.__isset.allocationProjectNumber ? (out << to_string(obj.allocationProjectNumber)) : (out << "<null>"));
+  out << ", " << "resourceSpecificCredentialStoreToken="; (obj.__isset.resourceSpecificCredentialStoreToken ? (out << to_string(obj.resourceSpecificCredentialStoreToken)) : (out << "<null>"));
+  out << ")";
+  return out;
+}
+
+
+DataStoragePreference::~DataStoragePreference() throw() {
+}
+
+
+void DataStoragePreference::__set_dataMovememtResourceId(const std::string& val) {
+  this->dataMovememtResourceId = val;
+}
+
+void DataStoragePreference::__set_loginUserName(const std::string& val) {
+  this->loginUserName = val;
+__isset.loginUserName = true;
+}
+
+void DataStoragePreference::__set_fileSystemRootLocation(const std::string& val) {
+  this->fileSystemRootLocation = val;
+__isset.fileSystemRootLocation = true;
+}
+
+void DataStoragePreference::__set_resourceSpecificCredentialStoreToken(const std::string& val) {
+  this->resourceSpecificCredentialStoreToken = val;
+__isset.resourceSpecificCredentialStoreToken = true;
+}
+
+const char* DataStoragePreference::ascii_fingerprint = "6BA700CA2E5FC52A8DA5ADCF811DC8DA";
+const uint8_t DataStoragePreference::binary_fingerprint[16] = {0x6B,0xA7,0x00,0xCA,0x2E,0x5F,0xC5,0x2A,0x8D,0xA5,0xAD,0xCF,0x81,0x1D,0xC8,0xDA};
+
+uint32_t DataStoragePreference::read(::apache::thrift::protocol::TProtocol* 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_dataMovememtResourceId = 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->dataMovememtResourceId);
+          isset_dataMovememtResourceId = 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_dataMovememtResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DataStoragePreference::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("DataStoragePreference");
+
+  xfer += oprot->writeFieldBegin("dataMovememtResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->dataMovememtResourceId);
+  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();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(DataStoragePreference &a, DataStoragePreference &b) {
+  using ::std::swap;
+  swap(a.dataMovememtResourceId, b.dataMovememtResourceId);
+  swap(a.loginUserName, b.loginUserName);
+  swap(a.fileSystemRootLocation, b.fileSystemRootLocation);
+  swap(a.resourceSpecificCredentialStoreToken, b.resourceSpecificCredentialStoreToken);
+  swap(a.__isset, b.__isset);
+}
+
+DataStoragePreference::DataStoragePreference(const DataStoragePreference& other4) {
+  dataMovememtResourceId = other4.dataMovememtResourceId;
+  loginUserName = other4.loginUserName;
+  fileSystemRootLocation = other4.fileSystemRootLocation;
+  resourceSpecificCredentialStoreToken = other4.resourceSpecificCredentialStoreToken;
+  __isset = other4.__isset;
+}
+DataStoragePreference& DataStoragePreference::operator=(const DataStoragePreference& other5) {
+  dataMovememtResourceId = other5.dataMovememtResourceId;
+  loginUserName = other5.loginUserName;
+  fileSystemRootLocation = other5.fileSystemRootLocation;
+  resourceSpecificCredentialStoreToken = other5.resourceSpecificCredentialStoreToken;
+  __isset = other5.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const DataStoragePreference& obj) {
+  using apache::thrift::to_string;
+  out << "DataStoragePreference(";
+  out << "dataMovememtResourceId=" << to_string(obj.dataMovememtResourceId);
+  out << ", " << "loginUserName="; (obj.__isset.loginUserName ? (out << to_string(obj.loginUserName)) : (out << "<null>"));
+  out << ", " << "fileSystemRootLocation="; (obj.__isset.fileSystemRootLocation ? (out << to_string(obj.fileSystemRootLocation)) : (out << "<null>"));
+  out << ", " << "resourceSpecificCredentialStoreToken="; (obj.__isset.resourceSpecificCredentialStoreToken ? (out << to_string(obj.resourceSpecificCredentialStoreToken)) : (out << "<null>"));
   out << ")";
   return out;
 }
@@ -291,13 +472,23 @@ void GatewayResourceProfile::__set_gatewayID(const std::string& val) {
   this->gatewayID = val;
 }
 
+void GatewayResourceProfile::__set_credentialStoreToken(const std::string& val) {
+  this->credentialStoreToken = val;
+__isset.credentialStoreToken = true;
+}
+
 void GatewayResourceProfile::__set_computeResourcePreferences(const std::vector<ComputeResourcePreference> & val) {
   this->computeResourcePreferences = val;
 __isset.computeResourcePreferences = true;
 }
 
-const char* GatewayResourceProfile::ascii_fingerprint = "106DE1CD0F7026F6471DE8DAF360BE03";
-const uint8_t GatewayResourceProfile::binary_fingerprint[16] = {0x10,0x6D,0xE1,0xCD,0x0F,0x70,0x26,0xF6,0x47,0x1D,0xE8,0xDA,0xF3,0x60,0xBE,0x03};
+void GatewayResourceProfile::__set_dataStoragePreferences(const std::vector<DataStoragePreference> & val) {
+  this->dataStoragePreferences = val;
+__isset.dataStoragePreferences = true;
+}
+
+const char* GatewayResourceProfile::ascii_fingerprint = "A4BF6D60A7DE5979505C0E7F00278F12";
+const uint8_t GatewayResourceProfile::binary_fingerprint[16] = {0xA4,0xBF,0x6D,0x60,0xA7,0xDE,0x59,0x79,0x50,0x5C,0x0E,0x7F,0x00,0x27,0x8F,0x12};
 
 uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -329,17 +520,25 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
         }
         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)
+            uint32_t _size6;
+            ::apache::thrift::protocol::TType _etype9;
+            xfer += iprot->readListBegin(_etype9, _size6);
+            this->computeResourcePreferences.resize(_size6);
+            uint32_t _i10;
+            for (_i10 = 0; _i10 < _size6; ++_i10)
             {
-              xfer += this->computeResourcePreferences[_i8].read(iprot);
+              xfer += this->computeResourcePreferences[_i10].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -348,6 +547,26 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->dataStoragePreferences.clear();
+            uint32_t _size11;
+            ::apache::thrift::protocol::TType _etype14;
+            xfer += iprot->readListBegin(_etype14, _size11);
+            this->dataStoragePreferences.resize(_size11);
+            uint32_t _i15;
+            for (_i15 = 0; _i15 < _size11; ++_i15)
+            {
+              xfer += this->dataStoragePreferences[_i15].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.dataStoragePreferences = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -371,14 +590,32 @@ uint32_t GatewayResourceProfile::write(::apache::thrift::protocol::TProtocol* op
   xfer += oprot->writeString(this->gatewayID);
   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, 2);
+    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 _iter9;
-      for (_iter9 = this->computeResourcePreferences.begin(); _iter9 != this->computeResourcePreferences.end(); ++_iter9)
+      std::vector<ComputeResourcePreference> ::const_iterator _iter16;
+      for (_iter16 = this->computeResourcePreferences.begin(); _iter16 != this->computeResourcePreferences.end(); ++_iter16)
+      {
+        xfer += (*_iter16).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.dataStoragePreferences) {
+    xfer += oprot->writeFieldBegin("dataStoragePreferences", ::apache::thrift::protocol::T_LIST, 4);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataStoragePreferences.size()));
+      std::vector<DataStoragePreference> ::const_iterator _iter17;
+      for (_iter17 = this->dataStoragePreferences.begin(); _iter17 != this->dataStoragePreferences.end(); ++_iter17)
       {
-        xfer += (*_iter9).write(oprot);
+        xfer += (*_iter17).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -393,26 +630,34 @@ uint32_t GatewayResourceProfile::write(::apache::thrift::protocol::TProtocol* op
 void swap(GatewayResourceProfile &a, GatewayResourceProfile &b) {
   using ::std::swap;
   swap(a.gatewayID, b.gatewayID);
+  swap(a.credentialStoreToken, b.credentialStoreToken);
   swap(a.computeResourcePreferences, b.computeResourcePreferences);
+  swap(a.dataStoragePreferences, b.dataStoragePreferences);
   swap(a.__isset, b.__isset);
 }
 
-GatewayResourceProfile::GatewayResourceProfile(const GatewayResourceProfile& other10) {
-  gatewayID = other10.gatewayID;
-  computeResourcePreferences = other10.computeResourcePreferences;
-  __isset = other10.__isset;
+GatewayResourceProfile::GatewayResourceProfile(const GatewayResourceProfile& other18) {
+  gatewayID = other18.gatewayID;
+  credentialStoreToken = other18.credentialStoreToken;
+  computeResourcePreferences = other18.computeResourcePreferences;
+  dataStoragePreferences = other18.dataStoragePreferences;
+  __isset = other18.__isset;
 }
-GatewayResourceProfile& GatewayResourceProfile::operator=(const GatewayResourceProfile& other11) {
-  gatewayID = other11.gatewayID;
-  computeResourcePreferences = other11.computeResourcePreferences;
-  __isset = other11.__isset;
+GatewayResourceProfile& GatewayResourceProfile::operator=(const GatewayResourceProfile& other19) {
+  gatewayID = other19.gatewayID;
+  credentialStoreToken = other19.credentialStoreToken;
+  computeResourcePreferences = other19.computeResourcePreferences;
+  dataStoragePreferences = other19.dataStoragePreferences;
+  __isset = other19.__isset;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const GatewayResourceProfile& obj) {
   using apache::thrift::to_string;
   out << "GatewayResourceProfile(";
   out << "gatewayID=" << to_string(obj.gatewayID);
+  out << ", " << "credentialStoreToken="; (obj.__isset.credentialStoreToken ? (out << to_string(obj.credentialStoreToken)) : (out << "<null>"));
   out << ", " << "computeResourcePreferences="; (obj.__isset.computeResourcePreferences ? (out << to_string(obj.computeResourcePreferences)) : (out << "<null>"));
+  out << ", " << "dataStoragePreferences="; (obj.__isset.dataStoragePreferences ? (out << to_string(obj.dataStoragePreferences)) : (out << "<null>"));
   out << ")";
   return out;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
index 978ca60..59fbbef 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
@@ -39,27 +39,30 @@ namespace apache { namespace airavata { namespace model { namespace appcatalog {
 
 class ComputeResourcePreference;
 
+class DataStoragePreference;
+
 class GatewayResourceProfile;
 
 typedef struct _ComputeResourcePreference__isset {
-  _ComputeResourcePreference__isset() : loginUserName(false), preferredJobSubmissionProtocol(false), preferredDataMovementProtocol(false), preferredBatchQueue(false), scratchLocation(false), allocationProjectNumber(false) {}
+  _ComputeResourcePreference__isset() : loginUserName(false), preferredJobSubmissionProtocol(false), preferredDataMovementProtocol(false), preferredBatchQueue(false), scratchLocation(false), allocationProjectNumber(false), resourceSpecificCredentialStoreToken(false) {}
   bool loginUserName :1;
   bool preferredJobSubmissionProtocol :1;
   bool preferredDataMovementProtocol :1;
   bool preferredBatchQueue :1;
   bool scratchLocation :1;
   bool allocationProjectNumber :1;
+  bool resourceSpecificCredentialStoreToken :1;
 } _ComputeResourcePreference__isset;
 
 class ComputeResourcePreference {
  public:
 
-  static const char* ascii_fingerprint; // = "D89E0E13D04B60B99B78496AC9B85D52";
-  static const uint8_t binary_fingerprint[16]; // = {0xD8,0x9E,0x0E,0x13,0xD0,0x4B,0x60,0xB9,0x9B,0x78,0x49,0x6A,0xC9,0xB8,0x5D,0x52};
+  static const char* ascii_fingerprint; // = "294547CFB0912EC49097370EC1C66E41";
+  static const uint8_t binary_fingerprint[16]; // = {0x29,0x45,0x47,0xCF,0xB0,0x91,0x2E,0xC4,0x90,0x97,0x37,0x0E,0xC1,0xC6,0x6E,0x41};
 
   ComputeResourcePreference(const ComputeResourcePreference&);
   ComputeResourcePreference& operator=(const ComputeResourcePreference&);
-  ComputeResourcePreference() : computeResourceId(), overridebyAiravata(true), loginUserName(), preferredJobSubmissionProtocol(( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)0), preferredDataMovementProtocol(( ::apache::airavata::model::appcatalog::computeresource::DataMovementProtocol::type)0), preferredBatchQueue(), scratchLocation(), allocationProjectNumber() {
+  ComputeResourcePreference() : computeResourceId(), overridebyAiravata(true), loginUserName(), preferredJobSubmissionProtocol(( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)0), preferredDataMovementProtocol(( ::apache::airavata::model::appcatalog::computeresource::DataMovementProtocol::type)0), preferredBatchQueue(), scratchLocation(), allocationProjectNumber(), resourceSpecificCredentialStoreToken() {
   }
 
   virtual ~ComputeResourcePreference() throw();
@@ -71,6 +74,7 @@ class ComputeResourcePreference {
   std::string preferredBatchQueue;
   std::string scratchLocation;
   std::string allocationProjectNumber;
+  std::string resourceSpecificCredentialStoreToken;
 
   _ComputeResourcePreference__isset __isset;
 
@@ -90,6 +94,8 @@ class ComputeResourcePreference {
 
   void __set_allocationProjectNumber(const std::string& val);
 
+  void __set_resourceSpecificCredentialStoreToken(const std::string& val);
+
   bool operator == (const ComputeResourcePreference & rhs) const
   {
     if (!(computeResourceId == rhs.computeResourceId))
@@ -120,6 +126,10 @@ class ComputeResourcePreference {
       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;
     return true;
   }
   bool operator != (const ComputeResourcePreference &rhs) const {
@@ -136,40 +146,122 @@ class ComputeResourcePreference {
 
 void swap(ComputeResourcePreference &a, ComputeResourcePreference &b);
 
+typedef struct _DataStoragePreference__isset {
+  _DataStoragePreference__isset() : loginUserName(false), fileSystemRootLocation(false), resourceSpecificCredentialStoreToken(false) {}
+  bool loginUserName :1;
+  bool fileSystemRootLocation :1;
+  bool resourceSpecificCredentialStoreToken :1;
+} _DataStoragePreference__isset;
+
+class DataStoragePreference {
+ public:
+
+  static const char* ascii_fingerprint; // = "6BA700CA2E5FC52A8DA5ADCF811DC8DA";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0xA7,0x00,0xCA,0x2E,0x5F,0xC5,0x2A,0x8D,0xA5,0xAD,0xCF,0x81,0x1D,0xC8,0xDA};
+
+  DataStoragePreference(const DataStoragePreference&);
+  DataStoragePreference& operator=(const DataStoragePreference&);
+  DataStoragePreference() : dataMovememtResourceId(), loginUserName(), fileSystemRootLocation(), resourceSpecificCredentialStoreToken() {
+  }
+
+  virtual ~DataStoragePreference() throw();
+  std::string dataMovememtResourceId;
+  std::string loginUserName;
+  std::string fileSystemRootLocation;
+  std::string resourceSpecificCredentialStoreToken;
+
+  _DataStoragePreference__isset __isset;
+
+  void __set_dataMovememtResourceId(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 DataStoragePreference & rhs) const
+  {
+    if (!(dataMovememtResourceId == rhs.dataMovememtResourceId))
+      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 DataStoragePreference &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DataStoragePreference & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const DataStoragePreference& obj);
+};
+
+void swap(DataStoragePreference &a, DataStoragePreference &b);
+
 typedef struct _GatewayResourceProfile__isset {
-  _GatewayResourceProfile__isset() : computeResourcePreferences(false) {}
+  _GatewayResourceProfile__isset() : credentialStoreToken(false), computeResourcePreferences(false), dataStoragePreferences(false) {}
+  bool credentialStoreToken :1;
   bool computeResourcePreferences :1;
+  bool dataStoragePreferences :1;
 } _GatewayResourceProfile__isset;
 
 class GatewayResourceProfile {
  public:
 
-  static const char* ascii_fingerprint; // = "106DE1CD0F7026F6471DE8DAF360BE03";
-  static const uint8_t binary_fingerprint[16]; // = {0x10,0x6D,0xE1,0xCD,0x0F,0x70,0x26,0xF6,0x47,0x1D,0xE8,0xDA,0xF3,0x60,0xBE,0x03};
+  static const char* ascii_fingerprint; // = "A4BF6D60A7DE5979505C0E7F00278F12";
+  static const uint8_t binary_fingerprint[16]; // = {0xA4,0xBF,0x6D,0x60,0xA7,0xDE,0x59,0x79,0x50,0x5C,0x0E,0x7F,0x00,0x27,0x8F,0x12};
 
   GatewayResourceProfile(const GatewayResourceProfile&);
   GatewayResourceProfile& operator=(const GatewayResourceProfile&);
-  GatewayResourceProfile() : gatewayID() {
+  GatewayResourceProfile() : gatewayID(), credentialStoreToken() {
   }
 
   virtual ~GatewayResourceProfile() throw();
   std::string gatewayID;
+  std::string credentialStoreToken;
   std::vector<ComputeResourcePreference>  computeResourcePreferences;
+  std::vector<DataStoragePreference>  dataStoragePreferences;
 
   _GatewayResourceProfile__isset __isset;
 
   void __set_gatewayID(const std::string& val);
 
+  void __set_credentialStoreToken(const std::string& val);
+
   void __set_computeResourcePreferences(const std::vector<ComputeResourcePreference> & val);
 
+  void __set_dataStoragePreferences(const std::vector<DataStoragePreference> & val);
+
   bool operator == (const GatewayResourceProfile & rhs) const
   {
     if (!(gatewayID == rhs.gatewayID))
       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.dataStoragePreferences != rhs.__isset.dataStoragePreferences)
+      return false;
+    else if (__isset.dataStoragePreferences && !(dataStoragePreferences == rhs.dataStoragePreferences))
+      return false;
     return true;
   }
   bool operator != (const GatewayResourceProfile &rhs) const {


[10/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 c4eeea6..6bf7c2b 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class Airavata {
 
   public interface Iface {
@@ -1671,6 +1671,8 @@ public class Airavata {
      */
     public boolean addGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
+    public boolean addGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) 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 gateway profile.
      * 
@@ -1690,6 +1692,8 @@ public class Airavata {
      */
     public org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
+    public org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference getGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) 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 Compute Resource Preferences of a registered gateway profile.
      * 
@@ -1705,6 +1709,8 @@ public class Airavata {
      */
     public List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> getAllGatewayComputeResourcePreferences(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;
 
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> getAllGatewayDataStoragePreferences(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;
+
     /**
      * Fetch all gateway profiles registered
      * 
@@ -1736,6 +1742,8 @@ public class Airavata {
      */
     public boolean updateGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
+    public boolean updateGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) 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 gateway profile.
      * 
@@ -1755,6 +1763,8 @@ public class Airavata {
      */
     public boolean deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
+    public boolean deleteGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) 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;
 
     public org.apache.airavata.model.Workflow getWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String workflowTemplateId) 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;
@@ -1985,16 +1995,26 @@ public class Airavata {
 
     public void addGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void addGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllGatewayComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllGatewayDataStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllGatewayComputeResources(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void updateGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void updateGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void deleteGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, 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;
@@ -5938,6 +5958,44 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addGatewayComputeResourcePreference failed: unknown result");
     }
 
+    public boolean addGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) 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_addGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference);
+      return recv_addGatewayDataStoragePreference();
+    }
+
+    public void send_addGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) throws org.apache.thrift.TException
+    {
+      addGatewayDataStoragePreference_args args = new addGatewayDataStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayID(gatewayID);
+      args.setDataMoveId(dataMoveId);
+      args.setDataStoragePreference(dataStoragePreference);
+      sendBase("addGatewayDataStoragePreference", args);
+    }
+
+    public boolean recv_addGatewayDataStoragePreference() 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
+    {
+      addGatewayDataStoragePreference_result result = new addGatewayDataStoragePreference_result();
+      receiveBase(result, "addGatewayDataStoragePreference");
+      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, "addGatewayDataStoragePreference failed: unknown result");
+    }
+
     public org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId) 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_getGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId);
@@ -5975,6 +6033,43 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGatewayComputeResourcePreference failed: unknown result");
     }
 
+    public org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference getGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) 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_getGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId);
+      return recv_getGatewayDataStoragePreference();
+    }
+
+    public void send_getGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) throws org.apache.thrift.TException
+    {
+      getGatewayDataStoragePreference_args args = new getGatewayDataStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayID(gatewayID);
+      args.setDataMoveId(dataMoveId);
+      sendBase("getGatewayDataStoragePreference", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference recv_getGatewayDataStoragePreference() 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
+    {
+      getGatewayDataStoragePreference_result result = new getGatewayDataStoragePreference_result();
+      receiveBase(result, "getGatewayDataStoragePreference");
+      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, "getGatewayDataStoragePreference failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> getAllGatewayComputeResourcePreferences(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_getAllGatewayComputeResourcePreferences(authzToken, gatewayID);
@@ -6011,6 +6106,42 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllGatewayComputeResourcePreferences failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> getAllGatewayDataStoragePreferences(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_getAllGatewayDataStoragePreferences(authzToken, gatewayID);
+      return recv_getAllGatewayDataStoragePreferences();
+    }
+
+    public void send_getAllGatewayDataStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID) throws org.apache.thrift.TException
+    {
+      getAllGatewayDataStoragePreferences_args args = new getAllGatewayDataStoragePreferences_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayID(gatewayID);
+      sendBase("getAllGatewayDataStoragePreferences", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> recv_getAllGatewayDataStoragePreferences() 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
+    {
+      getAllGatewayDataStoragePreferences_result result = new getAllGatewayDataStoragePreferences_result();
+      receiveBase(result, "getAllGatewayDataStoragePreferences");
+      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, "getAllGatewayDataStoragePreferences failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> getAllGatewayComputeResources(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_getAllGatewayComputeResources(authzToken);
@@ -6084,6 +6215,44 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateGatewayComputeResourcePreference failed: unknown result");
     }
 
+    public boolean updateGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) 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_updateGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference);
+      return recv_updateGatewayDataStoragePreference();
+    }
+
+    public void send_updateGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference) throws org.apache.thrift.TException
+    {
+      updateGatewayDataStoragePreference_args args = new updateGatewayDataStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayID(gatewayID);
+      args.setDataMoveId(dataMoveId);
+      args.setDataStoragePreference(dataStoragePreference);
+      sendBase("updateGatewayDataStoragePreference", args);
+    }
+
+    public boolean recv_updateGatewayDataStoragePreference() 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
+    {
+      updateGatewayDataStoragePreference_result result = new updateGatewayDataStoragePreference_result();
+      receiveBase(result, "updateGatewayDataStoragePreference");
+      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, "updateGatewayDataStoragePreference failed: unknown result");
+    }
+
     public boolean deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId) 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_deleteGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId);
@@ -6121,6 +6290,43 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteGatewayComputeResourcePreference failed: unknown result");
     }
 
+    public boolean deleteGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) 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_deleteGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId);
+      return recv_deleteGatewayDataStoragePreference();
+    }
+
+    public void send_deleteGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId) throws org.apache.thrift.TException
+    {
+      deleteGatewayDataStoragePreference_args args = new deleteGatewayDataStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayID(gatewayID);
+      args.setDataMoveId(dataMoveId);
+      sendBase("deleteGatewayDataStoragePreference", args);
+    }
+
+    public boolean recv_deleteGatewayDataStoragePreference() 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
+    {
+      deleteGatewayDataStoragePreference_result result = new deleteGatewayDataStoragePreference_result();
+      receiveBase(result, "deleteGatewayDataStoragePreference");
+      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, "deleteGatewayDataStoragePreference 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);
@@ -10379,6 +10585,47 @@ public class Airavata {
       }
     }
 
+    public void addGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addGatewayDataStoragePreference_call method_call = new addGatewayDataStoragePreference_call(authzToken, gatewayID, dataMoveId, dataStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addGatewayDataStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayID;
+      private String dataMoveId;
+      private org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference;
+      public addGatewayDataStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, 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.gatewayID = gatewayID;
+        this.dataMoveId = dataMoveId;
+        this.dataStoragePreference = dataStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addGatewayDataStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addGatewayDataStoragePreference_args args = new addGatewayDataStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayID(gatewayID);
+        args.setDataMoveId(dataMoveId);
+        args.setDataStoragePreference(dataStoragePreference);
+        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_addGatewayDataStoragePreference();
+      }
+    }
+
     public void getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getGatewayComputeResourcePreference_call method_call = new getGatewayComputeResourcePreference_call(authzToken, gatewayID, computeResourceId, resultHandler, this, ___protocolFactory, ___transport);
@@ -10417,6 +10664,44 @@ public class Airavata {
       }
     }
 
+    public void getGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getGatewayDataStoragePreference_call method_call = new getGatewayDataStoragePreference_call(authzToken, gatewayID, dataMoveId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getGatewayDataStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayID;
+      private String dataMoveId;
+      public getGatewayDataStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, 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.gatewayID = gatewayID;
+        this.dataMoveId = dataMoveId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getGatewayDataStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getGatewayDataStoragePreference_args args = new getGatewayDataStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayID(gatewayID);
+        args.setDataMoveId(dataMoveId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference 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_getGatewayDataStoragePreference();
+      }
+    }
+
     public void getAllGatewayComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllGatewayComputeResourcePreferences_call method_call = new getAllGatewayComputeResourcePreferences_call(authzToken, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
@@ -10452,6 +10737,41 @@ public class Airavata {
       }
     }
 
+    public void getAllGatewayDataStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllGatewayDataStoragePreferences_call method_call = new getAllGatewayDataStoragePreferences_call(authzToken, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllGatewayDataStoragePreferences_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayID;
+      public getAllGatewayDataStoragePreferences_call(org.apache.airavata.model.security.AuthzToken authzToken, 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.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("getAllGatewayDataStoragePreferences", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllGatewayDataStoragePreferences_args args = new getAllGatewayDataStoragePreferences_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> 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_getAllGatewayDataStoragePreferences();
+      }
+    }
+
     public void getAllGatewayComputeResources(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllGatewayComputeResources_call method_call = new getAllGatewayComputeResources_call(authzToken, resultHandler, this, ___protocolFactory, ___transport);
@@ -10525,6 +10845,47 @@ public class Airavata {
       }
     }
 
+    public void updateGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateGatewayDataStoragePreference_call method_call = new updateGatewayDataStoragePreference_call(authzToken, gatewayID, dataMoveId, dataStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateGatewayDataStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayID;
+      private String dataMoveId;
+      private org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference;
+      public updateGatewayDataStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference dataStoragePreference, 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.gatewayID = gatewayID;
+        this.dataMoveId = dataMoveId;
+        this.dataStoragePreference = dataStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateGatewayDataStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateGatewayDataStoragePreference_args args = new updateGatewayDataStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayID(gatewayID);
+        args.setDataMoveId(dataMoveId);
+        args.setDataStoragePreference(dataStoragePreference);
+        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_updateGatewayDataStoragePreference();
+      }
+    }
+
     public void deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       deleteGatewayComputeResourcePreference_call method_call = new deleteGatewayComputeResourcePreference_call(authzToken, gatewayID, computeResourceId, resultHandler, this, ___protocolFactory, ___transport);
@@ -10563,6 +10924,44 @@ public class Airavata {
       }
     }
 
+    public void deleteGatewayDataStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteGatewayDataStoragePreference_call method_call = new deleteGatewayDataStoragePreference_call(authzToken, gatewayID, dataMoveId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteGatewayDataStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayID;
+      private String dataMoveId;
+      public deleteGatewayDataStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String dataMoveId, 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.gatewayID = gatewayID;
+        this.dataMoveId = dataMoveId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteGatewayDataStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteGatewayDataStoragePreference_args args = new deleteGatewayDataStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayID(gatewayID);
+        args.setDataMoveId(dataMoveId);
+        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_deleteGatewayDataStoragePreference();
+      }
+    }
+
     public void getAllWorkflows(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllWorkflows_call method_call = new getAllWorkflows_call(authzToken, gatewayId, resultHandler, this, ___protocolFactory, ___transport);
@@ -10933,11 +11332,16 @@ public class Airavata {
       processMap.put("updateGatewayResourceProfile", new updateGatewayResourceProfile());
       processMap.put("deleteGatewayResourceProfile", new deleteGatewayResourceProfile());
       processMap.put("addGatewayComputeResourcePreference", new addGatewayComputeResourcePreference());
+      processMap.put("addGatewayDataStoragePreference", new addGatewayDataStoragePreference());
       processMap.put("getGatewayComputeResourcePreference", new getGatewayComputeResourcePreference());
+      processMap.put("getGatewayDataStoragePreference", new getGatewayDataStoragePreference());
       processMap.put("getAllGatewayComputeResourcePreferences", new getAllGatewayComputeResourcePreferences());
+      processMap.put("getAllGatewayDataStoragePreferences", new getAllGatewayDataStoragePreferences());
       processMap.put("getAllGatewayComputeResources", new getAllGatewayComputeResources());
       processMap.put("updateGatewayComputeResourcePreference", new updateGatewayComputeResourcePreference());
+      processMap.put("updateGatewayDataStoragePreference", new updateGatewayDataStoragePreference());
       processMap.put("deleteGatewayComputeResourcePreference", new deleteGatewayComputeResourcePreference());
+      processMap.put("deleteGatewayDataStoragePreference", new deleteGatewayDataStoragePreference());
       processMap.put("getAllWorkflows", new getAllWorkflows());
       processMap.put("getWorkflow", new getWorkflow());
       processMap.put("deleteWorkflow", new deleteWorkflow());
@@ -14172,6 +14576,37 @@ public class Airavata {
       }
     }
 
+    public static class addGatewayDataStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addGatewayDataStoragePreference_args> {
+      public addGatewayDataStoragePreference() {
+        super("addGatewayDataStoragePreference");
+      }
+
+      public addGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new addGatewayDataStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addGatewayDataStoragePreference_result getResult(I iface, addGatewayDataStoragePreference_args args) throws org.apache.thrift.TException {
+        addGatewayDataStoragePreference_result result = new addGatewayDataStoragePreference_result();
+        try {
+          result.success = iface.addGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference);
+          result.setSuccessIsSet(true);
+        } 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 getGatewayComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getGatewayComputeResourcePreference_args> {
       public getGatewayComputeResourcePreference() {
         super("getGatewayComputeResourcePreference");
@@ -14202,6 +14637,36 @@ public class Airavata {
       }
     }
 
+    public static class getGatewayDataStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getGatewayDataStoragePreference_args> {
+      public getGatewayDataStoragePreference() {
+        super("getGatewayDataStoragePreference");
+      }
+
+      public getGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new getGatewayDataStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getGatewayDataStoragePreference_result getResult(I iface, getGatewayDataStoragePreference_args args) throws org.apache.thrift.TException {
+        getGatewayDataStoragePreference_result result = new getGatewayDataStoragePreference_result();
+        try {
+          result.success = iface.getGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId);
+        } 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 getAllGatewayComputeResourcePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllGatewayComputeResourcePreferences_args> {
       public getAllGatewayComputeResourcePreferences() {
         super("getAllGatewayComputeResourcePreferences");
@@ -14232,6 +14697,36 @@ public class Airavata {
       }
     }
 
+    public static class getAllGatewayDataStoragePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllGatewayDataStoragePreferences_args> {
+      public getAllGatewayDataStoragePreferences() {
+        super("getAllGatewayDataStoragePreferences");
+      }
+
+      public getAllGatewayDataStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllGatewayDataStoragePreferences_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllGatewayDataStoragePreferences_result getResult(I iface, getAllGatewayDataStoragePreferences_args args) throws org.apache.thrift.TException {
+        getAllGatewayDataStoragePreferences_result result = new getAllGatewayDataStoragePreferences_result();
+        try {
+          result.success = iface.getAllGatewayDataStoragePreferences(args.authzToken, 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 getAllGatewayComputeResources<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllGatewayComputeResources_args> {
       public getAllGatewayComputeResources() {
         super("getAllGatewayComputeResources");
@@ -14293,6 +14788,37 @@ public class Airavata {
       }
     }
 
+    public static class updateGatewayDataStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateGatewayDataStoragePreference_args> {
+      public updateGatewayDataStoragePreference() {
+        super("updateGatewayDataStoragePreference");
+      }
+
+      public updateGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new updateGatewayDataStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateGatewayDataStoragePreference_result getResult(I iface, updateGatewayDataStoragePreference_args args) throws org.apache.thrift.TException {
+        updateGatewayDataStoragePreference_result result = new updateGatewayDataStoragePreference_result();
+        try {
+          result.success = iface.updateGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference);
+          result.setSuccessIsSet(true);
+        } 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 deleteGatewayComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteGatewayComputeResourcePreference_args> {
       public deleteGatewayComputeResourcePreference() {
         super("deleteGatewayComputeResourcePreference");
@@ -14324,6 +14850,37 @@ public class Airavata {
       }
     }
 
+    public static class deleteGatewayDataStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteGatewayDataStoragePreference_args> {
+      public deleteGatewayDataStoragePreference() {
+        super("deleteGatewayDataStoragePreference");
+      }
+
+      public deleteGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayDataStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteGatewayDataStoragePreference_result getResult(I iface, deleteGatewayDataStoragePreference_args args) throws org.apache.thrift.TException {
+        deleteGatewayDataStoragePreference_result result = new deleteGatewayDataStoragePreference_result();
+        try {
+          result.success = iface.deleteGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId);
+          result.setSuccessIsSet(true);
+        } 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 getAllWorkflows<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllWorkflows_args> {
       public getAllWorkflows() {
         super("getAllWorkflows");
@@ -14654,11 +15211,16 @@ public class Airavata {
       processMap.put("updateGatewayResourceProfile", new updateGatewayResourceProfile());
       processMap.put("deleteGatewayResourceProfile", new deleteGatewayResourceProfile());
       processMap.put("addGatewayComputeResourcePreference", new addGatewayComputeResourcePreference());
+      processMap.put("addGatewayDataStoragePreference", new addGatewayDataStoragePreference());
       processMap.put("getGatewayComputeResourcePreference", new getGatewayComputeResourcePreference());
+      processMap.put("getGatewayDataStoragePreference", new getGatewayDataStoragePreference());
       processMap.put("getAllGatewayComputeResourcePreferences", new getAllGatewayComputeResourcePreferences());
+      processMap.put("getAllGatewayDataStoragePreferences", new getAllGatewayDataStoragePreferences());
       processMap.put("getAllGatewayComputeResources", new getAllGatewayComputeResources());
       processMap.put("updateGatewayComputeResourcePreference", new updateGatewayComputeResourcePreference());
+      processMap.put("updateGatewayDataStoragePreference", new updateGatewayDataStoragePreference());
       processMap.put("deleteGatewayComputeResourcePreference", new deleteGatewayComputeResourcePreference());
+      processMap.put("deleteGatewayDataStoragePreference", new deleteGatewayDataStoragePreference());
       processMap.put("getAllWorkflows", new getAllWorkflows());
       processMap.put("getWorkflow", new getWorkflow());
       processMap.put("deleteWorkflow", new deleteWorkflow());
@@ -22356,21 +22918,22 @@ public class Airavata {
       }
     }
 
-    public static class getGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayComputeResourcePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> {
-      public getGatewayComputeResourcePreference() {
-        super("getGatewayComputeResourcePreference");
+    public static class addGatewayDataStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayDataStoragePreference_args, Boolean> {
+      public addGatewayDataStoragePreference() {
+        super("addGatewayDataStoragePreference");
       }
 
-      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGatewayComputeResourcePreference_args();
+      public addGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new addGatewayDataStoragePreference_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> 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.appcatalog.gatewayprofile.ComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference o) {
-            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            addGatewayDataStoragePreference_result result = new addGatewayDataStoragePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22382,7 +22945,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
+            addGatewayDataStoragePreference_result result = new addGatewayDataStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22423,25 +22986,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> resultHandler) throws TException {
-        iface.getGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId,resultHandler);
+      public void start(I iface, addGatewayDataStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.addGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference,resultHandler);
       }
     }
 
-    public static class getAllGatewayComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResourcePreferences_args, List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> {
-      public getAllGatewayComputeResourcePreferences() {
-        super("getAllGatewayComputeResourcePreferences");
+    public static class getGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayComputeResourcePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> {
+      public getGatewayComputeResourcePreference() {
+        super("getGatewayComputeResourcePreference");
       }
 
-      public getAllGatewayComputeResourcePreferences_args getEmptyArgsInstance() {
-        return new getAllGatewayComputeResourcePreferences_args();
+      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGatewayComputeResourcePreference_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>>() { 
-          public void onComplete(List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> o) {
-            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference o) {
+            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22454,7 +23017,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
+            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22495,25 +23058,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewayComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> resultHandler) throws TException {
-        iface.getAllGatewayComputeResourcePreferences(args.authzToken, args.gatewayID,resultHandler);
+      public void start(I iface, getGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> resultHandler) throws TException {
+        iface.getGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId,resultHandler);
       }
     }
 
-    public static class getAllGatewayComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResources_args, List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> {
-      public getAllGatewayComputeResources() {
-        super("getAllGatewayComputeResources");
+    public static class getGatewayDataStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayDataStoragePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> {
+      public getGatewayDataStoragePreference() {
+        super("getGatewayDataStoragePreference");
       }
 
-      public getAllGatewayComputeResources_args getEmptyArgsInstance() {
-        return new getAllGatewayComputeResources_args();
+      public getGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new getGatewayDataStoragePreference_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>>() { 
-          public void onComplete(List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> o) {
-            getAllGatewayComputeResources_result result = new getAllGatewayComputeResources_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference o) {
+            getGatewayDataStoragePreference_result result = new getGatewayDataStoragePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22526,7 +23089,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewayComputeResources_result result = new getAllGatewayComputeResources_result();
+            getGatewayDataStoragePreference_result result = new getGatewayDataStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22567,27 +23130,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewayComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> resultHandler) throws TException {
-        iface.getAllGatewayComputeResources(args.authzToken,resultHandler);
+      public void start(I iface, getGatewayDataStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> resultHandler) throws TException {
+        iface.getGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId,resultHandler);
       }
     }
 
-    public static class updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, Boolean> {
-      public updateGatewayComputeResourcePreference() {
-        super("updateGatewayComputeResourcePreference");
+    public static class getAllGatewayComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResourcePreferences_args, List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> {
+      public getAllGatewayComputeResourcePreferences() {
+        super("getAllGatewayComputeResourcePreferences");
       }
 
-      public updateGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateGatewayComputeResourcePreference_args();
+      public getAllGatewayComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllGatewayComputeResourcePreferences_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>>() { 
+          public void onComplete(List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> o) {
+            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22599,7 +23161,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
+            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22640,27 +23202,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.updateGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
+      public void start(I iface, getAllGatewayComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> resultHandler) throws TException {
+        iface.getAllGatewayComputeResourcePreferences(args.authzToken, args.gatewayID,resultHandler);
       }
     }
 
-    public static class deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, Boolean> {
-      public deleteGatewayComputeResourcePreference() {
-        super("deleteGatewayComputeResourcePreference");
+    public static class getAllGatewayDataStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayDataStoragePreferences_args, List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference>> {
+      public getAllGatewayDataStoragePreferences() {
+        super("getAllGatewayDataStoragePreferences");
       }
 
-      public deleteGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new deleteGatewayComputeResourcePreference_args();
+      public getAllGatewayDataStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllGatewayDataStoragePreferences_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference>>() { 
+          public void onComplete(List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference> o) {
+            getAllGatewayDataStoragePreferences_result result = new getAllGatewayDataStoragePreferences_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22672,7 +23233,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
+            getAllGatewayDataStoragePreferences_result result = new getAllGatewayDataStoragePreferences_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22713,25 +23274,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId,resultHandler);
+      public void start(I iface, getAllGatewayDataStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference>> resultHandler) throws TException {
+        iface.getAllGatewayDataStoragePreferences(args.authzToken, args.gatewayID,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 getAllGatewayComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResources_args, List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> {
+      public getAllGatewayComputeResources() {
+        super("getAllGatewayComputeResources");
       }
 
-      public getAllWorkflows_args getEmptyArgsInstance() {
-        return new getAllWorkflows_args();
+      public getAllGatewayComputeResources_args getEmptyArgsInstance() {
+        return new getAllGatewayComputeResources_args();
       }
 
-      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> 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<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>>() { 
+          public void onComplete(List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> o) {
+            getAllGatewayComputeResources_result result = new getAllGatewayComputeResources_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22744,7 +23305,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();
+            getAllGatewayComputeResources_result result = new getAllGatewayComputeResources_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22785,26 +23346,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, getAllGatewayComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> resultHandler) throws TException {
+        iface.getAllGatewayComputeResources(args.authzToken,resultHandler);
       }
     }
 
-    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.Workflow> {
-      public getWorkflow() {
-        super("getWorkflow");
+    public static class updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, Boolean> {
+      public updateGatewayComputeResourcePreference() {
+        super("updateGatewayComputeResourcePreference");
       }
 
-      public getWorkflow_args getEmptyArgsInstance() {
-        return new getWorkflow_args();
+      public updateGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new updateGatewayComputeResourcePreference_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.Workflow> 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.Workflow>() { 
-          public void onComplete(org.apache.airavata.model.Workflow o) {
-            getWorkflow_result result = new getWorkflow_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22816,7 +23378,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();
+            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -22857,25 +23419,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.Workflow> resultHandler) throws TException {
-        iface.getWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
+      public void start(I iface, updateGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
       }
     }
 
-    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
-      public deleteWorkflow() {
-        super("deleteWorkflow");
+    public static class updateGatewayDataStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayDataStoragePreference_args, Boolean> {
+      public updateGatewayDataStoragePreference() {
+        super("updateGatewayDataStoragePreference");
       }
 
-      public deleteWorkflow_args getEmptyArgsInstance() {
-        return new deleteWorkflow_args();
+      public updateGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new updateGatewayDataStoragePreference_args();
       }
 
-      public AsyncMethodCallback<Void> 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<Void>() { 
-          public void onComplete(Void o) {
-            deleteWorkflow_result result = new deleteWorkflow_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            updateGatewayDataStoragePreference_result result = new updateGatewayDataStoragePreference_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -22887,7 +23451,368 @@ 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();
+            updateGatewayDataStoragePreference_result result = new updateGatewayDataStoragePreference_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, updateGatewayDataStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference,resultHandler);
+      }
+    }
+
+    public static class deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, Boolean> {
+      public deleteGatewayComputeResourcePreference() {
+        super("deleteGatewayComputeResourcePreference");
+      }
+
+      public deleteGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayComputeResourcePreference_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) {
+            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_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;
+            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_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, deleteGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteGatewayComputeResourcePreference(args.authzToken, args.gatewayID, args.computeResourceId,resultHandler);
+      }
+    }
+
+    public static class deleteGatewayDataStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayDataStoragePreference_args, Boolean> {
+      public deleteGatewayDataStoragePreference() {
+        super("deleteGatewayDataStoragePreference");
+      }
+
+      public deleteGatewayDataStoragePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayDataStoragePreference_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) {
+            deleteGatewayDataStoragePreference_result result = new deleteGatewayDataStoragePreference_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;
+            deleteGatewayDataStoragePreference_result result = new deleteGatewayDataStoragePreference_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.AiravataClientExce

<TRUNCATED>

[04/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 505e10b..6cd34d3 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
@@ -1958,6 +1958,16 @@ class Iface:
     """
     pass
 
+  def addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    pass
+
   def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
     Fetch a Compute Resource Preference of a registered gateway profile.
@@ -1979,6 +1989,15 @@ class Iface:
     """
     pass
 
+  def getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    pass
+
   def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
     """
     Fetch all Compute Resource Preferences of a registered gateway profile.
@@ -1996,6 +2015,14 @@ class Iface:
     """
     pass
 
+  def getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
   def getAllGatewayComputeResources(self, authzToken):
     """
     Fetch all gateway profiles registered
@@ -2031,6 +2058,16 @@ class Iface:
     """
     pass
 
+  def updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    pass
+
   def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
     Delete the Compute Resource Preference of a registered gateway profile.
@@ -2052,6 +2089,15 @@ class Iface:
     """
     pass
 
+  def deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    pass
+
   def getAllWorkflows(self, authzToken, gatewayId):
     """
     Parameters:
@@ -7648,6 +7694,51 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "addGatewayComputeResourcePreference failed: unknown result");
 
+  def addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    self.send_addGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference)
+    return self.recv_addGatewayDataStoragePreference()
+
+  def send_addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    self._oprot.writeMessageBegin('addGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
+    args = addGatewayDataStoragePreference_args()
+    args.authzToken = authzToken
+    args.gatewayID = gatewayID
+    args.dataMoveId = dataMoveId
+    args.dataStoragePreference = dataStoragePreference
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_addGatewayDataStoragePreference(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = addGatewayDataStoragePreference_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, "addGatewayDataStoragePreference failed: unknown result");
+
   def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
     Fetch a Compute Resource Preference of a registered gateway profile.
@@ -7703,6 +7794,49 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getGatewayComputeResourcePreference failed: unknown result");
 
+  def getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    self.send_getGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId)
+    return self.recv_getGatewayDataStoragePreference()
+
+  def send_getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    self._oprot.writeMessageBegin('getGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
+    args = getGatewayDataStoragePreference_args()
+    args.authzToken = authzToken
+    args.gatewayID = gatewayID
+    args.dataMoveId = dataMoveId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getGatewayDataStoragePreference(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getGatewayDataStoragePreference_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, "getGatewayDataStoragePreference failed: unknown result");
+
   def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
     """
     Fetch all Compute Resource Preferences of a registered gateway profile.
@@ -7753,6 +7887,47 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGatewayComputeResourcePreferences failed: unknown result");
 
+  def getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    self.send_getAllGatewayDataStoragePreferences(authzToken, gatewayID)
+    return self.recv_getAllGatewayDataStoragePreferences()
+
+  def send_getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+    self._oprot.writeMessageBegin('getAllGatewayDataStoragePreferences', TMessageType.CALL, self._seqid)
+    args = getAllGatewayDataStoragePreferences_args()
+    args.authzToken = authzToken
+    args.gatewayID = gatewayID
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllGatewayDataStoragePreferences(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllGatewayDataStoragePreferences_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, "getAllGatewayDataStoragePreferences failed: unknown result");
+
   def getAllGatewayComputeResources(self, authzToken):
     """
     Fetch all gateway profiles registered
@@ -7855,6 +8030,51 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGatewayComputeResourcePreference failed: unknown result");
 
+  def updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    self.send_updateGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference)
+    return self.recv_updateGatewayDataStoragePreference()
+
+  def send_updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    self._oprot.writeMessageBegin('updateGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
+    args = updateGatewayDataStoragePreference_args()
+    args.authzToken = authzToken
+    args.gatewayID = gatewayID
+    args.dataMoveId = dataMoveId
+    args.dataStoragePreference = dataStoragePreference
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateGatewayDataStoragePreference(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateGatewayDataStoragePreference_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, "updateGatewayDataStoragePreference failed: unknown result");
+
   def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
     Delete the Compute Resource Preference of a registered gateway profile.
@@ -7910,6 +8130,49 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGatewayComputeResourcePreference failed: unknown result");
 
+  def deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    self.send_deleteGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId)
+    return self.recv_deleteGatewayDataStoragePreference()
+
+  def send_deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    self._oprot.writeMessageBegin('deleteGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
+    args = deleteGatewayDataStoragePreference_args()
+    args.authzToken = authzToken
+    args.gatewayID = gatewayID
+    args.dataMoveId = dataMoveId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteGatewayDataStoragePreference(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteGatewayDataStoragePreference_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, "deleteGatewayDataStoragePreference failed: unknown result");
+
   def getAllWorkflows(self, authzToken, gatewayId):
     """
     Parameters:
@@ -8308,11 +8571,16 @@ class Processor(Iface, TProcessor):
     self._processMap["updateGatewayResourceProfile"] = Processor.process_updateGatewayResourceProfile
     self._processMap["deleteGatewayResourceProfile"] = Processor.process_deleteGatewayResourceProfile
     self._processMap["addGatewayComputeResourcePreference"] = Processor.process_addGatewayComputeResourcePreference
+    self._processMap["addGatewayDataStoragePreference"] = Processor.process_addGatewayDataStoragePreference
     self._processMap["getGatewayComputeResourcePreference"] = Processor.process_getGatewayComputeResourcePreference
+    self._processMap["getGatewayDataStoragePreference"] = Processor.process_getGatewayDataStoragePreference
     self._processMap["getAllGatewayComputeResourcePreferences"] = Processor.process_getAllGatewayComputeResourcePreferences
+    self._processMap["getAllGatewayDataStoragePreferences"] = Processor.process_getAllGatewayDataStoragePreferences
     self._processMap["getAllGatewayComputeResources"] = Processor.process_getAllGatewayComputeResources
     self._processMap["updateGatewayComputeResourcePreference"] = Processor.process_updateGatewayComputeResourcePreference
+    self._processMap["updateGatewayDataStoragePreference"] = Processor.process_updateGatewayDataStoragePreference
     self._processMap["deleteGatewayComputeResourcePreference"] = Processor.process_deleteGatewayComputeResourcePreference
+    self._processMap["deleteGatewayDataStoragePreference"] = Processor.process_deleteGatewayDataStoragePreference
     self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
     self._processMap["getWorkflow"] = Processor.process_getWorkflow
     self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
@@ -10468,6 +10736,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_addGatewayDataStoragePreference(self, seqid, iprot, oprot):
+    args = addGatewayDataStoragePreference_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = addGatewayDataStoragePreference_result()
+    try:
+      result.success = self._handler.addGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("addGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_getGatewayComputeResourcePreference(self, seqid, iprot, oprot):
     args = getGatewayComputeResourcePreference_args()
     args.read(iprot)
@@ -10488,6 +10776,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_getGatewayDataStoragePreference(self, seqid, iprot, oprot):
+    args = getGatewayDataStoragePreference_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getGatewayDataStoragePreference_result()
+    try:
+      result.success = self._handler.getGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("getGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_getAllGatewayComputeResourcePreferences(self, seqid, iprot, oprot):
     args = getAllGatewayComputeResourcePreferences_args()
     args.read(iprot)
@@ -10508,6 +10816,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_getAllGatewayDataStoragePreferences(self, seqid, iprot, oprot):
+    args = getAllGatewayDataStoragePreferences_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getAllGatewayDataStoragePreferences_result()
+    try:
+      result.success = self._handler.getAllGatewayDataStoragePreferences(args.authzToken, args.gatewayID)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("getAllGatewayDataStoragePreferences", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_getAllGatewayComputeResources(self, seqid, iprot, oprot):
     args = getAllGatewayComputeResources_args()
     args.read(iprot)
@@ -10548,6 +10876,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_updateGatewayDataStoragePreference(self, seqid, iprot, oprot):
+    args = updateGatewayDataStoragePreference_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = updateGatewayDataStoragePreference_result()
+    try:
+      result.success = self._handler.updateGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("updateGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_deleteGatewayComputeResourcePreference(self, seqid, iprot, oprot):
     args = deleteGatewayComputeResourcePreference_args()
     args.read(iprot)
@@ -10568,6 +10916,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_deleteGatewayDataStoragePreference(self, seqid, iprot, oprot):
+    args = deleteGatewayDataStoragePreference_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = deleteGatewayDataStoragePreference_result()
+    try:
+      result.success = self._handler.deleteGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("deleteGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_getAllWorkflows(self, seqid, iprot, oprot):
     args = getAllWorkflows_args()
     args.read(iprot)
@@ -20218,25 +20586,1298 @@ class getApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class updateApplicationModule_args:
+class updateApplicationModule_args:
+  """
+  Attributes:
+   - authzToken
+   - appModuleId
+   - applicationModule
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appModuleId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationModule', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+    self.authzToken = authzToken
+    self.appModuleId = appModuleId
+    self.applicationModule = applicationModule
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appModuleId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.applicationModule = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+          self.applicationModule.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationModule_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appModuleId is not None:
+      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+      oprot.writeString(self.appModuleId)
+      oprot.writeFieldEnd()
+    if self.applicationModule is not None:
+      oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+      self.applicationModule.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appModuleId is None:
+      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+    if self.applicationModule is None:
+      raise TProtocol.TProtocolException(message='Required field applicationModule is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appModuleId)
+    value = (value * 31) ^ hash(self.applicationModule)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateApplicationModule_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool();
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationModule_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getAllAppModules_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getAllAppModules_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getAllAppModules_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec)), None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype135, _size132) = iprot.readListBegin()
+          for _i136 in xrange(_size132):
+            _elem137 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+            _elem137.read(iprot)
+            self.success.append(_elem137)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getAllAppModules_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRUCT, len(self.success))
+      for iter138 in self.success:
+        iter138.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationModule_args:
+  """
+  Attributes:
+   - authzToken
+   - appModuleId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appModuleId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, appModuleId=None,):
+    self.authzToken = authzToken
+    self.appModuleId = appModuleId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appModuleId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationModule_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appModuleId is not None:
+      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+      oprot.writeString(self.appModuleId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appModuleId is None:
+      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appModuleId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationModule_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool();
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationModule_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class registerApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+   - applicationDeployment
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+    self.applicationDeployment = applicationDeployment
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.applicationDeployment.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('registerApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.applicationDeployment is not None:
+      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+      self.applicationDeployment.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.applicationDeployment is None:
+      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.applicationDeployment)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class registerApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRING, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRING:
+          self.success = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('registerApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRING, 0)
+      oprot.writeString(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - appDeploymentId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, appDeploymentId=None,):
+    self.authzToken = authzToken
+    self.appDeploymentId = appDeploymentId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appDeploymentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appDeploymentId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRUCT, 'success', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRUCT:
+          self.success = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.success.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRUCT, 0)
+      self.success.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - appDeploymentId
+   - applicationDeployment
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, appDeploymentId=None, applicationDeployment=None,):
+    self.authzToken = authzToken
+    self.appDeploymentId = appDeploymentId
+    self.applicationDeployment = applicationDeployment
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appDeploymentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.applicationDeployment.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
+      oprot.writeFieldEnd()
+    if self.applicationDeployment is not None:
+      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+      self.applicationDeployment.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    if self.applicationDeployment is None:
+      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appDeploymentId)
+    value = (value * 31) ^ hash(self.applicationDeployment)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool();
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationDeployment_args:
   """
   Attributes:
    - authzToken
-   - appModuleId
-   - applicationModule
+   - appDeploymentId
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRING, 'appModuleId', None, None, ), # 2
-    (3, TType.STRUCT, 'applicationModule', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ), # 3
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
   )
 
-  def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+  def __init__(self, authzToken=None, appDeploymentId=None,):
     self.authzToken = authzToken
-    self.appModuleId = appModuleId
-    self.applicationModule = applicationModule
+    self.appDeploymentId = appDeploymentId
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -20255,13 +21896,7 @@ class updateApplicationModule_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.appModuleId = iprot.readString();
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRUCT:
-          self.applicationModule = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-          self.applicationModule.read(iprot)
+          self.appDeploymentId = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -20273,18 +21908,14 @@ class updateApplicationModule_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateApplicationModule_args')
+    oprot.writeStructBegin('deleteApplicationDeployment_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.appModuleId is not None:
-      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
-      oprot.writeString(self.appModuleId)
-      oprot.writeFieldEnd()
-    if self.applicationModule is not None:
-      oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
-      self.applicationModule.write(oprot)
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -20292,18 +21923,15 @@ class updateApplicationModule_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.appModuleId is None:
-      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
-    if self.applicationModule is None:
-      raise TProtocol.TProtocolException(message='Required field applicationModule is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.appModuleId)
-    value = (value * 31) ^ hash(self.applicationModule)
+    value = (value * 31) ^ hash(self.appDeploymentId)
     return value
 
   def __repr__(self):
@@ -20317,7 +21945,7 @@ class updateApplicationModule_args:
   def __ne__(self, other):
     return not (self == other)
 
-class updateApplicationModule_result:
+class deleteApplicationDeployment_result:
   """
   Attributes:
    - success
@@ -20389,7 +22017,7 @@ class updateApplicationModule_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateApplicationModule_result')
+    oprot.writeStructBegin('deleteApplicationDeployment_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.BOOL, 0)
       oprot.writeBool(self.success)
@@ -20437,7 +22065,7 @@ class updateApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getAllAppModules_args:
+class getAllApplicationDeployments_args:
   """
   Attributes:
    - authzToken
@@ -20483,7 +22111,7 @@ class getAllAppModules_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getAllAppModules_args')
+    oprot.writeStructBegin('getAllApplicationDeployments_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20520,7 +22148,7 @@ class getAllAppModules_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getAllAppModules_result:
+class getAllApplicationDeployments_result:
   """
   Attributes:
    - success
@@ -20531,7 +22159,7 @@ class getAllAppModules_result:
   """
 
   thrift_spec = (
-    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec)), None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec)), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -20557,11 +22185,11 @@ class getAllAppModules_result:
       if fid == 0:
         if ftype == TType.LIST:
           self.success = []
-          (_etype135, _size132) = iprot.readListBegin()
-          for _i136 in xrange(_size132):
-            _elem137 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-            _elem137.read(iprot)
-            self.success.append(_elem137)
+          (_etype142, _size139) = iprot.readListBegin()
+          for _i143 in xrange(_size139):
+            _elem144 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+            _elem144.read(iprot)
+            self.success.append(_elem144)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -20598,12 +22226,12 @@ class getAllAppModules_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getAllAppModules_result')
+    oprot.writeStructBegin('getAllApplicationDeployments_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.LIST, 0)
       oprot.writeListBegin(TType.STRUCT, len(self.success))
-      for iter138 in self.success:
-        iter138.write(oprot)
+      for iter145 in self.success:
+        iter145.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
@@ -20649,7 +22277,7 @@ class getAllAppModules_result:
   def __ne__(self, other):
     return not (self == other)
 
-class deleteApplicationModule_args:
+class getAppModuleDeployedResources_args:
   """
   Attributes:
    - authzToken
@@ -20695,7 +22323,7 @@ class deleteApplicationModule_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('deleteApplicationModule_args')
+    oprot.writeStructBegin('getAppModuleDeployedResources_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20732,7 +22360,7 @@ class deleteApplicationModule_args:
   def __ne__(self, other):
     return not (self == other)
 
-class deleteApplicationModule_result:
+class getAppModuleDeployedResources_result:
   """
   Attributes:
    - success
@@ -20743,7 +22371,7 @@ class deleteApplicationModule_result:
   """
 
   thrift_spec = (
-    (0, TType.BOOL, 'success', None, None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRING,None), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -20767,8 +22395,13 @@ class deleteApplicationModule_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.BOOL:
-          self.success = iprot.readBool();
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype149, _size146) = iprot.readListBegin()
+          for _i150 in xrange(_size146):
+            _elem151 = iprot.readString();
+            self.success.append(_elem151)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -20804,10 +22437,13 @@ class deleteApplicationModule_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('deleteApplicationModule_result')
+    oprot.writeStructBegin('getAppModuleDeployedResources_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.BOOL, 0)
-      oprot.writeBool(self.success)
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRING, len(self.success))
+      for iter152 in self.success:
+        oprot.writeString(iter152)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -20852,25 +22488,25 @@ class deleteApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class registerApplicationDeployment_args:
+class registerApplicationInterface_args:
   """
   Attributes:
    - authzToken
    - gatewayId
-   - applicationDeployment
+   - applicationInterface
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
+    (3, TType.STRUCT, 'applicationInterface', (apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
+  def __init__(self, authzToken=None, gatewayId=None, applicationInterface=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
-    self.applicationDeployment = applicationDeployment
+    self.applicationInterface = applicationInterface
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -20894,8 +22530,8 @@ class registerApplicationDeployment_args:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRUCT:
-          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-          self.applicationDeployment.read(iprot)
+          self.applicationInterface = apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+          self.applicationInterface.read(iprot)
         else:
           iprot.skip(ftype)
       else:
@@ -20907,7 +22543,7 @@ class registerApplicationDeployment_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('registerApplicationDeployment_args')
+    oprot.writeStructBegin('registerApplicationInterface_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20916,9 +22552,9 @@ class registerApplicationDeployment_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.applicationDeployment is not None:
-      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
-      self.applicationDeployment.write(oprot)
+    if self.applicationInterface is not None:
+      oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
+      self.applicationInterface.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -20928,8 +22564,8 @@ class registerApplicationDeployment_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.gatewayId is None:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
-    if self.applicationDeployment is None:
-      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
+    if self.applicationInterface is None:
+      raise TProtocol.TProtocolException(message='Required field applicationInterface is unset!')
     return
 
 
@@ -20937,7 +22573,7 @@ class registerApplicationDeployment_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.applicationDeployment)
+    value = (value * 31) ^ hash(self.applicationInterface)
     return value
 
   def __repr__(self):
@@ -20951,7 +22587,7 @@ class registerApplicationDeployment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class registerApplicationDeployment_result:
+class registerApplicationInterface_result:
   """
   Attributes:
    - success
@@ -21023,7 +22659,7 @@ class registerApplicationDeployment_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('registerApplicationDeployment_result')
+    oprot.writeStructBegin('registerApplicationInterface_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.STRING, 0)
       oprot.writeString(self.success)
@@ -21071,22 +22707,22 @@ class registerApplicationDeployment_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getApplicationDeployment_args:
+class getApplicationInterface_args:
   """
   Attributes:
    - authzToken
-   - appDeploymentId
+   - appInterfaceId
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+    (2, TType.STRING, 'appInterfaceId', None, None, ), # 2
   )
 
-  def __init__(self, authzToken=None, appDeploymentId=None,):
+  def __init__(self, authzToken=None, appInterfaceId=None,):
     self.authzToken = authzToken
-    self.appDeploymentId = appDeploymentId
+    self.appInterfaceId = appInterfaceId
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -21105,7 +22741,7 @@ class getApplicationDeployment_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.appDeploymentId = iprot.readString();
+          self.appInterfaceId = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -21117,14 +22753,14 @@ class getApplicationDeployment_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getApplicationDeployment_args')
+    oprot.writeStructBegin('getApplicationInterface_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.appDeploymentId is not None:
-      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
-      oprot.writeString(self.appDeploymentId)
+    if self.appInterfaceId is not None:
+      oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
+      oprot.writeString(self.appInterfaceId)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -21132,15 +22768,15 @@ class getApplicationDeployment_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.appDeploymentId is None:
-      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    if self.appInterfaceId is None:
+      raise TProtocol.TProtocolException(message='Required field appInterfaceId is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.appDeploymentId)
+    value = (value * 31) ^ hash(self.appInterfaceId)
     return value
 
   def __repr__(self):
@@ -21154,7 +22790,7 @@ class getApplicationDeployment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getApplicationDeployment_result:
+class getApplicationInterface_result:
   """
   Attributes:
    - success
@@ -21165,7 +22801,7 @@ class getApplicationDeployment_result:
   """
 
   thrift_spec = (
-    (0, TType.STRUCT, 'success', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 0
+    (0, TType.STRUCT, 'success', (apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -21190,7 +22826,7 @@ class getApplicationDeployment_result:
         break
       

<TRUNCATED>

[02/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 1414b43..500bd98 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
@@ -80,8 +80,12 @@ import org.slf4j.LoggerFactory;
  *    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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 
@@ -93,6 +97,7 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
   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)6);
   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)7);
   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)8);
+  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)9);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -108,6 +113,7 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
   private String preferredBatchQueue; // optional
   private String scratchLocation; // optional
   private String allocationProjectNumber; // 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 {
@@ -126,7 +132,8 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     PREFERRED_DATA_MOVEMENT_PROTOCOL((short)5, "preferredDataMovementProtocol"),
     PREFERRED_BATCH_QUEUE((short)6, "preferredBatchQueue"),
     SCRATCH_LOCATION((short)7, "scratchLocation"),
-    ALLOCATION_PROJECT_NUMBER((short)8, "allocationProjectNumber");
+    ALLOCATION_PROJECT_NUMBER((short)8, "allocationProjectNumber"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)9, "resourceSpecificCredentialStoreToken");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -157,6 +164,8 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
           return SCRATCH_LOCATION;
         case 8: // ALLOCATION_PROJECT_NUMBER
           return ALLOCATION_PROJECT_NUMBER;
+        case 9: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
         default:
           return null;
       }
@@ -199,7 +208,7 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
   // isset id assignments
   private static final int __OVERRIDEBYAIRAVATA_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL,_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER};
+  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL,_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_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);
@@ -219,6 +228,8 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
         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)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourcePreference.class, metaDataMap);
   }
@@ -265,6 +276,9 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     if (other.isSetAllocationProjectNumber()) {
       this.allocationProjectNumber = other.allocationProjectNumber;
     }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
   }
 
   public ComputeResourcePreference deepCopy() {
@@ -282,6 +296,7 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     this.preferredBatchQueue = null;
     this.scratchLocation = null;
     this.allocationProjectNumber = null;
+    this.resourceSpecificCredentialStoreToken = null;
   }
 
   public String getComputeResourceId() {
@@ -483,6 +498,29 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     }
   }
 
+  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 COMPUTE_RESOURCE_ID:
@@ -549,6 +587,14 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       }
       break;
 
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
     }
   }
 
@@ -578,6 +624,9 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     case ALLOCATION_PROJECT_NUMBER:
       return getAllocationProjectNumber();
 
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
     }
     throw new IllegalStateException();
   }
@@ -605,6 +654,8 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       return isSetScratchLocation();
     case ALLOCATION_PROJECT_NUMBER:
       return isSetAllocationProjectNumber();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
     }
     throw new IllegalStateException();
   }
@@ -694,6 +745,15 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
         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;
   }
 
@@ -741,6 +801,11 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
     if (present_allocationProjectNumber)
       list.add(allocationProjectNumber);
 
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
     return list.hashCode();
   }
 
@@ -832,6 +897,16 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
         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;
   }
 
@@ -923,6 +998,16 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       }
       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();
   }
@@ -1040,6 +1125,14 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 9: // 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);
         }
@@ -1103,6 +1196,13 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
           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();
     }
@@ -1141,7 +1241,10 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       if (struct.isSetAllocationProjectNumber()) {
         optionals.set(5);
       }
-      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
       if (struct.isSetLoginUserName()) {
         oprot.writeString(struct.loginUserName);
       }
@@ -1160,6 +1263,9 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       if (struct.isSetAllocationProjectNumber()) {
         oprot.writeString(struct.allocationProjectNumber);
       }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
     }
 
     @Override
@@ -1169,7 +1275,7 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
       struct.setComputeResourceIdIsSet(true);
       struct.overridebyAiravata = iprot.readBool();
       struct.setOverridebyAiravataIsSet(true);
-      BitSet incoming = iprot.readBitSet(6);
+      BitSet incoming = iprot.readBitSet(7);
       if (incoming.get(0)) {
         struct.loginUserName = iprot.readString();
         struct.setLoginUserNameIsSet(true);
@@ -1194,6 +1300,10 @@ public class ComputeResourcePreference implements org.apache.thrift.TBase<Comput
         struct.allocationProjectNumber = iprot.readString();
         struct.setAllocationProjectNumberIsSet(true);
       }
+      if (incoming.get(6)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 dea2f76..f9a3eb5 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
@@ -55,19 +55,23 @@ import org.slf4j.LoggerFactory;
  * Gateway Resource Profile
  * 
  * gatewayID:
- *   Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+ *  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.
  * 
- * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 
   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_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (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)2);
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)3);
+  private static final org.apache.thrift.protocol.TField DATA_STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStoragePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -76,12 +80,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   }
 
   private String gatewayID; // required
+  private String credentialStoreToken; // optional
   private List<ComputeResourcePreference> computeResourcePreferences; // optional
+  private List<DataStoragePreference> dataStoragePreferences; // 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 {
     GATEWAY_ID((short)1, "gatewayID"),
-    COMPUTE_RESOURCE_PREFERENCES((short)2, "computeResourcePreferences");
+    CREDENTIAL_STORE_TOKEN((short)2, "credentialStoreToken"),
+    COMPUTE_RESOURCE_PREFERENCES((short)3, "computeResourcePreferences"),
+    DATA_STORAGE_PREFERENCES((short)4, "dataStoragePreferences");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -98,8 +106,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       switch(fieldId) {
         case 1: // GATEWAY_ID
           return GATEWAY_ID;
-        case 2: // COMPUTE_RESOURCE_PREFERENCES
+        case 2: // CREDENTIAL_STORE_TOKEN
+          return CREDENTIAL_STORE_TOKEN;
+        case 3: // COMPUTE_RESOURCE_PREFERENCES
           return COMPUTE_RESOURCE_PREFERENCES;
+        case 4: // DATA_STORAGE_PREFERENCES
+          return DATA_STORAGE_PREFERENCES;
         default:
           return null;
       }
@@ -140,15 +152,20 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   }
 
   // isset id assignments
-  private static final _Fields optionals[] = {_Fields.COMPUTE_RESOURCE_PREFERENCES};
+  private static final _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.DATA_STORAGE_PREFERENCES};
   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.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.COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("computeResourcePreferences", 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, ComputeResourcePreference.class))));
+    tmpMap.put(_Fields.DATA_STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("dataStoragePreferences", 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, DataStoragePreference.class))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GatewayResourceProfile.class, metaDataMap);
   }
@@ -170,6 +187,9 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     if (other.isSetGatewayID()) {
       this.gatewayID = other.gatewayID;
     }
+    if (other.isSetCredentialStoreToken()) {
+      this.credentialStoreToken = other.credentialStoreToken;
+    }
     if (other.isSetComputeResourcePreferences()) {
       List<ComputeResourcePreference> __this__computeResourcePreferences = new ArrayList<ComputeResourcePreference>(other.computeResourcePreferences.size());
       for (ComputeResourcePreference other_element : other.computeResourcePreferences) {
@@ -177,6 +197,13 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       this.computeResourcePreferences = __this__computeResourcePreferences;
     }
+    if (other.isSetDataStoragePreferences()) {
+      List<DataStoragePreference> __this__dataStoragePreferences = new ArrayList<DataStoragePreference>(other.dataStoragePreferences.size());
+      for (DataStoragePreference other_element : other.dataStoragePreferences) {
+        __this__dataStoragePreferences.add(new DataStoragePreference(other_element));
+      }
+      this.dataStoragePreferences = __this__dataStoragePreferences;
+    }
   }
 
   public GatewayResourceProfile deepCopy() {
@@ -186,7 +213,9 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   @Override
   public void clear() {
     this.gatewayID = null;
+    this.credentialStoreToken = null;
     this.computeResourcePreferences = null;
+    this.dataStoragePreferences = null;
   }
 
   public String getGatewayID() {
@@ -212,6 +241,29 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     }
   }
 
+  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 getComputeResourcePreferencesSize() {
     return (this.computeResourcePreferences == null) ? 0 : this.computeResourcePreferences.size();
   }
@@ -250,6 +302,44 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     }
   }
 
+  public int getDataStoragePreferencesSize() {
+    return (this.dataStoragePreferences == null) ? 0 : this.dataStoragePreferences.size();
+  }
+
+  public java.util.Iterator<DataStoragePreference> getDataStoragePreferencesIterator() {
+    return (this.dataStoragePreferences == null) ? null : this.dataStoragePreferences.iterator();
+  }
+
+  public void addToDataStoragePreferences(DataStoragePreference elem) {
+    if (this.dataStoragePreferences == null) {
+      this.dataStoragePreferences = new ArrayList<DataStoragePreference>();
+    }
+    this.dataStoragePreferences.add(elem);
+  }
+
+  public List<DataStoragePreference> getDataStoragePreferences() {
+    return this.dataStoragePreferences;
+  }
+
+  public void setDataStoragePreferences(List<DataStoragePreference> dataStoragePreferences) {
+    this.dataStoragePreferences = dataStoragePreferences;
+  }
+
+  public void unsetDataStoragePreferences() {
+    this.dataStoragePreferences = null;
+  }
+
+  /** Returns true if field dataStoragePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataStoragePreferences() {
+    return this.dataStoragePreferences != null;
+  }
+
+  public void setDataStoragePreferencesIsSet(boolean value) {
+    if (!value) {
+      this.dataStoragePreferences = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case GATEWAY_ID:
@@ -260,6 +350,14 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       break;
 
+    case CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetCredentialStoreToken();
+      } else {
+        setCredentialStoreToken((String)value);
+      }
+      break;
+
     case COMPUTE_RESOURCE_PREFERENCES:
       if (value == null) {
         unsetComputeResourcePreferences();
@@ -268,6 +366,14 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       break;
 
+    case DATA_STORAGE_PREFERENCES:
+      if (value == null) {
+        unsetDataStoragePreferences();
+      } else {
+        setDataStoragePreferences((List<DataStoragePreference>)value);
+      }
+      break;
+
     }
   }
 
@@ -276,9 +382,15 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     case GATEWAY_ID:
       return getGatewayID();
 
+    case CREDENTIAL_STORE_TOKEN:
+      return getCredentialStoreToken();
+
     case COMPUTE_RESOURCE_PREFERENCES:
       return getComputeResourcePreferences();
 
+    case DATA_STORAGE_PREFERENCES:
+      return getDataStoragePreferences();
+
     }
     throw new IllegalStateException();
   }
@@ -292,8 +404,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     switch (field) {
     case GATEWAY_ID:
       return isSetGatewayID();
+    case CREDENTIAL_STORE_TOKEN:
+      return isSetCredentialStoreToken();
     case COMPUTE_RESOURCE_PREFERENCES:
       return isSetComputeResourcePreferences();
+    case DATA_STORAGE_PREFERENCES:
+      return isSetDataStoragePreferences();
     }
     throw new IllegalStateException();
   }
@@ -320,6 +436,15 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         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_computeResourcePreferences = true && this.isSetComputeResourcePreferences();
     boolean that_present_computeResourcePreferences = true && that.isSetComputeResourcePreferences();
     if (this_present_computeResourcePreferences || that_present_computeResourcePreferences) {
@@ -329,6 +454,15 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         return false;
     }
 
+    boolean this_present_dataStoragePreferences = true && this.isSetDataStoragePreferences();
+    boolean that_present_dataStoragePreferences = true && that.isSetDataStoragePreferences();
+    if (this_present_dataStoragePreferences || that_present_dataStoragePreferences) {
+      if (!(this_present_dataStoragePreferences && that_present_dataStoragePreferences))
+        return false;
+      if (!this.dataStoragePreferences.equals(that.dataStoragePreferences))
+        return false;
+    }
+
     return true;
   }
 
@@ -341,11 +475,21 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     if (present_gatewayID)
       list.add(gatewayID);
 
+    boolean present_credentialStoreToken = true && (isSetCredentialStoreToken());
+    list.add(present_credentialStoreToken);
+    if (present_credentialStoreToken)
+      list.add(credentialStoreToken);
+
     boolean present_computeResourcePreferences = true && (isSetComputeResourcePreferences());
     list.add(present_computeResourcePreferences);
     if (present_computeResourcePreferences)
       list.add(computeResourcePreferences);
 
+    boolean present_dataStoragePreferences = true && (isSetDataStoragePreferences());
+    list.add(present_dataStoragePreferences);
+    if (present_dataStoragePreferences)
+      list.add(dataStoragePreferences);
+
     return list.hashCode();
   }
 
@@ -367,6 +511,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         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(isSetComputeResourcePreferences()).compareTo(other.isSetComputeResourcePreferences());
     if (lastComparison != 0) {
       return lastComparison;
@@ -377,6 +531,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetDataStoragePreferences()).compareTo(other.isSetDataStoragePreferences());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataStoragePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataStoragePreferences, other.dataStoragePreferences);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -404,6 +568,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       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 (isSetComputeResourcePreferences()) {
       if (!first) sb.append(", ");
       sb.append("computeResourcePreferences:");
@@ -414,6 +588,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       first = false;
     }
+    if (isSetDataStoragePreferences()) {
+      if (!first) sb.append(", ");
+      sb.append("dataStoragePreferences:");
+      if (this.dataStoragePreferences == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataStoragePreferences);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -469,7 +653,15 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 2: // COMPUTE_RESOURCE_PREFERENCES
+          case 2: // 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 3: // COMPUTE_RESOURCE_PREFERENCES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -488,6 +680,25 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 4: // DATA_STORAGE_PREFERENCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.dataStoragePreferences = new ArrayList<DataStoragePreference>(_list3.size);
+                DataStoragePreference _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new DataStoragePreference();
+                  _elem4.read(iprot);
+                  struct.dataStoragePreferences.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setDataStoragePreferencesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -506,14 +717,35 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         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.computeResourcePreferences != null) {
         if (struct.isSetComputeResourcePreferences()) {
           oprot.writeFieldBegin(COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.computeResourcePreferences.size()));
-            for (ComputeResourcePreference _iter3 : struct.computeResourcePreferences)
+            for (ComputeResourcePreference _iter6 : struct.computeResourcePreferences)
+            {
+              _iter6.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.dataStoragePreferences != null) {
+        if (struct.isSetDataStoragePreferences()) {
+          oprot.writeFieldBegin(DATA_STORAGE_PREFERENCES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataStoragePreferences.size()));
+            for (DataStoragePreference _iter7 : struct.dataStoragePreferences)
             {
-              _iter3.write(oprot);
+              _iter7.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -539,16 +771,34 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.gatewayID);
       BitSet optionals = new BitSet();
-      if (struct.isSetComputeResourcePreferences()) {
+      if (struct.isSetCredentialStoreToken()) {
         optionals.set(0);
       }
-      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetComputeResourcePreferences()) {
+        optionals.set(1);
+      }
+      if (struct.isSetDataStoragePreferences()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetCredentialStoreToken()) {
+        oprot.writeString(struct.credentialStoreToken);
+      }
       if (struct.isSetComputeResourcePreferences()) {
         {
           oprot.writeI32(struct.computeResourcePreferences.size());
-          for (ComputeResourcePreference _iter4 : struct.computeResourcePreferences)
+          for (ComputeResourcePreference _iter8 : struct.computeResourcePreferences)
+          {
+            _iter8.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetDataStoragePreferences()) {
+        {
+          oprot.writeI32(struct.dataStoragePreferences.size());
+          for (DataStoragePreference _iter9 : struct.dataStoragePreferences)
           {
-            _iter4.write(oprot);
+            _iter9.write(oprot);
           }
         }
       }
@@ -559,21 +809,39 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.gatewayID = iprot.readString();
       struct.setGatewayIDIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
+      BitSet incoming = iprot.readBitSet(3);
       if (incoming.get(0)) {
+        struct.credentialStoreToken = iprot.readString();
+        struct.setCredentialStoreTokenIsSet(true);
+      }
+      if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.computeResourcePreferences = new ArrayList<ComputeResourcePreference>(_list5.size);
-          ComputeResourcePreference _elem6;
-          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.computeResourcePreferences = new ArrayList<ComputeResourcePreference>(_list10.size);
+          ComputeResourcePreference _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
           {
-            _elem6 = new ComputeResourcePreference();
-            _elem6.read(iprot);
-            struct.computeResourcePreferences.add(_elem6);
+            _elem11 = new ComputeResourcePreference();
+            _elem11.read(iprot);
+            struct.computeResourcePreferences.add(_elem11);
           }
         }
         struct.setComputeResourcePreferencesIsSet(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.dataStoragePreferences = new ArrayList<DataStoragePreference>(_list13.size);
+          DataStoragePreference _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = new DataStoragePreference();
+            _elem14.read(iprot);
+            struct.dataStoragePreferences.add(_elem14);
+          }
+        }
+        struct.setDataStoragePreferencesIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 2c053b2..c59fcb8 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 0a61fa5..b7561ce 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 9ecfb93..7406ac3 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 be96e0f..e0aa8cb 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 03ea24d..48ab0e0 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 f3e4334..98b20ea 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 afead73..b7afe14 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 dac0cb1..1405aa3 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 a0d045a..fbc108a 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 821745b..e268421 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 2c9a7ed..f6ca0e7 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 27e23bc..30ecd4f 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 521078c..103ff8d 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 271792f..c36acd8 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 c6d0111..8940c6c 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 0ebcd61..683b92a 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 cc31c5e..a23a565 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 e9b3b30..c45b087 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 5a46100..697cc70 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 4b789f3..5d57d26 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 0aa3393..8f0db2b 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 cdca339..6b589b7 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 c7a25e2..006de19 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 bca5737..b899c12 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 bb9096e..73aa471 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 2ff7ad7..6bde351 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 4b9ef3d..12b0911 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 4980ef6..8482b4a 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 c22e8cd..91e884b 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 aa635b5..8ee11db 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 66ae637..2d0d35a 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 9436229..68bf157 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 f41f3f9..f2f2d19 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 0b2d5f0..f61f3a5 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 925b7b4..b590a09 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 33d8dfc..ac328db 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 


[03/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
index f1d7437..4b99185 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -1125,6 +1125,13 @@ class SSHJobSubmission:
   sshPort:
    If a non-default port needs to used, specify it.
 
+  batchQueueEmailSenders:
+   If a resource always sends the monitoring from a specific address, specify the
+    full email address. If a resource sends emails from multiple addresses (
+     example: based on the submitted login node) then use the wildchar * to indicate
+     the same. Example: *@*.example.com or *@example.com
+
+
   Attributes:
    - jobSubmissionInterfaceId
    - securityProtocol
@@ -1132,6 +1139,7 @@ class SSHJobSubmission:
    - alternativeSSHHostName
    - sshPort
    - monitorMode
+   - batchQueueEmailSenders
   """
 
   thrift_spec = (
@@ -1142,15 +1150,17 @@ class SSHJobSubmission:
     (4, TType.STRING, 'alternativeSSHHostName', None, None, ), # 4
     (5, TType.I32, 'sshPort', None, 22, ), # 5
     (6, TType.I32, 'monitorMode', None, None, ), # 6
+    (7, TType.LIST, 'batchQueueEmailSenders', (TType.STRING,None), None, ), # 7
   )
 
-  def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None,):
+  def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None, batchQueueEmailSenders=None,):
     self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
     self.securityProtocol = securityProtocol
     self.resourceJobManager = resourceJobManager
     self.alternativeSSHHostName = alternativeSSHHostName
     self.sshPort = sshPort
     self.monitorMode = monitorMode
+    self.batchQueueEmailSenders = batchQueueEmailSenders
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -1192,6 +1202,16 @@ class SSHJobSubmission:
           self.monitorMode = iprot.readI32();
         else:
           iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.LIST:
+          self.batchQueueEmailSenders = []
+          (_etype19, _size16) = iprot.readListBegin()
+          for _i20 in xrange(_size16):
+            _elem21 = iprot.readString();
+            self.batchQueueEmailSenders.append(_elem21)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -1226,6 +1246,13 @@ class SSHJobSubmission:
       oprot.writeFieldBegin('monitorMode', TType.I32, 6)
       oprot.writeI32(self.monitorMode)
       oprot.writeFieldEnd()
+    if self.batchQueueEmailSenders is not None:
+      oprot.writeFieldBegin('batchQueueEmailSenders', TType.LIST, 7)
+      oprot.writeListBegin(TType.STRING, len(self.batchQueueEmailSenders))
+      for iter22 in self.batchQueueEmailSenders:
+        oprot.writeString(iter22)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -1247,6 +1274,7 @@ class SSHJobSubmission:
     value = (value * 31) ^ hash(self.alternativeSSHHostName)
     value = (value * 31) ^ hash(self.sshPort)
     value = (value * 31) ^ hash(self.monitorMode)
+    value = (value * 31) ^ hash(self.batchQueueEmailSenders)
     return value
 
   def __repr__(self):
@@ -1302,10 +1330,10 @@ class GlobusJobSubmission:
       elif fid == 3:
         if ftype == TType.LIST:
           self.globusGateKeeperEndPoint = []
-          (_etype19, _size16) = iprot.readListBegin()
-          for _i20 in xrange(_size16):
-            _elem21 = iprot.readString();
-            self.globusGateKeeperEndPoint.append(_elem21)
+          (_etype26, _size23) = iprot.readListBegin()
+          for _i27 in xrange(_size23):
+            _elem28 = iprot.readString();
+            self.globusGateKeeperEndPoint.append(_elem28)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -1330,8 +1358,8 @@ class GlobusJobSubmission:
     if self.globusGateKeeperEndPoint is not None:
       oprot.writeFieldBegin('globusGateKeeperEndPoint', TType.LIST, 3)
       oprot.writeListBegin(TType.STRING, len(self.globusGateKeeperEndPoint))
-      for iter22 in self.globusGateKeeperEndPoint:
-        oprot.writeString(iter22)
+      for iter29 in self.globusGateKeeperEndPoint:
+        oprot.writeString(iter29)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -1919,20 +1947,20 @@ class ComputeResourceDescription:
       elif fid == 3:
         if ftype == TType.LIST:
           self.hostAliases = []
-          (_etype26, _size23) = iprot.readListBegin()
-          for _i27 in xrange(_size23):
-            _elem28 = iprot.readString();
-            self.hostAliases.append(_elem28)
+          (_etype33, _size30) = iprot.readListBegin()
+          for _i34 in xrange(_size30):
+            _elem35 = iprot.readString();
+            self.hostAliases.append(_elem35)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.LIST:
           self.ipAddresses = []
-          (_etype32, _size29) = iprot.readListBegin()
-          for _i33 in xrange(_size29):
-            _elem34 = iprot.readString();
-            self.ipAddresses.append(_elem34)
+          (_etype39, _size36) = iprot.readListBegin()
+          for _i40 in xrange(_size36):
+            _elem41 = iprot.readString();
+            self.ipAddresses.append(_elem41)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -1949,44 +1977,44 @@ class ComputeResourceDescription:
       elif fid == 7:
         if ftype == TType.LIST:
           self.batchQueues = []
-          (_etype38, _size35) = iprot.readListBegin()
-          for _i39 in xrange(_size35):
-            _elem40 = BatchQueue()
-            _elem40.read(iprot)
-            self.batchQueues.append(_elem40)
+          (_etype45, _size42) = iprot.readListBegin()
+          for _i46 in xrange(_size42):
+            _elem47 = BatchQueue()
+            _elem47.read(iprot)
+            self.batchQueues.append(_elem47)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.MAP:
           self.fileSystems = {}
-          (_ktype42, _vtype43, _size41 ) = iprot.readMapBegin()
-          for _i45 in xrange(_size41):
-            _key46 = iprot.readI32();
-            _val47 = iprot.readString();
-            self.fileSystems[_key46] = _val47
+          (_ktype49, _vtype50, _size48 ) = iprot.readMapBegin()
+          for _i52 in xrange(_size48):
+            _key53 = iprot.readI32();
+            _val54 = iprot.readString();
+            self.fileSystems[_key53] = _val54
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.LIST:
           self.jobSubmissionInterfaces = []
-          (_etype51, _size48) = iprot.readListBegin()
-          for _i52 in xrange(_size48):
-            _elem53 = JobSubmissionInterface()
-            _elem53.read(iprot)
-            self.jobSubmissionInterfaces.append(_elem53)
+          (_etype58, _size55) = iprot.readListBegin()
+          for _i59 in xrange(_size55):
+            _elem60 = JobSubmissionInterface()
+            _elem60.read(iprot)
+            self.jobSubmissionInterfaces.append(_elem60)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.LIST:
           self.dataMovementInterfaces = []
-          (_etype57, _size54) = iprot.readListBegin()
-          for _i58 in xrange(_size54):
-            _elem59 = DataMovementInterface()
-            _elem59.read(iprot)
-            self.dataMovementInterfaces.append(_elem59)
+          (_etype64, _size61) = iprot.readListBegin()
+          for _i65 in xrange(_size61):
+            _elem66 = DataMovementInterface()
+            _elem66.read(iprot)
+            self.dataMovementInterfaces.append(_elem66)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -2016,15 +2044,15 @@ class ComputeResourceDescription:
     if self.hostAliases is not None:
       oprot.writeFieldBegin('hostAliases', TType.LIST, 3)
       oprot.writeListBegin(TType.STRING, len(self.hostAliases))
-      for iter60 in self.hostAliases:
-        oprot.writeString(iter60)
+      for iter67 in self.hostAliases:
+        oprot.writeString(iter67)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ipAddresses is not None:
       oprot.writeFieldBegin('ipAddresses', TType.LIST, 4)
       oprot.writeListBegin(TType.STRING, len(self.ipAddresses))
-      for iter61 in self.ipAddresses:
-        oprot.writeString(iter61)
+      for iter68 in self.ipAddresses:
+        oprot.writeString(iter68)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.resourceDescription is not None:
@@ -2038,30 +2066,30 @@ class ComputeResourceDescription:
     if self.batchQueues is not None:
       oprot.writeFieldBegin('batchQueues', TType.LIST, 7)
       oprot.writeListBegin(TType.STRUCT, len(self.batchQueues))
-      for iter62 in self.batchQueues:
-        iter62.write(oprot)
+      for iter69 in self.batchQueues:
+        iter69.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.fileSystems is not None:
       oprot.writeFieldBegin('fileSystems', TType.MAP, 8)
       oprot.writeMapBegin(TType.I32, TType.STRING, len(self.fileSystems))
-      for kiter63,viter64 in self.fileSystems.items():
-        oprot.writeI32(kiter63)
-        oprot.writeString(viter64)
+      for kiter70,viter71 in self.fileSystems.items():
+        oprot.writeI32(kiter70)
+        oprot.writeString(viter71)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()
     if self.jobSubmissionInterfaces is not None:
       oprot.writeFieldBegin('jobSubmissionInterfaces', TType.LIST, 9)
       oprot.writeListBegin(TType.STRUCT, len(self.jobSubmissionInterfaces))
-      for iter65 in self.jobSubmissionInterfaces:
-        iter65.write(oprot)
+      for iter72 in self.jobSubmissionInterfaces:
+        iter72.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.dataMovementInterfaces is not None:
       oprot.writeFieldBegin('dataMovementInterfaces', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.dataMovementInterfaces))
-      for iter66 in self.dataMovementInterfaces:
-        iter66.write(oprot)
+      for iter73 in self.dataMovementInterfaces:
+        iter73.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.maxMemoryPerNode is not None:

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
index da70436..9799e52 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -49,6 +49,10 @@ class ComputeResourcePreference:
      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.
+
 
   Attributes:
    - computeResourceId
@@ -59,6 +63,7 @@ class ComputeResourcePreference:
    - preferredBatchQueue
    - scratchLocation
    - allocationProjectNumber
+   - resourceSpecificCredentialStoreToken
   """
 
   thrift_spec = (
@@ -71,9 +76,10 @@ class ComputeResourcePreference:
     (6, TType.STRING, 'preferredBatchQueue', None, None, ), # 6
     (7, TType.STRING, 'scratchLocation', None, None, ), # 7
     (8, TType.STRING, 'allocationProjectNumber', None, None, ), # 8
+    (9, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 9
   )
 
-  def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None,):
+  def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None,):
     self.computeResourceId = computeResourceId
     self.overridebyAiravata = overridebyAiravata
     self.loginUserName = loginUserName
@@ -82,6 +88,7 @@ class ComputeResourcePreference:
     self.preferredBatchQueue = preferredBatchQueue
     self.scratchLocation = scratchLocation
     self.allocationProjectNumber = allocationProjectNumber
+    self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -132,6 +139,11 @@ class ComputeResourcePreference:
           self.allocationProjectNumber = iprot.readString();
         else:
           iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.resourceSpecificCredentialStoreToken = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -174,6 +186,10 @@ class ComputeResourcePreference:
       oprot.writeFieldBegin('allocationProjectNumber', TType.STRING, 8)
       oprot.writeString(self.allocationProjectNumber)
       oprot.writeFieldEnd()
+    if self.resourceSpecificCredentialStoreToken is not None:
+      oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 9)
+      oprot.writeString(self.resourceSpecificCredentialStoreToken)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -195,6 +211,113 @@ class ComputeResourcePreference:
     value = (value * 31) ^ hash(self.preferredBatchQueue)
     value = (value * 31) ^ hash(self.scratchLocation)
     value = (value * 31) ^ hash(self.allocationProjectNumber)
+    value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class DataStoragePreference:
+  """
+  Attributes:
+   - dataMovememtResourceId
+   - loginUserName
+   - fileSystemRootLocation
+   - resourceSpecificCredentialStoreToken
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'dataMovememtResourceId', None, None, ), # 1
+    (2, TType.STRING, 'loginUserName', None, None, ), # 2
+    (3, TType.STRING, 'fileSystemRootLocation', None, None, ), # 3
+    (4, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 4
+  )
+
+  def __init__(self, dataMovememtResourceId=None, loginUserName=None, fileSystemRootLocation=None, resourceSpecificCredentialStoreToken=None,):
+    self.dataMovememtResourceId = dataMovememtResourceId
+    self.loginUserName = loginUserName
+    self.fileSystemRootLocation = fileSystemRootLocation
+    self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.dataMovememtResourceId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.loginUserName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.fileSystemRootLocation = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.resourceSpecificCredentialStoreToken = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DataStoragePreference')
+    if self.dataMovememtResourceId is not None:
+      oprot.writeFieldBegin('dataMovememtResourceId', TType.STRING, 1)
+      oprot.writeString(self.dataMovememtResourceId)
+      oprot.writeFieldEnd()
+    if self.loginUserName is not None:
+      oprot.writeFieldBegin('loginUserName', TType.STRING, 2)
+      oprot.writeString(self.loginUserName)
+      oprot.writeFieldEnd()
+    if self.fileSystemRootLocation is not None:
+      oprot.writeFieldBegin('fileSystemRootLocation', TType.STRING, 3)
+      oprot.writeString(self.fileSystemRootLocation)
+      oprot.writeFieldEnd()
+    if self.resourceSpecificCredentialStoreToken is not None:
+      oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 4)
+      oprot.writeString(self.resourceSpecificCredentialStoreToken)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.dataMovememtResourceId is None:
+      raise TProtocol.TProtocolException(message='Required field dataMovememtResourceId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.dataMovememtResourceId)
+    value = (value * 31) ^ hash(self.loginUserName)
+    value = (value * 31) ^ hash(self.fileSystemRootLocation)
+    value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
     return value
 
   def __repr__(self):
@@ -213,27 +336,35 @@ class GatewayResourceProfile:
   Gateway Resource Profile
 
   gatewayID:
-    Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+   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.
 
 
-
   Attributes:
    - gatewayID
+   - credentialStoreToken
    - computeResourcePreferences
+   - dataStoragePreferences
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRING, 'gatewayID', None, None, ), # 1
-    (2, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 2
+    (2, TType.STRING, 'credentialStoreToken', None, None, ), # 2
+    (3, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 3
+    (4, TType.LIST, 'dataStoragePreferences', (TType.STRUCT,(DataStoragePreference, DataStoragePreference.thrift_spec)), None, ), # 4
   )
 
-  def __init__(self, gatewayID=None, computeResourcePreferences=None,):
+  def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, dataStoragePreferences=None,):
     self.gatewayID = gatewayID
+    self.credentialStoreToken = credentialStoreToken
     self.computeResourcePreferences = computeResourcePreferences
+    self.dataStoragePreferences = dataStoragePreferences
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -250,6 +381,11 @@ class GatewayResourceProfile:
         else:
           iprot.skip(ftype)
       elif fid == 2:
+        if ftype == TType.STRING:
+          self.credentialStoreToken = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
         if ftype == TType.LIST:
           self.computeResourcePreferences = []
           (_etype3, _size0) = iprot.readListBegin()
@@ -260,6 +396,17 @@ class GatewayResourceProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.dataStoragePreferences = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = DataStoragePreference()
+            _elem11.read(iprot)
+            self.dataStoragePreferences.append(_elem11)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -274,11 +421,22 @@ class GatewayResourceProfile:
       oprot.writeFieldBegin('gatewayID', TType.STRING, 1)
       oprot.writeString(self.gatewayID)
       oprot.writeFieldEnd()
+    if self.credentialStoreToken is not None:
+      oprot.writeFieldBegin('credentialStoreToken', TType.STRING, 2)
+      oprot.writeString(self.credentialStoreToken)
+      oprot.writeFieldEnd()
     if self.computeResourcePreferences is not None:
-      oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 2)
+      oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 3)
       oprot.writeListBegin(TType.STRUCT, len(self.computeResourcePreferences))
-      for iter6 in self.computeResourcePreferences:
-        iter6.write(oprot)
+      for iter12 in self.computeResourcePreferences:
+        iter12.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.dataStoragePreferences is not None:
+      oprot.writeFieldBegin('dataStoragePreferences', TType.LIST, 4)
+      oprot.writeListBegin(TType.STRUCT, len(self.dataStoragePreferences))
+      for iter13 in self.dataStoragePreferences:
+        iter13.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -293,7 +451,9 @@ class GatewayResourceProfile:
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.gatewayID)
+    value = (value * 31) ^ hash(self.credentialStoreToken)
     value = (value * 31) ^ hash(self.computeResourcePreferences)
+    value = (value * 31) ^ hash(self.dataStoragePreferences)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
index 70fd2b6..28ee4cd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 public class Workflow implements org.apache.thrift.TBase<Workflow, Workflow._Fields>, java.io.Serializable, Cloneable, Comparable<Workflow> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Workflow");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 64d34cb..c63c833 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 d337b52..7f5eabb 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 42d638a..86712ff 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
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * value:
  *   Value of the environment variable to set
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 af4fcb2..f3fb846 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 5f5d225..7644cf8 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 b2b934c..a5fe2b6 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 910cb89..bb9e8ed 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 
@@ -1327,13 +1327,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 3: // HOST_ALIASES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
-                struct.hostAliases = new ArrayList<String>(_list26.size);
-                String _elem27;
-                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
+                org.apache.thrift.protocol.TList _list34 = iprot.readListBegin();
+                struct.hostAliases = new ArrayList<String>(_list34.size);
+                String _elem35;
+                for (int _i36 = 0; _i36 < _list34.size; ++_i36)
                 {
-                  _elem27 = iprot.readString();
-                  struct.hostAliases.add(_elem27);
+                  _elem35 = iprot.readString();
+                  struct.hostAliases.add(_elem35);
                 }
                 iprot.readListEnd();
               }
@@ -1345,13 +1345,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 4: // IP_ADDRESSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list29 = iprot.readListBegin();
-                struct.ipAddresses = new ArrayList<String>(_list29.size);
-                String _elem30;
-                for (int _i31 = 0; _i31 < _list29.size; ++_i31)
+                org.apache.thrift.protocol.TList _list37 = iprot.readListBegin();
+                struct.ipAddresses = new ArrayList<String>(_list37.size);
+                String _elem38;
+                for (int _i39 = 0; _i39 < _list37.size; ++_i39)
                 {
-                  _elem30 = iprot.readString();
-                  struct.ipAddresses.add(_elem30);
+                  _elem38 = iprot.readString();
+                  struct.ipAddresses.add(_elem38);
                 }
                 iprot.readListEnd();
               }
@@ -1379,14 +1379,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 7: // BATCH_QUEUES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list32 = iprot.readListBegin();
-                struct.batchQueues = new ArrayList<BatchQueue>(_list32.size);
-                BatchQueue _elem33;
-                for (int _i34 = 0; _i34 < _list32.size; ++_i34)
+                org.apache.thrift.protocol.TList _list40 = iprot.readListBegin();
+                struct.batchQueues = new ArrayList<BatchQueue>(_list40.size);
+                BatchQueue _elem41;
+                for (int _i42 = 0; _i42 < _list40.size; ++_i42)
                 {
-                  _elem33 = new BatchQueue();
-                  _elem33.read(iprot);
-                  struct.batchQueues.add(_elem33);
+                  _elem41 = new BatchQueue();
+                  _elem41.read(iprot);
+                  struct.batchQueues.add(_elem41);
                 }
                 iprot.readListEnd();
               }
@@ -1398,15 +1398,15 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 8: // FILE_SYSTEMS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map35 = iprot.readMapBegin();
-                struct.fileSystems = new HashMap<FileSystems,String>(2*_map35.size);
-                FileSystems _key36;
-                String _val37;
-                for (int _i38 = 0; _i38 < _map35.size; ++_i38)
+                org.apache.thrift.protocol.TMap _map43 = iprot.readMapBegin();
+                struct.fileSystems = new HashMap<FileSystems,String>(2*_map43.size);
+                FileSystems _key44;
+                String _val45;
+                for (int _i46 = 0; _i46 < _map43.size; ++_i46)
                 {
-                  _key36 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-                  _val37 = iprot.readString();
-                  struct.fileSystems.put(_key36, _val37);
+                  _key44 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+                  _val45 = iprot.readString();
+                  struct.fileSystems.put(_key44, _val45);
                 }
                 iprot.readMapEnd();
               }
@@ -1418,14 +1418,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 9: // JOB_SUBMISSION_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list39 = iprot.readListBegin();
-                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list39.size);
-                JobSubmissionInterface _elem40;
-                for (int _i41 = 0; _i41 < _list39.size; ++_i41)
+                org.apache.thrift.protocol.TList _list47 = iprot.readListBegin();
+                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list47.size);
+                JobSubmissionInterface _elem48;
+                for (int _i49 = 0; _i49 < _list47.size; ++_i49)
                 {
-                  _elem40 = new JobSubmissionInterface();
-                  _elem40.read(iprot);
-                  struct.jobSubmissionInterfaces.add(_elem40);
+                  _elem48 = new JobSubmissionInterface();
+                  _elem48.read(iprot);
+                  struct.jobSubmissionInterfaces.add(_elem48);
                 }
                 iprot.readListEnd();
               }
@@ -1437,14 +1437,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 10: // DATA_MOVEMENT_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
-                struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list42.size);
-                DataMovementInterface _elem43;
-                for (int _i44 = 0; _i44 < _list42.size; ++_i44)
+                org.apache.thrift.protocol.TList _list50 = iprot.readListBegin();
+                struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list50.size);
+                DataMovementInterface _elem51;
+                for (int _i52 = 0; _i52 < _list50.size; ++_i52)
                 {
-                  _elem43 = new DataMovementInterface();
-                  _elem43.read(iprot);
-                  struct.dataMovementInterfaces.add(_elem43);
+                  _elem51 = new DataMovementInterface();
+                  _elem51.read(iprot);
+                  struct.dataMovementInterfaces.add(_elem51);
                 }
                 iprot.readListEnd();
               }
@@ -1489,9 +1489,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
-            for (String _iter45 : struct.hostAliases)
+            for (String _iter53 : struct.hostAliases)
             {
-              oprot.writeString(_iter45);
+              oprot.writeString(_iter53);
             }
             oprot.writeListEnd();
           }
@@ -1503,9 +1503,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
-            for (String _iter46 : struct.ipAddresses)
+            for (String _iter54 : struct.ipAddresses)
             {
-              oprot.writeString(_iter46);
+              oprot.writeString(_iter54);
             }
             oprot.writeListEnd();
           }
@@ -1529,9 +1529,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(BATCH_QUEUES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.batchQueues.size()));
-            for (BatchQueue _iter47 : struct.batchQueues)
+            for (BatchQueue _iter55 : struct.batchQueues)
             {
-              _iter47.write(oprot);
+              _iter55.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1543,10 +1543,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(FILE_SYSTEMS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.fileSystems.size()));
-            for (Map.Entry<FileSystems, String> _iter48 : struct.fileSystems.entrySet())
+            for (Map.Entry<FileSystems, String> _iter56 : struct.fileSystems.entrySet())
             {
-              oprot.writeI32(_iter48.getKey().getValue());
-              oprot.writeString(_iter48.getValue());
+              oprot.writeI32(_iter56.getKey().getValue());
+              oprot.writeString(_iter56.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -1558,9 +1558,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobSubmissionInterfaces.size()));
-            for (JobSubmissionInterface _iter49 : struct.jobSubmissionInterfaces)
+            for (JobSubmissionInterface _iter57 : struct.jobSubmissionInterfaces)
             {
-              _iter49.write(oprot);
+              _iter57.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1572,9 +1572,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataMovementInterfaces.size()));
-            for (DataMovementInterface _iter50 : struct.dataMovementInterfaces)
+            for (DataMovementInterface _iter58 : struct.dataMovementInterfaces)
             {
-              _iter50.write(oprot);
+              _iter58.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1637,18 +1637,18 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetHostAliases()) {
         {
           oprot.writeI32(struct.hostAliases.size());
-          for (String _iter51 : struct.hostAliases)
+          for (String _iter59 : struct.hostAliases)
           {
-            oprot.writeString(_iter51);
+            oprot.writeString(_iter59);
           }
         }
       }
       if (struct.isSetIpAddresses()) {
         {
           oprot.writeI32(struct.ipAddresses.size());
-          for (String _iter52 : struct.ipAddresses)
+          for (String _iter60 : struct.ipAddresses)
           {
-            oprot.writeString(_iter52);
+            oprot.writeString(_iter60);
           }
         }
       }
@@ -1661,37 +1661,37 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetBatchQueues()) {
         {
           oprot.writeI32(struct.batchQueues.size());
-          for (BatchQueue _iter53 : struct.batchQueues)
+          for (BatchQueue _iter61 : struct.batchQueues)
           {
-            _iter53.write(oprot);
+            _iter61.write(oprot);
           }
         }
       }
       if (struct.isSetFileSystems()) {
         {
           oprot.writeI32(struct.fileSystems.size());
-          for (Map.Entry<FileSystems, String> _iter54 : struct.fileSystems.entrySet())
+          for (Map.Entry<FileSystems, String> _iter62 : struct.fileSystems.entrySet())
           {
-            oprot.writeI32(_iter54.getKey().getValue());
-            oprot.writeString(_iter54.getValue());
+            oprot.writeI32(_iter62.getKey().getValue());
+            oprot.writeString(_iter62.getValue());
           }
         }
       }
       if (struct.isSetJobSubmissionInterfaces()) {
         {
           oprot.writeI32(struct.jobSubmissionInterfaces.size());
-          for (JobSubmissionInterface _iter55 : struct.jobSubmissionInterfaces)
+          for (JobSubmissionInterface _iter63 : struct.jobSubmissionInterfaces)
           {
-            _iter55.write(oprot);
+            _iter63.write(oprot);
           }
         }
       }
       if (struct.isSetDataMovementInterfaces()) {
         {
           oprot.writeI32(struct.dataMovementInterfaces.size());
-          for (DataMovementInterface _iter56 : struct.dataMovementInterfaces)
+          for (DataMovementInterface _iter64 : struct.dataMovementInterfaces)
           {
-            _iter56.write(oprot);
+            _iter64.write(oprot);
           }
         }
       }
@@ -1710,26 +1710,26 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       BitSet incoming = iprot.readBitSet(9);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list57 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.hostAliases = new ArrayList<String>(_list57.size);
-          String _elem58;
-          for (int _i59 = 0; _i59 < _list57.size; ++_i59)
+          org.apache.thrift.protocol.TList _list65 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.hostAliases = new ArrayList<String>(_list65.size);
+          String _elem66;
+          for (int _i67 = 0; _i67 < _list65.size; ++_i67)
           {
-            _elem58 = iprot.readString();
-            struct.hostAliases.add(_elem58);
+            _elem66 = iprot.readString();
+            struct.hostAliases.add(_elem66);
           }
         }
         struct.setHostAliasesIsSet(true);
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list60 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.ipAddresses = new ArrayList<String>(_list60.size);
-          String _elem61;
-          for (int _i62 = 0; _i62 < _list60.size; ++_i62)
+          org.apache.thrift.protocol.TList _list68 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.ipAddresses = new ArrayList<String>(_list68.size);
+          String _elem69;
+          for (int _i70 = 0; _i70 < _list68.size; ++_i70)
           {
-            _elem61 = iprot.readString();
-            struct.ipAddresses.add(_elem61);
+            _elem69 = iprot.readString();
+            struct.ipAddresses.add(_elem69);
           }
         }
         struct.setIpAddressesIsSet(true);
@@ -1744,57 +1744,57 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       }
       if (incoming.get(4)) {
         {
-          org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.batchQueues = new ArrayList<BatchQueue>(_list63.size);
-          BatchQueue _elem64;
-          for (int _i65 = 0; _i65 < _list63.size; ++_i65)
+          org.apache.thrift.protocol.TList _list71 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.batchQueues = new ArrayList<BatchQueue>(_list71.size);
+          BatchQueue _elem72;
+          for (int _i73 = 0; _i73 < _list71.size; ++_i73)
           {
-            _elem64 = new BatchQueue();
-            _elem64.read(iprot);
-            struct.batchQueues.add(_elem64);
+            _elem72 = new BatchQueue();
+            _elem72.read(iprot);
+            struct.batchQueues.add(_elem72);
           }
         }
         struct.setBatchQueuesIsSet(true);
       }
       if (incoming.get(5)) {
         {
-          org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.fileSystems = new HashMap<FileSystems,String>(2*_map66.size);
-          FileSystems _key67;
-          String _val68;
-          for (int _i69 = 0; _i69 < _map66.size; ++_i69)
+          org.apache.thrift.protocol.TMap _map74 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.fileSystems = new HashMap<FileSystems,String>(2*_map74.size);
+          FileSystems _key75;
+          String _val76;
+          for (int _i77 = 0; _i77 < _map74.size; ++_i77)
           {
-            _key67 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-            _val68 = iprot.readString();
-            struct.fileSystems.put(_key67, _val68);
+            _key75 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+            _val76 = iprot.readString();
+            struct.fileSystems.put(_key75, _val76);
           }
         }
         struct.setFileSystemsIsSet(true);
       }
       if (incoming.get(6)) {
         {
-          org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list70.size);
-          JobSubmissionInterface _elem71;
-          for (int _i72 = 0; _i72 < _list70.size; ++_i72)
+          org.apache.thrift.protocol.TList _list78 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list78.size);
+          JobSubmissionInterface _elem79;
+          for (int _i80 = 0; _i80 < _list78.size; ++_i80)
           {
-            _elem71 = new JobSubmissionInterface();
-            _elem71.read(iprot);
-            struct.jobSubmissionInterfaces.add(_elem71);
+            _elem79 = new JobSubmissionInterface();
+            _elem79.read(iprot);
+            struct.jobSubmissionInterfaces.add(_elem79);
           }
         }
         struct.setJobSubmissionInterfacesIsSet(true);
       }
       if (incoming.get(7)) {
         {
-          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list73.size);
-          DataMovementInterface _elem74;
-          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
+          org.apache.thrift.protocol.TList _list81 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list81.size);
+          DataMovementInterface _elem82;
+          for (int _i83 = 0; _i83 < _list81.size; ++_i83)
           {
-            _elem74 = new DataMovementInterface();
-            _elem74.read(iprot);
-            struct.dataMovementInterfaces.add(_elem74);
+            _elem82 = new DataMovementInterface();
+            _elem82.read(iprot);
+            struct.dataMovementInterfaces.add(_elem82);
           }
         }
         struct.setDataMovementInterfacesIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
index 6da10d2..204e837 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 5a4660b..d5b0434 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 
@@ -566,13 +566,13 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
           case 3: // GLOBUS_GATE_KEEPER_END_POINT
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list18 = iprot.readListBegin();
-                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list18.size);
-                String _elem19;
-                for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
+                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list26.size);
+                String _elem27;
+                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
                 {
-                  _elem19 = iprot.readString();
-                  struct.globusGateKeeperEndPoint.add(_elem19);
+                  _elem27 = iprot.readString();
+                  struct.globusGateKeeperEndPoint.add(_elem27);
                 }
                 iprot.readListEnd();
               }
@@ -609,9 +609,9 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
           oprot.writeFieldBegin(GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.globusGateKeeperEndPoint.size()));
-            for (String _iter21 : struct.globusGateKeeperEndPoint)
+            for (String _iter29 : struct.globusGateKeeperEndPoint)
             {
-              oprot.writeString(_iter21);
+              oprot.writeString(_iter29);
             }
             oprot.writeListEnd();
           }
@@ -645,9 +645,9 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
       if (struct.isSetGlobusGateKeeperEndPoint()) {
         {
           oprot.writeI32(struct.globusGateKeeperEndPoint.size());
-          for (String _iter22 : struct.globusGateKeeperEndPoint)
+          for (String _iter30 : struct.globusGateKeeperEndPoint)
           {
-            oprot.writeString(_iter22);
+            oprot.writeString(_iter30);
           }
         }
       }
@@ -663,13 +663,13 @@ public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSub
       BitSet incoming = iprot.readBitSet(1);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list23.size);
-          String _elem24;
-          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          org.apache.thrift.protocol.TList _list31 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list31.size);
+          String _elem32;
+          for (int _i33 = 0; _i33 < _list31.size; ++_i33)
           {
-            _elem24 = iprot.readString();
-            struct.globusGateKeeperEndPoint.add(_elem24);
+            _elem32 = iprot.readString();
+            struct.globusGateKeeperEndPoint.add(_elem32);
           }
         }
         struct.setGlobusGateKeeperEndPointIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
index 3cac40a..22ce310 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 52758f3..f2644dc 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
index 5274ff8..36056da 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 c3c7246..a46f319 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 0b05bfa..218b820 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
index c7d6ef4..2c162f4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 b7f23c4..a673f35 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
@@ -59,8 +59,15 @@ import org.slf4j.LoggerFactory;
  * 
  * sshPort:
  *  If a non-default port needs to used, specify it.
+ * 
+ * batchQueueEmailSenders:
+ *  If a resource always sends the monitoring from a specific address, specify the
+ *   full email address. If a resource sends emails from multiple addresses (
+ *    example: based on the submitted login node) then use the wildchar * to indicate
+ *    the same. Example: *@*.example.com or *@example.com
+ * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 
@@ -70,6 +77,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   private static final org.apache.thrift.protocol.TField ALTERNATIVE_SSHHOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("alternativeSSHHostName", org.apache.thrift.protocol.TType.STRING, (short)4);
   private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)5);
   private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC = new org.apache.thrift.protocol.TField("batchQueueEmailSenders", org.apache.thrift.protocol.TType.LIST, (short)7);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -83,6 +91,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   private String alternativeSSHHostName; // optional
   private int sshPort; // optional
   private MonitorMode monitorMode; // optional
+  private List<String> batchQueueEmailSenders; // 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 {
@@ -99,7 +108,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
      * 
      * @see MonitorMode
      */
-    MONITOR_MODE((short)6, "monitorMode");
+    MONITOR_MODE((short)6, "monitorMode"),
+    BATCH_QUEUE_EMAIL_SENDERS((short)7, "batchQueueEmailSenders");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -126,6 +136,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
           return SSH_PORT;
         case 6: // MONITOR_MODE
           return MONITOR_MODE;
+        case 7: // BATCH_QUEUE_EMAIL_SENDERS
+          return BATCH_QUEUE_EMAIL_SENDERS;
         default:
           return null;
       }
@@ -168,7 +180,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
   // isset id assignments
   private static final int __SSHPORT_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE};
+  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.BATCH_QUEUE_EMAIL_SENDERS};
   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);
@@ -184,6 +196,9 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MonitorMode.class)));
+    tmpMap.put(_Fields.BATCH_QUEUE_EMAIL_SENDERS, new org.apache.thrift.meta_data.FieldMetaData("batchQueueEmailSenders", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
   }
@@ -227,6 +242,10 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     if (other.isSetMonitorMode()) {
       this.monitorMode = other.monitorMode;
     }
+    if (other.isSetBatchQueueEmailSenders()) {
+      List<String> __this__batchQueueEmailSenders = new ArrayList<String>(other.batchQueueEmailSenders);
+      this.batchQueueEmailSenders = __this__batchQueueEmailSenders;
+    }
   }
 
   public SSHJobSubmission deepCopy() {
@@ -243,6 +262,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     this.sshPort = 22;
 
     this.monitorMode = null;
+    this.batchQueueEmailSenders = null;
   }
 
   public String getJobSubmissionInterfaceId() {
@@ -398,6 +418,44 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     }
   }
 
+  public int getBatchQueueEmailSendersSize() {
+    return (this.batchQueueEmailSenders == null) ? 0 : this.batchQueueEmailSenders.size();
+  }
+
+  public java.util.Iterator<String> getBatchQueueEmailSendersIterator() {
+    return (this.batchQueueEmailSenders == null) ? null : this.batchQueueEmailSenders.iterator();
+  }
+
+  public void addToBatchQueueEmailSenders(String elem) {
+    if (this.batchQueueEmailSenders == null) {
+      this.batchQueueEmailSenders = new ArrayList<String>();
+    }
+    this.batchQueueEmailSenders.add(elem);
+  }
+
+  public List<String> getBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders;
+  }
+
+  public void setBatchQueueEmailSenders(List<String> batchQueueEmailSenders) {
+    this.batchQueueEmailSenders = batchQueueEmailSenders;
+  }
+
+  public void unsetBatchQueueEmailSenders() {
+    this.batchQueueEmailSenders = null;
+  }
+
+  /** Returns true if field batchQueueEmailSenders is set (has been assigned a value) and false otherwise */
+  public boolean isSetBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders != null;
+  }
+
+  public void setBatchQueueEmailSendersIsSet(boolean value) {
+    if (!value) {
+      this.batchQueueEmailSenders = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case JOB_SUBMISSION_INTERFACE_ID:
@@ -448,6 +506,14 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       }
       break;
 
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      if (value == null) {
+        unsetBatchQueueEmailSenders();
+      } else {
+        setBatchQueueEmailSenders((List<String>)value);
+      }
+      break;
+
     }
   }
 
@@ -471,6 +537,9 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     case MONITOR_MODE:
       return getMonitorMode();
 
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return getBatchQueueEmailSenders();
+
     }
     throw new IllegalStateException();
   }
@@ -494,6 +563,8 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       return isSetSshPort();
     case MONITOR_MODE:
       return isSetMonitorMode();
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return isSetBatchQueueEmailSenders();
     }
     throw new IllegalStateException();
   }
@@ -565,6 +636,15 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         return false;
     }
 
+    boolean this_present_batchQueueEmailSenders = true && this.isSetBatchQueueEmailSenders();
+    boolean that_present_batchQueueEmailSenders = true && that.isSetBatchQueueEmailSenders();
+    if (this_present_batchQueueEmailSenders || that_present_batchQueueEmailSenders) {
+      if (!(this_present_batchQueueEmailSenders && that_present_batchQueueEmailSenders))
+        return false;
+      if (!this.batchQueueEmailSenders.equals(that.batchQueueEmailSenders))
+        return false;
+    }
+
     return true;
   }
 
@@ -602,6 +682,11 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
     if (present_monitorMode)
       list.add(monitorMode.getValue());
 
+    boolean present_batchQueueEmailSenders = true && (isSetBatchQueueEmailSenders());
+    list.add(present_batchQueueEmailSenders);
+    if (present_batchQueueEmailSenders)
+      list.add(batchQueueEmailSenders);
+
     return list.hashCode();
   }
 
@@ -673,6 +758,16 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetBatchQueueEmailSenders()).compareTo(other.isSetBatchQueueEmailSenders());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetBatchQueueEmailSenders()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchQueueEmailSenders, other.batchQueueEmailSenders);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -742,6 +837,16 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       }
       first = false;
     }
+    if (isSetBatchQueueEmailSenders()) {
+      if (!first) sb.append(", ");
+      sb.append("batchQueueEmailSenders:");
+      if (this.batchQueueEmailSenders == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.batchQueueEmailSenders);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -851,6 +956,24 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 7: // BATCH_QUEUE_EMAIL_SENDERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list18 = iprot.readListBegin();
+                struct.batchQueueEmailSenders = new ArrayList<String>(_list18.size);
+                String _elem19;
+                for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+                {
+                  _elem19 = iprot.readString();
+                  struct.batchQueueEmailSenders.add(_elem19);
+                }
+                iprot.readListEnd();
+              }
+              struct.setBatchQueueEmailSendersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -898,6 +1021,20 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
           oprot.writeFieldEnd();
         }
       }
+      if (struct.batchQueueEmailSenders != null) {
+        if (struct.isSetBatchQueueEmailSenders()) {
+          oprot.writeFieldBegin(BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.batchQueueEmailSenders.size()));
+            for (String _iter21 : struct.batchQueueEmailSenders)
+            {
+              oprot.writeString(_iter21);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -928,7 +1065,10 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       if (struct.isSetMonitorMode()) {
         optionals.set(2);
       }
-      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetBatchQueueEmailSenders()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
       if (struct.isSetAlternativeSSHHostName()) {
         oprot.writeString(struct.alternativeSSHHostName);
       }
@@ -938,6 +1078,15 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       if (struct.isSetMonitorMode()) {
         oprot.writeI32(struct.monitorMode.getValue());
       }
+      if (struct.isSetBatchQueueEmailSenders()) {
+        {
+          oprot.writeI32(struct.batchQueueEmailSenders.size());
+          for (String _iter22 : struct.batchQueueEmailSenders)
+          {
+            oprot.writeString(_iter22);
+          }
+        }
+      }
     }
 
     @Override
@@ -950,7 +1099,7 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
       struct.resourceJobManager = new ResourceJobManager();
       struct.resourceJobManager.read(iprot);
       struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(3);
+      BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
         struct.alternativeSSHHostName = iprot.readString();
         struct.setAlternativeSSHHostNameIsSet(true);
@@ -963,6 +1112,19 @@ public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmissio
         struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
         struct.setMonitorModeIsSet(true);
       }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.batchQueueEmailSenders = new ArrayList<String>(_list23.size);
+          String _elem24;
+          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          {
+            _elem24 = iprot.readString();
+            struct.batchQueueEmailSenders.add(_elem24);
+          }
+        }
+        struct.setBatchQueueEmailSendersIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
index 83eaff6..00cb55f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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/d84783da/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 5a9d438..fda3a15 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.2)", date = "2015-9-11")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-28")
 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");
 


[06/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 6455693..f274185 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
@@ -1609,6 +1609,13 @@ interface AiravataIf {
    * sshPort:
    *  If a non-default port needs to used, specify it.
    * 
+   * batchQueueEmailSenders:
+   *  If a resource always sends the monitoring from a specific address, specify the
+   *   full email address. If a resource sends emails from multiple addresses (
+   *    example: based on the submitted login node) then use the wildchar * to indicate
+   *    the same. Example: *@*.example.com or *@example.com
+   * 
+   * 
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
@@ -2257,13 +2264,15 @@ interface AiravataIf {
    * @return \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile Gateway Resource Profile
    * 
    * gatewayID:
-   *   Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+   *  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.
    * 
    * 
-   * 
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
@@ -2341,6 +2350,18 @@ interface AiravataIf {
    */
   public function addGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId, \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference $computeResourcePreference);
   /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayID
+   * @param string $dataMoveId
+   * @param \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function addGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference);
+  /**
    * Fetch a Compute Resource Preference of a registered gateway profile.
    * 
    * @param gatewayID
@@ -2384,6 +2405,10 @@ interface AiravataIf {
    *    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
@@ -2392,6 +2417,17 @@ interface AiravataIf {
    */
   public function getGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId);
   /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayID
+   * @param string $dataMoveId
+   * @return \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId);
+  /**
    * Fetch all Compute Resource Preferences of a registered gateway profile.
    * 
    * @param gatewayID
@@ -2411,6 +2447,16 @@ interface AiravataIf {
    */
   public function getAllGatewayComputeResourcePreferences(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID);
   /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayID
+   * @return \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference[]
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getAllGatewayDataStoragePreferences(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID);
+  /**
    * Fetch all gateway profiles registered
    * 
    * 
@@ -2450,6 +2496,18 @@ interface AiravataIf {
    */
   public function updateGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId, \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference $computeResourcePreference);
   /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayID
+   * @param string $dataMoveId
+   * @param \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function updateGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference);
+  /**
    * Delete the Compute Resource Preference of a registered gateway profile.
    * 
    * @param gatewayID
@@ -2474,6 +2532,17 @@ interface AiravataIf {
   public function deleteGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayID
+   * @param string $dataMoveId
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function deleteGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $gatewayId
    * @return string[]
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -9430,6 +9499,72 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("addGatewayComputeResourcePreference failed: unknown result");
   }
 
+  public function addGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference)
+  {
+    $this->send_addGatewayDataStoragePreference($authzToken, $gatewayID, $dataMoveId, $dataStoragePreference);
+    return $this->recv_addGatewayDataStoragePreference();
+  }
+
+  public function send_addGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference)
+  {
+    $args = new \Airavata\API\Airavata_addGatewayDataStoragePreference_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayID = $gatewayID;
+    $args->dataMoveId = $dataMoveId;
+    $args->dataStoragePreference = $dataStoragePreference;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'addGatewayDataStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('addGatewayDataStoragePreference', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_addGatewayDataStoragePreference()
+  {
+    $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_addGatewayDataStoragePreference_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_addGatewayDataStoragePreference_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("addGatewayDataStoragePreference failed: unknown result");
+  }
+
   public function getGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId)
   {
     $this->send_getGatewayComputeResourcePreference($authzToken, $gatewayID, $computeResourceId);
@@ -9495,6 +9630,71 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getGatewayComputeResourcePreference failed: unknown result");
   }
 
+  public function getGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId)
+  {
+    $this->send_getGatewayDataStoragePreference($authzToken, $gatewayID, $dataMoveId);
+    return $this->recv_getGatewayDataStoragePreference();
+  }
+
+  public function send_getGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId)
+  {
+    $args = new \Airavata\API\Airavata_getGatewayDataStoragePreference_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayID = $gatewayID;
+    $args->dataMoveId = $dataMoveId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getGatewayDataStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getGatewayDataStoragePreference', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getGatewayDataStoragePreference()
+  {
+    $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_getGatewayDataStoragePreference_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_getGatewayDataStoragePreference_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("getGatewayDataStoragePreference failed: unknown result");
+  }
+
   public function getAllGatewayComputeResourcePreferences(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID)
   {
     $this->send_getAllGatewayComputeResourcePreferences($authzToken, $gatewayID);
@@ -9559,6 +9759,70 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getAllGatewayComputeResourcePreferences failed: unknown result");
   }
 
+  public function getAllGatewayDataStoragePreferences(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID)
+  {
+    $this->send_getAllGatewayDataStoragePreferences($authzToken, $gatewayID);
+    return $this->recv_getAllGatewayDataStoragePreferences();
+  }
+
+  public function send_getAllGatewayDataStoragePreferences(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID)
+  {
+    $args = new \Airavata\API\Airavata_getAllGatewayDataStoragePreferences_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayID = $gatewayID;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAllGatewayDataStoragePreferences', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAllGatewayDataStoragePreferences', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAllGatewayDataStoragePreferences()
+  {
+    $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_getAllGatewayDataStoragePreferences_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_getAllGatewayDataStoragePreferences_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("getAllGatewayDataStoragePreferences failed: unknown result");
+  }
+
   public function getAllGatewayComputeResources(\Airavata\Model\Security\AuthzToken $authzToken)
   {
     $this->send_getAllGatewayComputeResources($authzToken);
@@ -9688,6 +9952,72 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("updateGatewayComputeResourcePreference failed: unknown result");
   }
 
+  public function updateGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference)
+  {
+    $this->send_updateGatewayDataStoragePreference($authzToken, $gatewayID, $dataMoveId, $dataStoragePreference);
+    return $this->recv_updateGatewayDataStoragePreference();
+  }
+
+  public function send_updateGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId, \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference $dataStoragePreference)
+  {
+    $args = new \Airavata\API\Airavata_updateGatewayDataStoragePreference_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayID = $gatewayID;
+    $args->dataMoveId = $dataMoveId;
+    $args->dataStoragePreference = $dataStoragePreference;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'updateGatewayDataStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('updateGatewayDataStoragePreference', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_updateGatewayDataStoragePreference()
+  {
+    $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_updateGatewayDataStoragePreference_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_updateGatewayDataStoragePreference_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("updateGatewayDataStoragePreference failed: unknown result");
+  }
+
   public function deleteGatewayComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $computeResourceId)
   {
     $this->send_deleteGatewayComputeResourcePreference($authzToken, $gatewayID, $computeResourceId);
@@ -9753,6 +10083,71 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("deleteGatewayComputeResourcePreference failed: unknown result");
   }
 
+  public function deleteGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId)
+  {
+    $this->send_deleteGatewayDataStoragePreference($authzToken, $gatewayID, $dataMoveId);
+    return $this->recv_deleteGatewayDataStoragePreference();
+  }
+
+  public function send_deleteGatewayDataStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $dataMoveId)
+  {
+    $args = new \Airavata\API\Airavata_deleteGatewayDataStoragePreference_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayID = $gatewayID;
+    $args->dataMoveId = $dataMoveId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'deleteGatewayDataStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('deleteGatewayDataStoragePreference', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_deleteGatewayDataStoragePreference()
+  {
+    $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_deleteGatewayDataStoragePreference_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_deleteGatewayDataStoragePreference_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("deleteGatewayDataStoragePreference failed: unknown result");
+  }
+
   public function getAllWorkflows(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
   {
     $this->send_getAllWorkflows($authzToken, $gatewayId);
@@ -42965,7 +43360,7 @@ class Airavata_addGatewayComputeResourcePreference_result {
 
 }
 
-class Airavata_getGatewayComputeResourcePreference_args {
+class Airavata_addGatewayDataStoragePreference_args {
   static $_TSPEC;
 
   /**
@@ -42979,7 +43374,11 @@ class Airavata_getGatewayComputeResourcePreference_args {
   /**
    * @var string
    */
-  public $computeResourceId = null;
+  public $dataMoveId = null;
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference
+   */
+  public $dataStoragePreference = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -42994,9 +43393,14 @@ class Airavata_getGatewayComputeResourcePreference_args {
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'computeResourceId',
+          'var' => 'dataMoveId',
           'type' => TType::STRING,
           ),
+        4 => array(
+          'var' => 'dataStoragePreference',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference',
+          ),
         );
     }
     if (is_array($vals)) {
@@ -43006,14 +43410,17 @@ class Airavata_getGatewayComputeResourcePreference_args {
       if (isset($vals['gatewayID'])) {
         $this->gatewayID = $vals['gatewayID'];
       }
-      if (isset($vals['computeResourceId'])) {
-        $this->computeResourceId = $vals['computeResourceId'];
+      if (isset($vals['dataMoveId'])) {
+        $this->dataMoveId = $vals['dataMoveId'];
+      }
+      if (isset($vals['dataStoragePreference'])) {
+        $this->dataStoragePreference = $vals['dataStoragePreference'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_getGatewayComputeResourcePreference_args';
+    return 'Airavata_addGatewayDataStoragePreference_args';
   }
 
   public function read($input)
@@ -43048,7 +43455,15 @@ class Airavata_getGatewayComputeResourcePreference_args {
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->computeResourceId);
+            $xfer += $input->readString($this->dataMoveId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->dataStoragePreference = new \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference();
+            $xfer += $this->dataStoragePreference->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -43065,7 +43480,7 @@ class Airavata_getGatewayComputeResourcePreference_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getGatewayComputeResourcePreference_args');
+    $xfer += $output->writeStructBegin('Airavata_addGatewayDataStoragePreference_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -43079,9 +43494,17 @@ class Airavata_getGatewayComputeResourcePreference_args {
       $xfer += $output->writeString($this->gatewayID);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->computeResourceId !== null) {
-      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 3);
-      $xfer += $output->writeString($this->computeResourceId);
+    if ($this->dataMoveId !== null) {
+      $xfer += $output->writeFieldBegin('dataMoveId', TType::STRING, 3);
+      $xfer += $output->writeString($this->dataMoveId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataStoragePreference !== null) {
+      if (!is_object($this->dataStoragePreference)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('dataStoragePreference', TType::STRUCT, 4);
+      $xfer += $this->dataStoragePreference->write($output);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -43091,11 +43514,11 @@ class Airavata_getGatewayComputeResourcePreference_args {
 
 }
 
-class Airavata_getGatewayComputeResourcePreference_result {
+class Airavata_addGatewayDataStoragePreference_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference
+   * @var bool
    */
   public $success = null;
   /**
@@ -43120,8 +43543,7 @@ class Airavata_getGatewayComputeResourcePreference_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference',
+          'type' => TType::BOOL,
           ),
         1 => array(
           'var' => 'ire',
@@ -43165,7 +43587,7 @@ class Airavata_getGatewayComputeResourcePreference_result {
   }
 
   public function getName() {
-    return 'Airavata_getGatewayComputeResourcePreference_result';
+    return 'Airavata_addGatewayDataStoragePreference_result';
   }
 
   public function read($input)
@@ -43184,9 +43606,8 @@ class Airavata_getGatewayComputeResourcePreference_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
-            $xfer += $this->success->read($input);
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -43235,13 +43656,10 @@ class Airavata_getGatewayComputeResourcePreference_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getGatewayComputeResourcePreference_result');
+    $xfer += $output->writeStructBegin('Airavata_addGatewayDataStoragePreference_result');
     if ($this->success !== null) {
-      if (!is_object($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
-      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -43271,7 +43689,7 @@ class Airavata_getGatewayComputeResourcePreference_result {
 
 }
 
-class Airavata_getAllGatewayComputeResourcePreferences_args {
+class Airavata_getGatewayComputeResourcePreference_args {
   static $_TSPEC;
 
   /**
@@ -43282,6 +43700,10 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
    * @var string
    */
   public $gatewayID = null;
+  /**
+   * @var string
+   */
+  public $computeResourceId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -43295,6 +43717,10 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
           'var' => 'gatewayID',
           'type' => TType::STRING,
           ),
+        3 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -43304,11 +43730,14 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
       if (isset($vals['gatewayID'])) {
         $this->gatewayID = $vals['gatewayID'];
       }
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
     }
   }
 
   public function getName() {
-    return 'Airavata_getAllGatewayComputeResourcePreferences_args';
+    return 'Airavata_getGatewayComputeResourcePreference_args';
   }
 
   public function read($input)
@@ -43341,6 +43770,13 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -43353,7 +43789,7 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResourcePreferences_args');
+    $xfer += $output->writeStructBegin('Airavata_getGatewayComputeResourcePreference_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -43367,6 +43803,11 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
       $xfer += $output->writeString($this->gatewayID);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 3);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -43374,11 +43815,11 @@ class Airavata_getAllGatewayComputeResourcePreferences_args {
 
 }
 
-class Airavata_getAllGatewayComputeResourcePreferences_result {
+class Airavata_getGatewayComputeResourcePreference_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference[]
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference
    */
   public $success = null;
   /**
@@ -43403,12 +43844,8 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference',
-            ),
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference',
           ),
         1 => array(
           'var' => 'ire',
@@ -43452,7 +43889,7 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
   }
 
   public function getName() {
-    return 'Airavata_getAllGatewayComputeResourcePreferences_result';
+    return 'Airavata_getGatewayComputeResourcePreference_result';
   }
 
   public function read($input)
@@ -43471,19 +43908,9 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::LST) {
-            $this->success = array();
-            $_size219 = 0;
-            $_etype222 = 0;
-            $xfer += $input->readListBegin($_etype222, $_size219);
-            for ($_i223 = 0; $_i223 < $_size219; ++$_i223)
-            {
-              $elem224 = null;
-              $elem224 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
-              $xfer += $elem224->read($input);
-              $this->success []= $elem224;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+            $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -43532,22 +43959,13 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResourcePreferences_result');
+    $xfer += $output->writeStructBegin('Airavata_getGatewayComputeResourcePreference_result');
     if ($this->success !== null) {
-      if (!is_array($this->success)) {
+      if (!is_object($this->success)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->success));
-        {
-          foreach ($this->success as $iter225)
-          {
-            $xfer += $iter225->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -43577,13 +43995,21 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
 
 }
 
-class Airavata_getAllGatewayComputeResources_args {
+class Airavata_getGatewayDataStoragePreference_args {
   static $_TSPEC;
 
   /**
    * @var \Airavata\Model\Security\AuthzToken
    */
   public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayID = null;
+  /**
+   * @var string
+   */
+  public $dataMoveId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -43593,17 +44019,31 @@ class Airavata_getAllGatewayComputeResources_args {
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
+        2 => array(
+          'var' => 'gatewayID',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'dataMoveId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
+      if (isset($vals['gatewayID'])) {
+        $this->gatewayID = $vals['gatewayID'];
+      }
+      if (isset($vals['dataMoveId'])) {
+        $this->dataMoveId = $vals['dataMoveId'];
+      }
     }
   }
 
   public function getName() {
-    return 'Airavata_getAllGatewayComputeResources_args';
+    return 'Airavata_getGatewayDataStoragePreference_args';
   }
 
   public function read($input)
@@ -43629,6 +44069,20 @@ class Airavata_getAllGatewayComputeResources_args {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayID);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dataMoveId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -43641,7 +44095,7 @@ class Airavata_getAllGatewayComputeResources_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResources_args');
+    $xfer += $output->writeStructBegin('Airavata_getGatewayDataStoragePreference_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -43650,6 +44104,16 @@ class Airavata_getAllGatewayComputeResources_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->gatewayID !== null) {
+      $xfer += $output->writeFieldBegin('gatewayID', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayID);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataMoveId !== null) {
+      $xfer += $output->writeFieldBegin('dataMoveId', TType::STRING, 3);
+      $xfer += $output->writeString($this->dataMoveId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -43657,11 +44121,11 @@ class Airavata_getAllGatewayComputeResources_args {
 
 }
 
-class Airavata_getAllGatewayComputeResources_result {
+class Airavata_getGatewayDataStoragePreference_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile[]
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference
    */
   public $success = null;
   /**
@@ -43686,12 +44150,8 @@ class Airavata_getAllGatewayComputeResources_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile',
-            ),
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference',
           ),
         1 => array(
           'var' => 'ire',
@@ -43735,7 +44195,7 @@ class Airavata_getAllGatewayComputeResources_result {
   }
 
   public function getName() {
-    return 'Airavata_getAllGatewayComputeResources_result';
+    return 'Airavata_getGatewayDataStoragePreference_result';
   }
 
   public function read($input)
@@ -43754,19 +44214,9 @@ class Airavata_getAllGatewayComputeResources_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::LST) {
-            $this->success = array();
-            $_size226 = 0;
-            $_etype229 = 0;
-            $xfer += $input->readListBegin($_etype229, $_size226);
-            for ($_i230 = 0; $_i230 < $_size226; ++$_i230)
-            {
-              $elem231 = null;
-              $elem231 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
-              $xfer += $elem231->read($input);
-              $this->success []= $elem231;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference();
+            $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -43815,22 +44265,908 @@ class Airavata_getAllGatewayComputeResources_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResources_result');
+    $xfer += $output->writeStructBegin('Airavata_getGatewayDataStoragePreference_result');
     if ($this->success !== null) {
-      if (!is_array($this->success)) {
+      if (!is_object($this->success)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->success));
-        {
-          foreach ($this->success as $iter232)
-          {
-            $xfer += $iter232->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayComputeResourcePreferences_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayID = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayID',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayID'])) {
+        $this->gatewayID = $vals['gatewayID'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayComputeResourcePreferences_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $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;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayID);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResourcePreferences_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();
+    }
+    if ($this->gatewayID !== null) {
+      $xfer += $output->writeFieldBegin('gatewayID', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayID);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayComputeResourcePreferences_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference[]
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference',
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayComputeResourcePreferences_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size219 = 0;
+            $_etype222 = 0;
+            $xfer += $input->readListBegin($_etype222, $_size219);
+            for ($_i223 = 0; $_i223 < $_size219; ++$_i223)
+            {
+              $elem224 = null;
+              $elem224 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+              $xfer += $elem224->read($input);
+              $this->success []= $elem224;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResourcePreferences_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->success));
+        {
+          foreach ($this->success as $iter225)
+          {
+            $xfer += $iter225->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayDataStoragePreferences_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayID = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayID',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayID'])) {
+        $this->gatewayID = $vals['gatewayID'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayDataStoragePreferences_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $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;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayID);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayDataStoragePreferences_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();
+    }
+    if ($this->gatewayID !== null) {
+      $xfer += $output->writeFieldBegin('gatewayID', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayID);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayDataStoragePreferences_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference[]
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference',
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayDataStoragePreferences_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size226 = 0;
+            $_etype229 = 0;
+            $xfer += $input->readListBegin($_etype229, $_size226);
+            for ($_i230 = 0; $_i230 < $_size226; ++$_i230)
+            {
+              $elem231 = null;
+              $elem231 = new \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference();
+              $xfer += $elem231->read($input);
+              $this->success []= $elem231;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayDataStoragePreferences_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->success));
+        {
+          foreach ($this->success as $iter232)
+          {
+            $xfer += $iter232->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayComputeResources_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+
+  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'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayComputeResources_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $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();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResources_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();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGatewayComputeResources_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile[]
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile',
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllGatewayComputeResources_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size233 = 0;
+            $_etype236 = 0;
+            $xfer += $input->readListBegin($_etype236, $_size233);
+            for ($_i237 = 0; $_i237 < $_size233; ++$_i237)
+            {
+              $elem238 = null;
+              $elem238 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
+              $xfer += $elem238->read($input);
+              $this->success []= $elem238;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllGatewayComputeResources_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->success));
+        {
+          foreach ($this->success as $iter239)
+          {
+            $xfer += $iter239->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -44189,6 +45525,335 @@ class Airavata_updateGatewayComputeResourcePreference_result {
 
 }
 
+class Airavata_updateGatewayDataStoragePreference_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayID = null;
+  /**
+   * @var string
+   */
+  public $dataMoveId = null;
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference
+   */
+  public $dataStoragePreference = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayID',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'dataMoveId',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'dataStoragePreference',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayID'])) {
+        $this->gatewayID = $vals['gatewayID'];
+      }
+      if (isset($vals['dataMoveId'])) {
+        $this->dataMoveId = $vals['dataMoveId'];
+      }
+      if (isset($vals['dataStoragePreference'])) {
+        $this->dataStoragePreference = $vals['dataStoragePreference'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateGatewayDataStoragePreference_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $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;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayID);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dataMoveId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->dataStoragePreference = new \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference();
+            $xfer += $this->dataStoragePreference->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateGatewayDataStoragePreference_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();
+    }
+    if ($this->gatewayID !== null) {
+      $xfer += $output->writeFieldBegin('gatewayID', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayID);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataMoveId !== null) {
+      $xfer += $output->writeFieldBegin('dataMoveId', TType::STRING, 3);
+      $xfer += $output->writeString($this->dataMoveId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataStoragePreference !== null) {
+      if (!is_object($this->dataStoragePreference)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('dataStoragePreference', TType::STRUCT, 4);
+      $xfer += $this->dataStoragePreference->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateGatewayDataStoragePreference_result {
+  static $_TSPEC;
+
+  /**
+   * @var bool
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateGatewayDataStoragePreference_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateGatewayDataStoragePreference_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class Airavata_deleteGatewayComputeResourcePreference_args {
   static $_TSPEC;
 
@@ -44490,6 +46155,307 @@ class Airavata_deleteGatewayComputeResourcePreference_result {
 
 }
 
+class Airavata_deleteGatewayDataStoragePreference_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayID = null;
+  /**
+   * @var string
+   */
+  public $dataMoveId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayID',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'dataMoveId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayID'])) {
+        $this->gatewayID = $vals['gatewayID'];
+      }
+      if (isset($vals['dataMoveId'])) {
+        $this->dataMoveId = $vals['dataMoveId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteGatewayDataStoragePreference_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $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;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayID);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dataMoveId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteGatewayDataStoragePreference_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();
+    }
+    if ($this->gatewayID !== null) {
+      $xfer += $output->writeFieldBegin('gatewayID', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayID);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataMoveId !== null) {
+      $xfer += $output->writeFieldBegin('dataMoveId', TType::STRING, 3);
+      $xfer += $output->writeString($this->dataMoveId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_deleteGatewayDataStoragePreference_result {
+  static $_TSPEC;
+
+  /**
+   * @var bool
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteGatewayDataStoragePreference_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteGatewayDataStoragePreference_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class Airavata_getAllWorkflows_args {
   static $_TSPEC;
 
@@ -44691,14 +46657,14 @@ class Airavata_getAllWorkflows_result {
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size233 = 0;
-            $_etype236 = 0;
-            $xfer += $input->readListBegin($_etype236, $_size233);
-            for ($_i237 = 0; $_i237 < $_size233; ++$_i237)
+            $_size240 = 0;
+            $_etype243 = 0;
+            $xfer += $input->readListBegin($_etype243, $_size240);
+            for ($_i244 = 0; $_i244 < $_size240; ++$_i244)
             {
-              $elem238 = null;
-              $xfer += $input->readString($elem238);
-              $this->success []= $elem238;
+              $elem245 = null;
+              $xfer += $input->readString($elem245);
+              $this->success []= $elem245;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -44758,9 +46724,9 @@ class Airavata_getAllWorkflows_result {
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter239)
+          foreach ($this->success as $iter246)
           {
-            $xfer += $output->writeString($iter239);
+            $xfer += $output->writeString($iter246);
           }
         }
         $output->writeListEnd();


[05/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index 6891a0d..e5bff2c 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -1332,6 +1332,13 @@ class LOCALDataMovement {
  * 
  * sshPort:
  *  If a non-default port needs to used, specify it.
+ * 
+ * batchQueueEmailSenders:
+ *  If a resource always sends the monitoring from a specific address, specify the
+ *   full email address. If a resource sends emails from multiple addresses (
+ *    example: based on the submitted login node) then use the wildchar * to indicate
+ *    the same. Example: *@*.example.com or *@example.com
+ * 
  */
 class SSHJobSubmission {
   static $_TSPEC;
@@ -1360,6 +1367,10 @@ class SSHJobSubmission {
    * @var int
    */
   public $monitorMode = null;
+  /**
+   * @var string[]
+   */
+  public $batchQueueEmailSenders = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -1389,6 +1400,14 @@ class SSHJobSubmission {
           'var' => 'monitorMode',
           'type' => TType::I32,
           ),
+        7 => array(
+          'var' => 'batchQueueEmailSenders',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -1410,6 +1429,9 @@ class SSHJobSubmission {
       if (isset($vals['monitorMode'])) {
         $this->monitorMode = $vals['monitorMode'];
       }
+      if (isset($vals['batchQueueEmailSenders'])) {
+        $this->batchQueueEmailSenders = $vals['batchQueueEmailSenders'];
+      }
     }
   }
 
@@ -1475,6 +1497,23 @@ class SSHJobSubmission {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 7:
+          if ($ftype == TType::LST) {
+            $this->batchQueueEmailSenders = array();
+            $_size16 = 0;
+            $_etype19 = 0;
+            $xfer += $input->readListBegin($_etype19, $_size16);
+            for ($_i20 = 0; $_i20 < $_size16; ++$_i20)
+            {
+              $elem21 = null;
+              $xfer += $input->readString($elem21);
+              $this->batchQueueEmailSenders []= $elem21;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -1521,6 +1560,23 @@ class SSHJobSubmission {
       $xfer += $output->writeI32($this->monitorMode);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->batchQueueEmailSenders !== null) {
+      if (!is_array($this->batchQueueEmailSenders)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('batchQueueEmailSenders', TType::LST, 7);
+      {
+        $output->writeListBegin(TType::STRING, count($this->batchQueueEmailSenders));
+        {
+          foreach ($this->batchQueueEmailSenders as $iter22)
+          {
+            $xfer += $output->writeString($iter22);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -1614,14 +1670,14 @@ class GlobusJobSubmission {
         case 3:
           if ($ftype == TType::LST) {
             $this->globusGateKeeperEndPoint = array();
-            $_size16 = 0;
-            $_etype19 = 0;
-            $xfer += $input->readListBegin($_etype19, $_size16);
-            for ($_i20 = 0; $_i20 < $_size16; ++$_i20)
+            $_size23 = 0;
+            $_etype26 = 0;
+            $xfer += $input->readListBegin($_etype26, $_size23);
+            for ($_i27 = 0; $_i27 < $_size23; ++$_i27)
             {
-              $elem21 = null;
-              $xfer += $input->readString($elem21);
-              $this->globusGateKeeperEndPoint []= $elem21;
+              $elem28 = null;
+              $xfer += $input->readString($elem28);
+              $this->globusGateKeeperEndPoint []= $elem28;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1659,9 +1715,9 @@ class GlobusJobSubmission {
       {
         $output->writeListBegin(TType::STRING, count($this->globusGateKeeperEndPoint));
         {
-          foreach ($this->globusGateKeeperEndPoint as $iter22)
+          foreach ($this->globusGateKeeperEndPoint as $iter29)
           {
-            $xfer += $output->writeString($iter22);
+            $xfer += $output->writeString($iter29);
           }
         }
         $output->writeListEnd();
@@ -2491,14 +2547,14 @@ class ComputeResourceDescription {
         case 3:
           if ($ftype == TType::LST) {
             $this->hostAliases = array();
-            $_size23 = 0;
-            $_etype26 = 0;
-            $xfer += $input->readListBegin($_etype26, $_size23);
-            for ($_i27 = 0; $_i27 < $_size23; ++$_i27)
+            $_size30 = 0;
+            $_etype33 = 0;
+            $xfer += $input->readListBegin($_etype33, $_size30);
+            for ($_i34 = 0; $_i34 < $_size30; ++$_i34)
             {
-              $elem28 = null;
-              $xfer += $input->readString($elem28);
-              $this->hostAliases []= $elem28;
+              $elem35 = null;
+              $xfer += $input->readString($elem35);
+              $this->hostAliases []= $elem35;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2508,14 +2564,14 @@ class ComputeResourceDescription {
         case 4:
           if ($ftype == TType::LST) {
             $this->ipAddresses = array();
-            $_size29 = 0;
-            $_etype32 = 0;
-            $xfer += $input->readListBegin($_etype32, $_size29);
-            for ($_i33 = 0; $_i33 < $_size29; ++$_i33)
+            $_size36 = 0;
+            $_etype39 = 0;
+            $xfer += $input->readListBegin($_etype39, $_size36);
+            for ($_i40 = 0; $_i40 < $_size36; ++$_i40)
             {
-              $elem34 = null;
-              $xfer += $input->readString($elem34);
-              $this->ipAddresses []= $elem34;
+              $elem41 = null;
+              $xfer += $input->readString($elem41);
+              $this->ipAddresses []= $elem41;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2539,15 +2595,15 @@ class ComputeResourceDescription {
         case 7:
           if ($ftype == TType::LST) {
             $this->batchQueues = array();
-            $_size35 = 0;
-            $_etype38 = 0;
-            $xfer += $input->readListBegin($_etype38, $_size35);
-            for ($_i39 = 0; $_i39 < $_size35; ++$_i39)
+            $_size42 = 0;
+            $_etype45 = 0;
+            $xfer += $input->readListBegin($_etype45, $_size42);
+            for ($_i46 = 0; $_i46 < $_size42; ++$_i46)
             {
-              $elem40 = null;
-              $elem40 = new \Airavata\Model\AppCatalog\ComputeResource\BatchQueue();
-              $xfer += $elem40->read($input);
-              $this->batchQueues []= $elem40;
+              $elem47 = null;
+              $elem47 = new \Airavata\Model\AppCatalog\ComputeResource\BatchQueue();
+              $xfer += $elem47->read($input);
+              $this->batchQueues []= $elem47;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2557,17 +2613,17 @@ class ComputeResourceDescription {
         case 8:
           if ($ftype == TType::MAP) {
             $this->fileSystems = array();
-            $_size41 = 0;
-            $_ktype42 = 0;
-            $_vtype43 = 0;
-            $xfer += $input->readMapBegin($_ktype42, $_vtype43, $_size41);
-            for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
+            $_size48 = 0;
+            $_ktype49 = 0;
+            $_vtype50 = 0;
+            $xfer += $input->readMapBegin($_ktype49, $_vtype50, $_size48);
+            for ($_i52 = 0; $_i52 < $_size48; ++$_i52)
             {
-              $key46 = 0;
-              $val47 = '';
-              $xfer += $input->readI32($key46);
-              $xfer += $input->readString($val47);
-              $this->fileSystems[$key46] = $val47;
+              $key53 = 0;
+              $val54 = '';
+              $xfer += $input->readI32($key53);
+              $xfer += $input->readString($val54);
+              $this->fileSystems[$key53] = $val54;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -2577,15 +2633,15 @@ class ComputeResourceDescription {
         case 9:
           if ($ftype == TType::LST) {
             $this->jobSubmissionInterfaces = array();
-            $_size48 = 0;
-            $_etype51 = 0;
-            $xfer += $input->readListBegin($_etype51, $_size48);
-            for ($_i52 = 0; $_i52 < $_size48; ++$_i52)
+            $_size55 = 0;
+            $_etype58 = 0;
+            $xfer += $input->readListBegin($_etype58, $_size55);
+            for ($_i59 = 0; $_i59 < $_size55; ++$_i59)
             {
-              $elem53 = null;
-              $elem53 = new \Airavata\Model\AppCatalog\ComputeResource\JobSubmissionInterface();
-              $xfer += $elem53->read($input);
-              $this->jobSubmissionInterfaces []= $elem53;
+              $elem60 = null;
+              $elem60 = new \Airavata\Model\AppCatalog\ComputeResource\JobSubmissionInterface();
+              $xfer += $elem60->read($input);
+              $this->jobSubmissionInterfaces []= $elem60;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2595,15 +2651,15 @@ class ComputeResourceDescription {
         case 10:
           if ($ftype == TType::LST) {
             $this->dataMovementInterfaces = array();
-            $_size54 = 0;
-            $_etype57 = 0;
-            $xfer += $input->readListBegin($_etype57, $_size54);
-            for ($_i58 = 0; $_i58 < $_size54; ++$_i58)
+            $_size61 = 0;
+            $_etype64 = 0;
+            $xfer += $input->readListBegin($_etype64, $_size61);
+            for ($_i65 = 0; $_i65 < $_size61; ++$_i65)
             {
-              $elem59 = null;
-              $elem59 = new \Airavata\Model\AppCatalog\ComputeResource\DataMovementInterface();
-              $xfer += $elem59->read($input);
-              $this->dataMovementInterfaces []= $elem59;
+              $elem66 = null;
+              $elem66 = new \Airavata\Model\AppCatalog\ComputeResource\DataMovementInterface();
+              $xfer += $elem66->read($input);
+              $this->dataMovementInterfaces []= $elem66;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2648,9 +2704,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRING, count($this->hostAliases));
         {
-          foreach ($this->hostAliases as $iter60)
+          foreach ($this->hostAliases as $iter67)
           {
-            $xfer += $output->writeString($iter60);
+            $xfer += $output->writeString($iter67);
           }
         }
         $output->writeListEnd();
@@ -2665,9 +2721,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRING, count($this->ipAddresses));
         {
-          foreach ($this->ipAddresses as $iter61)
+          foreach ($this->ipAddresses as $iter68)
           {
-            $xfer += $output->writeString($iter61);
+            $xfer += $output->writeString($iter68);
           }
         }
         $output->writeListEnd();
@@ -2692,9 +2748,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->batchQueues));
         {
-          foreach ($this->batchQueues as $iter62)
+          foreach ($this->batchQueues as $iter69)
           {
-            $xfer += $iter62->write($output);
+            $xfer += $iter69->write($output);
           }
         }
         $output->writeListEnd();
@@ -2709,10 +2765,10 @@ class ComputeResourceDescription {
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->fileSystems));
         {
-          foreach ($this->fileSystems as $kiter63 => $viter64)
+          foreach ($this->fileSystems as $kiter70 => $viter71)
           {
-            $xfer += $output->writeI32($kiter63);
-            $xfer += $output->writeString($viter64);
+            $xfer += $output->writeI32($kiter70);
+            $xfer += $output->writeString($viter71);
           }
         }
         $output->writeMapEnd();
@@ -2727,9 +2783,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->jobSubmissionInterfaces));
         {
-          foreach ($this->jobSubmissionInterfaces as $iter65)
+          foreach ($this->jobSubmissionInterfaces as $iter72)
           {
-            $xfer += $iter65->write($output);
+            $xfer += $iter72->write($output);
           }
         }
         $output->writeListEnd();
@@ -2744,9 +2800,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->dataMovementInterfaces));
         {
-          foreach ($this->dataMovementInterfaces as $iter66)
+          foreach ($this->dataMovementInterfaces as $iter73)
           {
-            $xfer += $iter66->write($output);
+            $xfer += $iter73->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
index a94dd88..f63f2f0 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
@@ -46,6 +46,10 @@ use Thrift\Exception\TApplicationException;
  *    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.
+ * 
  */
 class ComputeResourcePreference {
   static $_TSPEC;
@@ -82,6 +86,10 @@ class ComputeResourcePreference {
    * @var string
    */
   public $allocationProjectNumber = null;
+  /**
+   * @var string
+   */
+  public $resourceSpecificCredentialStoreToken = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -118,6 +126,10 @@ class ComputeResourcePreference {
           'var' => 'allocationProjectNumber',
           'type' => TType::STRING,
           ),
+        9 => array(
+          'var' => 'resourceSpecificCredentialStoreToken',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -145,6 +157,9 @@ class ComputeResourcePreference {
       if (isset($vals['allocationProjectNumber'])) {
         $this->allocationProjectNumber = $vals['allocationProjectNumber'];
       }
+      if (isset($vals['resourceSpecificCredentialStoreToken'])) {
+        $this->resourceSpecificCredentialStoreToken = $vals['resourceSpecificCredentialStoreToken'];
+      }
     }
   }
 
@@ -223,6 +238,13 @@ class ComputeResourcePreference {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceSpecificCredentialStoreToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -276,6 +298,155 @@ class ComputeResourcePreference {
       $xfer += $output->writeString($this->allocationProjectNumber);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->resourceSpecificCredentialStoreToken !== null) {
+      $xfer += $output->writeFieldBegin('resourceSpecificCredentialStoreToken', TType::STRING, 9);
+      $xfer += $output->writeString($this->resourceSpecificCredentialStoreToken);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DataStoragePreference {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $dataMovememtResourceId = null;
+  /**
+   * @var string
+   */
+  public $loginUserName = null;
+  /**
+   * @var string
+   */
+  public $fileSystemRootLocation = null;
+  /**
+   * @var string
+   */
+  public $resourceSpecificCredentialStoreToken = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'dataMovememtResourceId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'loginUserName',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'fileSystemRootLocation',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'resourceSpecificCredentialStoreToken',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['dataMovememtResourceId'])) {
+        $this->dataMovememtResourceId = $vals['dataMovememtResourceId'];
+      }
+      if (isset($vals['loginUserName'])) {
+        $this->loginUserName = $vals['loginUserName'];
+      }
+      if (isset($vals['fileSystemRootLocation'])) {
+        $this->fileSystemRootLocation = $vals['fileSystemRootLocation'];
+      }
+      if (isset($vals['resourceSpecificCredentialStoreToken'])) {
+        $this->resourceSpecificCredentialStoreToken = $vals['resourceSpecificCredentialStoreToken'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DataStoragePreference';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dataMovememtResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->loginUserName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fileSystemRootLocation);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceSpecificCredentialStoreToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('DataStoragePreference');
+    if ($this->dataMovememtResourceId !== null) {
+      $xfer += $output->writeFieldBegin('dataMovememtResourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->dataMovememtResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->loginUserName !== null) {
+      $xfer += $output->writeFieldBegin('loginUserName', TType::STRING, 2);
+      $xfer += $output->writeString($this->loginUserName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileSystemRootLocation !== null) {
+      $xfer += $output->writeFieldBegin('fileSystemRootLocation', TType::STRING, 3);
+      $xfer += $output->writeString($this->fileSystemRootLocation);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->resourceSpecificCredentialStoreToken !== null) {
+      $xfer += $output->writeFieldBegin('resourceSpecificCredentialStoreToken', TType::STRING, 4);
+      $xfer += $output->writeString($this->resourceSpecificCredentialStoreToken);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -287,12 +458,14 @@ class ComputeResourcePreference {
  * Gateway Resource Profile
  * 
  * gatewayID:
- *   Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+ *  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.
  * 
- * 
  */
 class GatewayResourceProfile {
   static $_TSPEC;
@@ -302,9 +475,17 @@ class GatewayResourceProfile {
    */
   public $gatewayID = null;
   /**
+   * @var string
+   */
+  public $credentialStoreToken = null;
+  /**
    * @var \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference[]
    */
   public $computeResourcePreferences = null;
+  /**
+   * @var \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference[]
+   */
+  public $dataStoragePreferences = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -314,6 +495,10 @@ class GatewayResourceProfile {
           'type' => TType::STRING,
           ),
         2 => array(
+          'var' => 'credentialStoreToken',
+          'type' => TType::STRING,
+          ),
+        3 => array(
           'var' => 'computeResourcePreferences',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -322,15 +507,30 @@ class GatewayResourceProfile {
             'class' => '\Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference',
             ),
           ),
+        4 => array(
+          'var' => 'dataStoragePreferences',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['gatewayID'])) {
         $this->gatewayID = $vals['gatewayID'];
       }
+      if (isset($vals['credentialStoreToken'])) {
+        $this->credentialStoreToken = $vals['credentialStoreToken'];
+      }
       if (isset($vals['computeResourcePreferences'])) {
         $this->computeResourcePreferences = $vals['computeResourcePreferences'];
       }
+      if (isset($vals['dataStoragePreferences'])) {
+        $this->dataStoragePreferences = $vals['dataStoragePreferences'];
+      }
     }
   }
 
@@ -361,6 +561,13 @@ class GatewayResourceProfile {
           }
           break;
         case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->credentialStoreToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
           if ($ftype == TType::LST) {
             $this->computeResourcePreferences = array();
             $_size0 = 0;
@@ -378,6 +585,24 @@ class GatewayResourceProfile {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 4:
+          if ($ftype == TType::LST) {
+            $this->dataStoragePreferences = array();
+            $_size6 = 0;
+            $_etype9 = 0;
+            $xfer += $input->readListBegin($_etype9, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            {
+              $elem11 = null;
+              $elem11 = new \Airavata\Model\AppCatalog\GatewayProfile\DataStoragePreference();
+              $xfer += $elem11->read($input);
+              $this->dataStoragePreferences []= $elem11;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -396,17 +621,39 @@ class GatewayResourceProfile {
       $xfer += $output->writeString($this->gatewayID);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->credentialStoreToken !== null) {
+      $xfer += $output->writeFieldBegin('credentialStoreToken', TType::STRING, 2);
+      $xfer += $output->writeString($this->credentialStoreToken);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->computeResourcePreferences !== null) {
       if (!is_array($this->computeResourcePreferences)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('computeResourcePreferences', TType::LST, 2);
+      $xfer += $output->writeFieldBegin('computeResourcePreferences', TType::LST, 3);
       {
         $output->writeListBegin(TType::STRUCT, count($this->computeResourcePreferences));
         {
-          foreach ($this->computeResourcePreferences as $iter6)
+          foreach ($this->computeResourcePreferences as $iter12)
+          {
+            $xfer += $iter12->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataStoragePreferences !== null) {
+      if (!is_array($this->dataStoragePreferences)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('dataStoragePreferences', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->dataStoragePreferences));
+        {
+          foreach ($this->dataStoragePreferences as $iter13)
           {
-            $xfer += $iter6->write($output);
+            $xfer += $iter13->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 1cb2251..0acd73a 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
@@ -130,11 +130,16 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  bool updateGatewayResourceProfile(AuthzToken authzToken, string gatewayID, GatewayResourceProfile gatewayResourceProfile)')
   print('  bool deleteGatewayResourceProfile(AuthzToken authzToken, string gatewayID)')
   print('  bool addGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+  print('  bool addGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId, DataStoragePreference dataStoragePreference)')
   print('  ComputeResourcePreference getGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+  print('  DataStoragePreference getGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId)')
   print('   getAllGatewayComputeResourcePreferences(AuthzToken authzToken, string gatewayID)')
+  print('   getAllGatewayDataStoragePreferences(AuthzToken authzToken, string gatewayID)')
   print('   getAllGatewayComputeResources(AuthzToken authzToken)')
   print('  bool updateGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+  print('  bool updateGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId, DataStoragePreference dataStoragePreference)')
   print('  bool deleteGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+  print('  bool deleteGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId)')
   print('   getAllWorkflows(AuthzToken authzToken, string gatewayId)')
   print('  Workflow getWorkflow(AuthzToken authzToken, string workflowTemplateId)')
   print('  void deleteWorkflow(AuthzToken authzToken, string workflowTemplateId)')
@@ -834,18 +839,36 @@ elif cmd == 'addGatewayComputeResourcePreference':
     sys.exit(1)
   pp.pprint(client.addGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
 
+elif cmd == 'addGatewayDataStoragePreference':
+  if len(args) != 4:
+    print('addGatewayDataStoragePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.addGatewayDataStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
 elif cmd == 'getGatewayComputeResourcePreference':
   if len(args) != 3:
     print('getGatewayComputeResourcePreference requires 3 args')
     sys.exit(1)
   pp.pprint(client.getGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
 
+elif cmd == 'getGatewayDataStoragePreference':
+  if len(args) != 3:
+    print('getGatewayDataStoragePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getGatewayDataStoragePreference(eval(args[0]),args[1],args[2],))
+
 elif cmd == 'getAllGatewayComputeResourcePreferences':
   if len(args) != 2:
     print('getAllGatewayComputeResourcePreferences requires 2 args')
     sys.exit(1)
   pp.pprint(client.getAllGatewayComputeResourcePreferences(eval(args[0]),args[1],))
 
+elif cmd == 'getAllGatewayDataStoragePreferences':
+  if len(args) != 2:
+    print('getAllGatewayDataStoragePreferences requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.getAllGatewayDataStoragePreferences(eval(args[0]),args[1],))
+
 elif cmd == 'getAllGatewayComputeResources':
   if len(args) != 1:
     print('getAllGatewayComputeResources requires 1 args')
@@ -858,12 +881,24 @@ elif cmd == 'updateGatewayComputeResourcePreference':
     sys.exit(1)
   pp.pprint(client.updateGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
 
+elif cmd == 'updateGatewayDataStoragePreference':
+  if len(args) != 4:
+    print('updateGatewayDataStoragePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.updateGatewayDataStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
 elif cmd == 'deleteGatewayComputeResourcePreference':
   if len(args) != 3:
     print('deleteGatewayComputeResourcePreference requires 3 args')
     sys.exit(1)
   pp.pprint(client.deleteGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
 
+elif cmd == 'deleteGatewayDataStoragePreference':
+  if len(args) != 3:
+    print('deleteGatewayDataStoragePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.deleteGatewayDataStoragePreference(eval(args[0]),args[1],args[2],))
+
 elif cmd == 'getAllWorkflows':
   if len(args) != 2:
     print('getAllWorkflows requires 2 args')


[08/11] airavata git commit: data storage preference related changes to app catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/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 a3077d8..7e2afb4 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
@@ -1621,6 +1621,7 @@ class AiravataIf {
    * @param computeResourcePreference
    */
   virtual bool addGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+  virtual bool addGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& dataStoragePreference) = 0;
 
   /**
    * Fetch a Compute Resource Preference of a registered gateway profile.
@@ -1640,6 +1641,7 @@ class AiravataIf {
    * @param computeResourceId
    */
   virtual void getGatewayComputeResourcePreference( ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId) = 0;
+  virtual void getGatewayDataStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId) = 0;
 
   /**
    * Fetch all Compute Resource Preferences of a registered gateway profile.
@@ -1655,6 +1657,7 @@ class AiravataIf {
    * @param gatewayID
    */
   virtual void getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID) = 0;
+  virtual void getAllGatewayDataStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID) = 0;
 
   /**
    * Fetch all gateway profiles registered
@@ -1686,6 +1689,7 @@ class AiravataIf {
    * @param computeResourcePreference
    */
   virtual bool updateGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+  virtual bool updateGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& dataStoragePreference) = 0;
 
   /**
    * Delete the Compute Resource Preference of a registered gateway profile.
@@ -1705,6 +1709,7 @@ class AiravataIf {
    * @param computeResourceId
    */
   virtual bool deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId) = 0;
+  virtual bool deleteGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& dataMoveId) = 0;
   virtual void getAllWorkflows(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0;
   virtual void getWorkflow( ::Workflow& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId) = 0;
   virtual void deleteWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId) = 0;
@@ -2091,12 +2096,22 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
+  bool addGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* dataMoveId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& /* dataStoragePreference */) {
+    bool _return = false;
+    return _return;
+  }
   void getGatewayComputeResourcePreference( ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
     return;
   }
+  void getGatewayDataStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* dataMoveId */) {
+    return;
+  }
   void getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */) {
     return;
   }
+  void getAllGatewayDataStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */) {
+    return;
+  }
   void getAllGatewayComputeResources(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */) {
     return;
   }
@@ -2104,10 +2119,18 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
+  bool updateGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* dataMoveId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& /* dataStoragePreference */) {
+    bool _return = false;
+    return _return;
+  }
   bool deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
     bool _return = false;
     return _return;
   }
+  bool deleteGatewayDataStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayID */, const std::string& /* dataMoveId */) {
+    bool _return = false;
+    return _return;
+  }
   void getAllWorkflows(std::vector<std::string> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */) {
     return;
   }
@@ -12856,8 +12879,8 @@ class Airavata_getLocalJobSubmission_presult {
 class Airavata_addSSHJobSubmissionDetails_args {
  public:
 
-  static const char* ascii_fingerprint; // = "739C379FFFDF31048FBFCFE69A609387";
-  static const uint8_t binary_fingerprint[16]; // = {0x73,0x9C,0x37,0x9F,0xFF,0xDF,0x31,0x04,0x8F,0xBF,0xCF,0xE6,0x9A,0x60,0x93,0x87};
+  static const char* ascii_fingerprint; // = "4B55D72AF1A3B39AA96C6A5A2A0631A3";
+  static const uint8_t binary_fingerprint[16]; // = {0x4B,0x55,0xD7,0x2A,0xF1,0xA3,0xB3,0x9A,0xA9,0x6C,0x6A,0x5A,0x2A,0x06,0x31,0xA3};
 
   Airavata_addSSHJobSubmissionDetails_args(const Airavata_addSSHJobSubmissionDetails_args&);
   Airavata_addSSHJobSubmissionDetails_args& operator=(const Airavata_addSSHJobSubmissionDetails_args&);
@@ -12906,8 +12929,8 @@ class Airavata_addSSHJobSubmissionDetails_args {
 class Airavata_addSSHJobSubmissionDetails_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "739C379FFFDF31048FBFCFE69A609387";
-  static const uint8_t binary_fingerprint[16]; // = {0x73,0x9C,0x37,0x9F,0xFF,0xDF,0x31,0x04,0x8F,0xBF,0xCF,0xE6,0x9A,0x60,0x93,0x87};
+  static const char* ascii_fingerprint; // = "4B55D72AF1A3B39AA96C6A5A2A0631A3";
+  static const uint8_t binary_fingerprint[16]; // = {0x4B,0x55,0xD7,0x2A,0xF1,0xA3,0xB3,0x9A,0xA9,0x6C,0x6A,0x5A,0x2A,0x06,0x31,0xA3};
 
 
   virtual ~Airavata_addSSHJobSubmissionDetails_pargs() throw();
@@ -13020,8 +13043,8 @@ class Airavata_addSSHJobSubmissionDetails_presult {
 class Airavata_addSSHForkJobSubmissionDetails_args {
  public:
 
-  static const char* ascii_fingerprint; // = "739C379FFFDF31048FBFCFE69A609387";
-  static const uint8_t binary_fingerprint[16]; // = {0x73,0x9C,0x37,0x9F,0xFF,0xDF,0x31,0x04,0x8F,0xBF,0xCF,0xE6,0x9A,0x60,0x93,0x87};
+  static const char* ascii_fingerprint; // = "4B55D72AF1A3B39AA96C6A5A2A0631A3";
+  static const uint8_t binary_fingerprint[16]; // = {0x4B,0x55,0xD7,0x2A,0xF1,0xA3,0xB3,0x9A,0xA9,0x6C,0x6A,0x5A,0x2A,0x06,0x31,0xA3};
 
   Airavata_addSSHForkJobSubmissionDetails_args(const Airavata_addSSHForkJobSubmissionDetails_args&);
   Airavata_addSSHForkJobSubmissionDetails_args& operator=(const Airavata_addSSHForkJobSubmissionDetails_args&);
@@ -13070,8 +13093,8 @@ class Airavata_addSSHForkJobSubmissionDetails_args {
 class Airavata_addSSHForkJobSubmissionDetails_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "739C379FFFDF31048FBFCFE69A609387";
-  static const uint8_t binary_fingerprint[16]; // = {0x73,0x9C,0x37,0x9F,0xFF,0xDF,0x31,0x04,0x8F,0xBF,0xCF,0xE6,0x9A,0x60,0x93,0x87};
+  static const char* ascii_fingerprint; // = "4B55D72AF1A3B39AA96C6A5A2A0631A3";
+  static const uint8_t binary_fingerprint[16]; // = {0x4B,0x55,0xD7,0x2A,0xF1,0xA3,0xB3,0x9A,0xA9,0x6C,0x6A,0x5A,0x2A,0x06,0x31,0xA3};
 
 
   virtual ~Airavata_addSSHForkJobSubmissionDetails_pargs() throw();
@@ -13249,8 +13272,8 @@ typedef struct _Airavata_getSSHJobSubmission_result__isset {
 class Airavata_getSSHJobSubmission_result {
  public:
 
-  static const char* ascii_fingerprint; // = "5C923F24AFC1B85BD0C2EE7C7ED472A9";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x92,0x3F,0x24,0xAF,0xC1,0xB8,0x5B,0xD0,0xC2,0xEE,0x7C,0x7E,0xD4,0x72,0xA9};
+  static const char* ascii_fingerprint; // = "554A4D680F2B5931492F04B6D3E6E4B6";
+  static const uint8_t binary_fingerprint[16]; // = {0x55,0x4A,0x4D,0x68,0x0F,0x2B,0x59,0x31,0x49,0x2F,0x04,0xB6,0xD3,0xE6,0xE4,0xB6};
 
   Airavata_getSSHJobSubmission_result(const Airavata_getSSHJobSubmission_result&);
   Airavata_getSSHJobSubmission_result& operator=(const Airavata_getSSHJobSubmission_result&);
@@ -13314,8 +13337,8 @@ typedef struct _Airavata_getSSHJobSubmission_presult__isset {
 class Airavata_getSSHJobSubmission_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "5C923F24AFC1B85BD0C2EE7C7ED472A9";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x92,0x3F,0x24,0xAF,0xC1,0xB8,0x5B,0xD0,0xC2,0xEE,0x7C,0x7E,0xD4,0x72,0xA9};
+  static const char* ascii_fingerprint; // = "554A4D680F2B5931492F04B6D3E6E4B6";
+  static const uint8_t binary_fingerprint[16]; // = {0x55,0x4A,0x4D,0x68,0x0F,0x2B,0x59,0x31,0x49,0x2F,0x04,0xB6,0xD3,0xE6,0xE4,0xB6};
 
 
   virtual ~Airavata_getSSHJobSubmission_presult() throw();
@@ -13968,8 +13991,8 @@ class Airavata_getCloudJobSubmission_presult {
 class Airavata_updateSSHJobSubmissionDetails_args {
  public:
 
-  static const char* ascii_fingerprint; // = "7B82A49DCB2CC2C937B6B8EF4B3D9D9C";
-  static const uint8_t binary_fingerprint[16]; // = {0x7B,0x82,0xA4,0x9D,0xCB,0x2C,0xC2,0xC9,0x37,0xB6,0xB8,0xEF,0x4B,0x3D,0x9D,0x9C};
+  static const char* ascii_fingerprint; // = "320069281A7181AB5403DF92A9306246";
+  static const uint8_t binary_fingerprint[16]; // = {0x32,0x00,0x69,0x28,0x1A,0x71,0x81,0xAB,0x54,0x03,0xDF,0x92,0xA9,0x30,0x62,0x46};
 
   Airavata_updateSSHJobSubmissionDetails_args(const Airavata_updateSSHJobSubmissionDetails_args&);
   Airavata_updateSSHJobSubmissionDetails_args& operator=(const Airavata_updateSSHJobSubmissionDetails_args&);
@@ -14013,8 +14036,8 @@ class Airavata_updateSSHJobSubmissionDetails_args {
 class Airavata_updateSSHJobSubmissionDetails_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "7B82A49DCB2CC2C937B6B8EF4B3D9D9C";
-  static const uint8_t binary_fingerprint[16]; // = {0x7B,0x82,0xA4,0x9D,0xCB,0x2C,0xC2,0xC9,0x37,0xB6,0xB8,0xEF,0x4B,0x3D,0x9D,0x9C};
+  static const char* ascii_fingerprint; // = "320069281A7181AB5403DF92A9306246";
+  static const uint8_t binary_fingerprint[16]; // = {0x32,0x00,0x69,0x28,0x1A,0x71,0x81,0xAB,0x54,0x03,0xDF,0x92,0xA9,0x30,0x62,0x46};
 
 
   virtual ~Airavata_updateSSHJobSubmissionDetails_pargs() throw();
@@ -18046,8 +18069,8 @@ class Airavata_deleteBatchQueue_presult {
 class Airavata_registerGatewayResourceProfile_args {
  public:
 
-  static const char* ascii_fingerprint; // = "CA71CD4CA695550416FDEF33C7F367F8";
-  static const uint8_t binary_fingerprint[16]; // = {0xCA,0x71,0xCD,0x4C,0xA6,0x95,0x55,0x04,0x16,0xFD,0xEF,0x33,0xC7,0xF3,0x67,0xF8};
+  static const char* ascii_fingerprint; // = "1FB1A3296BE8D5645CC8A3903C0A6C79";
+  static const uint8_t binary_fingerprint[16]; // = {0x1F,0xB1,0xA3,0x29,0x6B,0xE8,0xD5,0x64,0x5C,0xC8,0xA3,0x90,0x3C,0x0A,0x6C,0x79};
 
   Airavata_registerGatewayResourceProfile_args(const Airavata_registerGatewayResourceProfile_args&);
   Airavata_registerGatewayResourceProfile_args& operator=(const Airavata_registerGatewayResourceProfile_args&);
@@ -18086,8 +18109,8 @@ class Airavata_registerGatewayResourceProfile_args {
 class Airavata_registerGatewayResourceProfile_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "CA71CD4CA695550416FDEF33C7F367F8";
-  static const uint8_t binary_fingerprint[16]; // = {0xCA,0x71,0xCD,0x4C,0xA6,0x95,0x55,0x04,0x16,0xFD,0xEF,0x33,0xC7,0xF3,0x67,0xF8};
+  static const char* ascii_fingerprint; // = "1FB1A3296BE8D5645CC8A3903C0A6C79";
+  static const uint8_t binary_fingerprint[16]; // = {0x1F,0xB1,0xA3,0x29,0x6B,0xE8,0xD5,0x64,0x5C,0xC8,0xA3,0x90,0x3C,0x0A,0x6C,0x79};
 
 
   virtual ~Airavata_registerGatewayResourceProfile_pargs() throw();
@@ -18263,8 +18286,8 @@ typedef struct _Airavata_getGatewayResourceProfile_result__isset {
 class Airavata_getGatewayResourceProfile_result {
  public:
 
-  static const char* ascii_fingerprint; // = "7E1845834AC9B22AB0CA117EF31B3760";
-  static const uint8_t binary_fingerprint[16]; // = {0x7E,0x18,0x45,0x83,0x4A,0xC9,0xB2,0x2A,0xB0,0xCA,0x11,0x7E,0xF3,0x1B,0x37,0x60};
+  static const char* ascii_fingerprint; // = "0B5B802A477CC941D8C04C7A4E80FEBB";
+  static const uint8_t binary_fingerprint[16]; // = {0x0B,0x5B,0x80,0x2A,0x47,0x7C,0xC9,0x41,0xD8,0xC0,0x4C,0x7A,0x4E,0x80,0xFE,0xBB};
 
   Airavata_getGatewayResourceProfile_result(const Airavata_getGatewayResourceProfile_result&);
   Airavata_getGatewayResourceProfile_result& operator=(const Airavata_getGatewayResourceProfile_result&);
@@ -18328,8 +18351,8 @@ typedef struct _Airavata_getGatewayResourceProfile_presult__isset {
 class Airavata_getGatewayResourceProfile_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "7E1845834AC9B22AB0CA117EF31B3760";
-  static const uint8_t binary_fingerprint[16]; // = {0x7E,0x18,0x45,0x83,0x4A,0xC9,0xB2,0x2A,0xB0,0xCA,0x11,0x7E,0xF3,0x1B,0x37,0x60};
+  static const char* ascii_fingerprint; // = "0B5B802A477CC941D8C04C7A4E80FEBB";
+  static const uint8_t binary_fingerprint[16]; // = {0x0B,0x5B,0x80,0x2A,0x47,0x7C,0xC9,0x41,0xD8,0xC0,0x4C,0x7A,0x4E,0x80,0xFE,0xBB};
 
 
   virtual ~Airavata_getGatewayResourceProfile_presult() throw();
@@ -18350,8 +18373,8 @@ class Airavata_getGatewayResourceProfile_presult {
 class Airavata_updateGatewayResourceProfile_args {
  public:
 
-  static const char* ascii_fingerprint; // = "4966B70537CD573938DBA923245910CF";
-  static const uint8_t binary_fingerprint[16]; // = {0x49,0x66,0xB7,0x05,0x37,0xCD,0x57,0x39,0x38,0xDB,0xA9,0x23,0x24,0x59,0x10,0xCF};
+  static const char* ascii_fingerprint; // = "4A59189B36D11C49633BA2F74222F93A";
+  static const uint8_t binary_fingerprint[16]; // = {0x4A,0x59,0x18,0x9B,0x36,0xD1,0x1C,0x49,0x63,0x3B,0xA2,0xF7,0x42,0x22,0xF9,0x3A};
 
   Airavata_updateGatewayResourceProfile_args(const Airavata_updateGatewayResourceProfile_args&);
   Airavata_updateGatewayResourceProfile_args& operator=(const Airavata_updateGatewayResourceProfile_args&);
@@ -18395,8 +18418,8 @@ class Airavata_updateGatewayResourceProfile_args {
 class Airavata_updateGatewayResourceProfile_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "4966B70537CD573938DBA923245910CF";
-  static const uint8_t binary_fingerprint[16]; // = {0x49,0x66,0xB7,0x05,0x37,0xCD,0x57,0x39,0x38,0xDB,0xA9,0x23,0x24,0x59,0x10,0xCF};
+  static const char* ascii_fingerprint; // = "4A59189B36D11C49633BA2F74222F93A";
+  static const uint8_t binary_fingerprint[16]; // = {0x4A,0x59,0x18,0x9B,0x36,0xD1,0x1C,0x49,0x63,0x3B,0xA2,0xF7,0x42,0x22,0xF9,0x3A};
 
 
   virtual ~Airavata_updateGatewayResourceProfile_pargs() throw();
@@ -18660,8 +18683,8 @@ class Airavata_deleteGatewayResourceProfile_presult {
 class Airavata_addGatewayComputeResourcePreference_args {
  public:
 
-  static const char* ascii_fingerprint; // = "610310E56965C0B03B7F8A4A0C4477B4";
-  static const uint8_t binary_fingerprint[16]; // = {0x61,0x03,0x10,0xE5,0x69,0x65,0xC0,0xB0,0x3B,0x7F,0x8A,0x4A,0x0C,0x44,0x77,0xB4};
+  static const char* ascii_fingerprint; // = "425D70E4078E41003C48B805A83839D6";
+  static const uint8_t binary_fingerprint[16]; // = {0x42,0x5D,0x70,0xE4,0x07,0x8E,0x41,0x00,0x3C,0x48,0xB8,0x05,0xA8,0x38,0x39,0xD6};
 
   Airavata_addGatewayComputeResourcePreference_args(const Airavata_addGatewayComputeResourcePreference_args&);
   Airavata_addGatewayComputeResourcePreference_args& operator=(const Airavata_addGatewayComputeResourcePreference_args&);
@@ -18710,8 +18733,8 @@ class Airavata_addGatewayComputeResourcePreference_args {
 class Airavata_addGatewayComputeResourcePreference_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "610310E56965C0B03B7F8A4A0C4477B4";
-  static const uint8_t binary_fingerprint[16]; // = {0x61,0x03,0x10,0xE5,0x69,0x65,0xC0,0xB0,0x3B,0x7F,0x8A,0x4A,0x0C,0x44,0x77,0xB4};
+  static const char* ascii_fingerprint; // = "425D70E4078E41003C48B805A83839D6";
+  static const uint8_t binary_fingerprint[16]; // = {0x42,0x5D,0x70,0xE4,0x07,0x8E,0x41,0x00,0x3C,0x48,0xB8,0x05,0xA8,0x38,0x39,0xD6};
 
 
   virtual ~Airavata_addGatewayComputeResourcePreference_pargs() throw();
@@ -18821,98 +18844,104 @@ class Airavata_addGatewayComputeResourcePreference_presult {
 };
 
 
-class Airavata_getGatewayComputeResourcePreference_args {
+class Airavata_addGatewayDataStoragePreference_args {
  public:
 
-  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
-  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
+  static const char* ascii_fingerprint; // = "4D5977CE449D5B8E072CED19DFBA2D3F";
+  static const uint8_t binary_fingerprint[16]; // = {0x4D,0x59,0x77,0xCE,0x44,0x9D,0x5B,0x8E,0x07,0x2C,0xED,0x19,0xDF,0xBA,0x2D,0x3F};
 
-  Airavata_getGatewayComputeResourcePreference_args(const Airavata_getGatewayComputeResourcePreference_args&);
-  Airavata_getGatewayComputeResourcePreference_args& operator=(const Airavata_getGatewayComputeResourcePreference_args&);
-  Airavata_getGatewayComputeResourcePreference_args() : gatewayID(), computeResourceId() {
+  Airavata_addGatewayDataStoragePreference_args(const Airavata_addGatewayDataStoragePreference_args&);
+  Airavata_addGatewayDataStoragePreference_args& operator=(const Airavata_addGatewayDataStoragePreference_args&);
+  Airavata_addGatewayDataStoragePreference_args() : gatewayID(), dataMoveId() {
   }
 
-  virtual ~Airavata_getGatewayComputeResourcePreference_args() throw();
+  virtual ~Airavata_addGatewayDataStoragePreference_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayID;
-  std::string computeResourceId;
+  std::string dataMoveId;
+   ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference dataStoragePreference;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
   void __set_gatewayID(const std::string& val);
 
-  void __set_computeResourceId(const std::string& val);
+  void __set_dataMoveId(const std::string& val);
 
-  bool operator == (const Airavata_getGatewayComputeResourcePreference_args & rhs) const
+  void __set_dataStoragePreference(const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& val);
+
+  bool operator == (const Airavata_addGatewayDataStoragePreference_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
     if (!(gatewayID == rhs.gatewayID))
       return false;
-    if (!(computeResourceId == rhs.computeResourceId))
+    if (!(dataMoveId == rhs.dataMoveId))
+      return false;
+    if (!(dataStoragePreference == rhs.dataStoragePreference))
       return false;
     return true;
   }
-  bool operator != (const Airavata_getGatewayComputeResourcePreference_args &rhs) const {
+  bool operator != (const Airavata_addGatewayDataStoragePreference_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getGatewayComputeResourcePreference_args & ) const;
+  bool operator < (const Airavata_addGatewayDataStoragePreference_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_args& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGatewayDataStoragePreference_args& obj);
 };
 
 
-class Airavata_getGatewayComputeResourcePreference_pargs {
+class Airavata_addGatewayDataStoragePreference_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
-  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
+  static const char* ascii_fingerprint; // = "4D5977CE449D5B8E072CED19DFBA2D3F";
+  static const uint8_t binary_fingerprint[16]; // = {0x4D,0x59,0x77,0xCE,0x44,0x9D,0x5B,0x8E,0x07,0x2C,0xED,0x19,0xDF,0xBA,0x2D,0x3F};
 
 
-  virtual ~Airavata_getGatewayComputeResourcePreference_pargs() throw();
+  virtual ~Airavata_addGatewayDataStoragePreference_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayID;
-  const std::string* computeResourceId;
+  const std::string* dataMoveId;
+  const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference* dataStoragePreference;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_pargs& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGatewayDataStoragePreference_pargs& obj);
 };
 
-typedef struct _Airavata_getGatewayComputeResourcePreference_result__isset {
-  _Airavata_getGatewayComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_addGatewayDataStoragePreference_result__isset {
+  _Airavata_addGatewayDataStoragePreference_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_getGatewayComputeResourcePreference_result__isset;
+} _Airavata_addGatewayDataStoragePreference_result__isset;
 
-class Airavata_getGatewayComputeResourcePreference_result {
+class Airavata_addGatewayDataStoragePreference_result {
  public:
 
-  static const char* ascii_fingerprint; // = "FEE580AF67A2B7686AE2D60E6E540B04";
-  static const uint8_t binary_fingerprint[16]; // = {0xFE,0xE5,0x80,0xAF,0x67,0xA2,0xB7,0x68,0x6A,0xE2,0xD6,0x0E,0x6E,0x54,0x0B,0x04};
+  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
 
-  Airavata_getGatewayComputeResourcePreference_result(const Airavata_getGatewayComputeResourcePreference_result&);
-  Airavata_getGatewayComputeResourcePreference_result& operator=(const Airavata_getGatewayComputeResourcePreference_result&);
-  Airavata_getGatewayComputeResourcePreference_result() {
+  Airavata_addGatewayDataStoragePreference_result(const Airavata_addGatewayDataStoragePreference_result&);
+  Airavata_addGatewayDataStoragePreference_result& operator=(const Airavata_addGatewayDataStoragePreference_result&);
+  Airavata_addGatewayDataStoragePreference_result() : success(0) {
   }
 
-  virtual ~Airavata_getGatewayComputeResourcePreference_result() throw();
-   ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference success;
+  virtual ~Airavata_addGatewayDataStoragePreference_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_getGatewayComputeResourcePreference_result__isset __isset;
+  _Airavata_addGatewayDataStoragePreference_result__isset __isset;
 
-  void __set_success(const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& val);
+  void __set_success(const bool val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -18922,7 +18951,7 @@ class Airavata_getGatewayComputeResourcePreference_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getGatewayComputeResourcePreference_result & rhs) const
+  bool operator == (const Airavata_addGatewayDataStoragePreference_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -18936,135 +18965,141 @@ class Airavata_getGatewayComputeResourcePreference_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getGatewayComputeResourcePreference_result &rhs) const {
+  bool operator != (const Airavata_addGatewayDataStoragePreference_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getGatewayComputeResourcePreference_result & ) const;
+  bool operator < (const Airavata_addGatewayDataStoragePreference_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_result& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGatewayDataStoragePreference_result& obj);
 };
 
-typedef struct _Airavata_getGatewayComputeResourcePreference_presult__isset {
-  _Airavata_getGatewayComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_addGatewayDataStoragePreference_presult__isset {
+  _Airavata_addGatewayDataStoragePreference_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_getGatewayComputeResourcePreference_presult__isset;
+} _Airavata_addGatewayDataStoragePreference_presult__isset;
 
-class Airavata_getGatewayComputeResourcePreference_presult {
+class Airavata_addGatewayDataStoragePreference_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "FEE580AF67A2B7686AE2D60E6E540B04";
-  static const uint8_t binary_fingerprint[16]; // = {0xFE,0xE5,0x80,0xAF,0x67,0xA2,0xB7,0x68,0x6A,0xE2,0xD6,0x0E,0x6E,0x54,0x0B,0x04};
+  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
 
 
-  virtual ~Airavata_getGatewayComputeResourcePreference_presult() throw();
-   ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference* success;
+  virtual ~Airavata_addGatewayDataStoragePreference_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_getGatewayComputeResourcePreference_presult__isset __isset;
+  _Airavata_addGatewayDataStoragePreference_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_presult& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGatewayDataStoragePreference_presult& obj);
 };
 
 
-class Airavata_getAllGatewayComputeResourcePreferences_args {
+class Airavata_getGatewayComputeResourcePreference_args {
  public:
 
-  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
-  Airavata_getAllGatewayComputeResourcePreferences_args(const Airavata_getAllGatewayComputeResourcePreferences_args&);
-  Airavata_getAllGatewayComputeResourcePreferences_args& operator=(const Airavata_getAllGatewayComputeResourcePreferences_args&);
-  Airavata_getAllGatewayComputeResourcePreferences_args() : gatewayID() {
+  Airavata_getGatewayComputeResourcePreference_args(const Airavata_getGatewayComputeResourcePreference_args&);
+  Airavata_getGatewayComputeResourcePreference_args& operator=(const Airavata_getGatewayComputeResourcePreference_args&);
+  Airavata_getGatewayComputeResourcePreference_args() : gatewayID(), computeResourceId() {
   }
 
-  virtual ~Airavata_getAllGatewayComputeResourcePreferences_args() throw();
+  virtual ~Airavata_getGatewayComputeResourcePreference_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayID;
+  std::string computeResourceId;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
   void __set_gatewayID(const std::string& val);
 
-  bool operator == (const Airavata_getAllGatewayComputeResourcePreferences_args & rhs) const
+  void __set_computeResourceId(const std::string& val);
+
+  bool operator == (const Airavata_getGatewayComputeResourcePreference_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
     if (!(gatewayID == rhs.gatewayID))
       return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGatewayComputeResourcePreferences_args &rhs) const {
+  bool operator != (const Airavata_getGatewayComputeResourcePreference_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGatewayComputeResourcePreferences_args & ) const;
+  bool operator < (const Airavata_getGatewayComputeResourcePreference_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_args& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_args& obj);
 };
 
 
-class Airavata_getAllGatewayComputeResourcePreferences_pargs {
+class Airavata_getGatewayComputeResourcePreference_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
 
-  virtual ~Airavata_getAllGatewayComputeResourcePreferences_pargs() throw();
+  virtual ~Airavata_getGatewayComputeResourcePreference_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayID;
+  const std::string* computeResourceId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_pargs& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_pargs& obj);
 };
 
-typedef struct _Airavata_getAllGatewayComputeResourcePreferences_result__isset {
-  _Airavata_getAllGatewayComputeResourcePreferences_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getGatewayComputeResourcePreference_result__isset {
+  _Airavata_getGatewayComputeResourcePreference_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_getAllGatewayComputeResourcePreferences_result__isset;
+} _Airavata_getGatewayComputeResourcePreference_result__isset;
 
-class Airavata_getAllGatewayComputeResourcePreferences_result {
+class Airavata_getGatewayComputeResourcePreference_result {
  public:
 
-  static const char* ascii_fingerprint; // = "08276C8589280AB7D9E27B5B3F791FBA";
-  static const uint8_t binary_fingerprint[16]; // = {0x08,0x27,0x6C,0x85,0x89,0x28,0x0A,0xB7,0xD9,0xE2,0x7B,0x5B,0x3F,0x79,0x1F,0xBA};
+  static const char* ascii_fingerprint; // = "044CDAFCA23D442E4D8FF9441967F438";
+  static const uint8_t binary_fingerprint[16]; // = {0x04,0x4C,0xDA,0xFC,0xA2,0x3D,0x44,0x2E,0x4D,0x8F,0xF9,0x44,0x19,0x67,0xF4,0x38};
 
-  Airavata_getAllGatewayComputeResourcePreferences_result(const Airavata_getAllGatewayComputeResourcePreferences_result&);
-  Airavata_getAllGatewayComputeResourcePreferences_result& operator=(const Airavata_getAllGatewayComputeResourcePreferences_result&);
-  Airavata_getAllGatewayComputeResourcePreferences_result() {
+  Airavata_getGatewayComputeResourcePreference_result(const Airavata_getGatewayComputeResourcePreference_result&);
+  Airavata_getGatewayComputeResourcePreference_result& operator=(const Airavata_getGatewayComputeResourcePreference_result&);
+  Airavata_getGatewayComputeResourcePreference_result() {
   }
 
-  virtual ~Airavata_getAllGatewayComputeResourcePreferences_result() throw();
-  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference>  success;
+  virtual ~Airavata_getGatewayComputeResourcePreference_result() throw();
+   ::apache::airavata::model::appcatalog::gatewayprofile::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_getAllGatewayComputeResourcePreferences_result__isset __isset;
+  _Airavata_getGatewayComputeResourcePreference_result__isset __isset;
 
-  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & val);
+  void __set_success(const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -19074,7 +19109,7 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getAllGatewayComputeResourcePreferences_result & rhs) const
+  bool operator == (const Airavata_getGatewayComputeResourcePreference_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -19088,129 +19123,141 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGatewayComputeResourcePreferences_result &rhs) const {
+  bool operator != (const Airavata_getGatewayComputeResourcePreference_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGatewayComputeResourcePreferences_result & ) const;
+  bool operator < (const Airavata_getGatewayComputeResourcePreference_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_result& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_result& obj);
 };
 
-typedef struct _Airavata_getAllGatewayComputeResourcePreferences_presult__isset {
-  _Airavata_getAllGatewayComputeResourcePreferences_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getGatewayComputeResourcePreference_presult__isset {
+  _Airavata_getGatewayComputeResourcePreference_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_getAllGatewayComputeResourcePreferences_presult__isset;
+} _Airavata_getGatewayComputeResourcePreference_presult__isset;
 
-class Airavata_getAllGatewayComputeResourcePreferences_presult {
+class Airavata_getGatewayComputeResourcePreference_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "08276C8589280AB7D9E27B5B3F791FBA";
-  static const uint8_t binary_fingerprint[16]; // = {0x08,0x27,0x6C,0x85,0x89,0x28,0x0A,0xB7,0xD9,0xE2,0x7B,0x5B,0x3F,0x79,0x1F,0xBA};
+  static const char* ascii_fingerprint; // = "044CDAFCA23D442E4D8FF9441967F438";
+  static const uint8_t binary_fingerprint[16]; // = {0x04,0x4C,0xDA,0xFC,0xA2,0x3D,0x44,0x2E,0x4D,0x8F,0xF9,0x44,0x19,0x67,0xF4,0x38};
 
 
-  virtual ~Airavata_getAllGatewayComputeResourcePreferences_presult() throw();
-  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> * success;
+  virtual ~Airavata_getGatewayComputeResourcePreference_presult() throw();
+   ::apache::airavata::model::appcatalog::gatewayprofile::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_getAllGatewayComputeResourcePreferences_presult__isset __isset;
+  _Airavata_getGatewayComputeResourcePreference_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_presult& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayComputeResourcePreference_presult& obj);
 };
 
 
-class Airavata_getAllGatewayComputeResources_args {
+class Airavata_getGatewayDataStoragePreference_args {
  public:
 
-  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
-  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
+  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
-  Airavata_getAllGatewayComputeResources_args(const Airavata_getAllGatewayComputeResources_args&);
-  Airavata_getAllGatewayComputeResources_args& operator=(const Airavata_getAllGatewayComputeResources_args&);
-  Airavata_getAllGatewayComputeResources_args() {
+  Airavata_getGatewayDataStoragePreference_args(const Airavata_getGatewayDataStoragePreference_args&);
+  Airavata_getGatewayDataStoragePreference_args& operator=(const Airavata_getGatewayDataStoragePreference_args&);
+  Airavata_getGatewayDataStoragePreference_args() : gatewayID(), dataMoveId() {
   }
 
-  virtual ~Airavata_getAllGatewayComputeResources_args() throw();
+  virtual ~Airavata_getGatewayDataStoragePreference_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayID;
+  std::string dataMoveId;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  bool operator == (const Airavata_getAllGatewayComputeResources_args & rhs) const
+  void __set_gatewayID(const std::string& val);
+
+  void __set_dataMoveId(const std::string& val);
+
+  bool operator == (const Airavata_getGatewayDataStoragePreference_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
+    if (!(gatewayID == rhs.gatewayID))
+      return false;
+    if (!(dataMoveId == rhs.dataMoveId))
+      return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGatewayComputeResources_args &rhs) const {
+  bool operator != (const Airavata_getGatewayDataStoragePreference_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGatewayComputeResources_args & ) const;
+  bool operator < (const Airavata_getGatewayDataStoragePreference_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_args& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayDataStoragePreference_args& obj);
 };
 
 
-class Airavata_getAllGatewayComputeResources_pargs {
+class Airavata_getGatewayDataStoragePreference_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
-  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
+  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
 
 
-  virtual ~Airavata_getAllGatewayComputeResources_pargs() throw();
+  virtual ~Airavata_getGatewayDataStoragePreference_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayID;
+  const std::string* dataMoveId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_pargs& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayDataStoragePreference_pargs& obj);
 };
 
-typedef struct _Airavata_getAllGatewayComputeResources_result__isset {
-  _Airavata_getAllGatewayComputeResources_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getGatewayDataStoragePreference_result__isset {
+  _Airavata_getGatewayDataStoragePreference_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_getAllGatewayComputeResources_result__isset;
+} _Airavata_getGatewayDataStoragePreference_result__isset;
 
-class Airavata_getAllGatewayComputeResources_result {
+class Airavata_getGatewayDataStoragePreference_result {
  public:
 
-  static const char* ascii_fingerprint; // = "7E0E4BA187F281A6334BB230DF116DB8";
-  static const uint8_t binary_fingerprint[16]; // = {0x7E,0x0E,0x4B,0xA1,0x87,0xF2,0x81,0xA6,0x33,0x4B,0xB2,0x30,0xDF,0x11,0x6D,0xB8};
+  static const char* ascii_fingerprint; // = "1CD3091B63319C5F9E044C91C5E7D48E";
+  static const uint8_t binary_fingerprint[16]; // = {0x1C,0xD3,0x09,0x1B,0x63,0x31,0x9C,0x5F,0x9E,0x04,0x4C,0x91,0xC5,0xE7,0xD4,0x8E};
 
-  Airavata_getAllGatewayComputeResources_result(const Airavata_getAllGatewayComputeResources_result&);
-  Airavata_getAllGatewayComputeResources_result& operator=(const Airavata_getAllGatewayComputeResources_result&);
-  Airavata_getAllGatewayComputeResources_result() {
+  Airavata_getGatewayDataStoragePreference_result(const Airavata_getGatewayDataStoragePreference_result&);
+  Airavata_getGatewayDataStoragePreference_result& operator=(const Airavata_getGatewayDataStoragePreference_result&);
+  Airavata_getGatewayDataStoragePreference_result() {
   }
 
-  virtual ~Airavata_getAllGatewayComputeResources_result() throw();
-  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile>  success;
+  virtual ~Airavata_getGatewayDataStoragePreference_result() throw();
+   ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference 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_getAllGatewayComputeResources_result__isset __isset;
+  _Airavata_getGatewayDataStoragePreference_result__isset __isset;
 
-  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & val);
+  void __set_success(const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -19220,7 +19267,7 @@ class Airavata_getAllGatewayComputeResources_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getAllGatewayComputeResources_result & rhs) const
+  bool operator == (const Airavata_getGatewayDataStoragePreference_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -19234,145 +19281,759 @@ class Airavata_getAllGatewayComputeResources_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGatewayComputeResources_result &rhs) const {
+  bool operator != (const Airavata_getGatewayDataStoragePreference_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGatewayComputeResources_result & ) const;
+  bool operator < (const Airavata_getGatewayDataStoragePreference_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_result& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayDataStoragePreference_result& obj);
 };
 
-typedef struct _Airavata_getAllGatewayComputeResources_presult__isset {
-  _Airavata_getAllGatewayComputeResources_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getGatewayDataStoragePreference_presult__isset {
+  _Airavata_getGatewayDataStoragePreference_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_getAllGatewayComputeResources_presult__isset;
+} _Airavata_getGatewayDataStoragePreference_presult__isset;
 
-class Airavata_getAllGatewayComputeResources_presult {
+class Airavata_getGatewayDataStoragePreference_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "7E0E4BA187F281A6334BB230DF116DB8";
-  static const uint8_t binary_fingerprint[16]; // = {0x7E,0x0E,0x4B,0xA1,0x87,0xF2,0x81,0xA6,0x33,0x4B,0xB2,0x30,0xDF,0x11,0x6D,0xB8};
+  static const char* ascii_fingerprint; // = "1CD3091B63319C5F9E044C91C5E7D48E";
+  static const uint8_t binary_fingerprint[16]; // = {0x1C,0xD3,0x09,0x1B,0x63,0x31,0x9C,0x5F,0x9E,0x04,0x4C,0x91,0xC5,0xE7,0xD4,0x8E};
 
 
-  virtual ~Airavata_getAllGatewayComputeResources_presult() throw();
-  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> * success;
+  virtual ~Airavata_getGatewayDataStoragePreference_presult() throw();
+   ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference* 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_getAllGatewayComputeResources_presult__isset __isset;
+  _Airavata_getGatewayDataStoragePreference_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_presult& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getGatewayDataStoragePreference_presult& obj);
 };
 
 
-class Airavata_updateGatewayComputeResourcePreference_args {
+class Airavata_getAllGatewayComputeResourcePreferences_args {
  public:
 
-  static const char* ascii_fingerprint; // = "610310E56965C0B03B7F8A4A0C4477B4";
-  static const uint8_t binary_fingerprint[16]; // = {0x61,0x03,0x10,0xE5,0x69,0x65,0xC0,0xB0,0x3B,0x7F,0x8A,0x4A,0x0C,0x44,0x77,0xB4};
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
 
-  Airavata_updateGatewayComputeResourcePreference_args(const Airavata_updateGatewayComputeResourcePreference_args&);
-  Airavata_updateGatewayComputeResourcePreference_args& operator=(const Airavata_updateGatewayComputeResourcePreference_args&);
-  Airavata_updateGatewayComputeResourcePreference_args() : gatewayID(), computeResourceId() {
+  Airavata_getAllGatewayComputeResourcePreferences_args(const Airavata_getAllGatewayComputeResourcePreferences_args&);
+  Airavata_getAllGatewayComputeResourcePreferences_args& operator=(const Airavata_getAllGatewayComputeResourcePreferences_args&);
+  Airavata_getAllGatewayComputeResourcePreferences_args() : gatewayID() {
   }
 
-  virtual ~Airavata_updateGatewayComputeResourcePreference_args() throw();
+  virtual ~Airavata_getAllGatewayComputeResourcePreferences_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayID;
-  std::string computeResourceId;
-   ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference computeResourcePreference;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
   void __set_gatewayID(const std::string& val);
 
-  void __set_computeResourceId(const std::string& val);
-
-  void __set_computeResourcePreference(const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& val);
-
-  bool operator == (const Airavata_updateGatewayComputeResourcePreference_args & rhs) const
+  bool operator == (const Airavata_getAllGatewayComputeResourcePreferences_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
     if (!(gatewayID == rhs.gatewayID))
       return false;
-    if (!(computeResourceId == rhs.computeResourceId))
-      return false;
-    if (!(computeResourcePreference == rhs.computeResourcePreference))
-      return false;
     return true;
   }
-  bool operator != (const Airavata_updateGatewayComputeResourcePreference_args &rhs) const {
+  bool operator != (const Airavata_getAllGatewayComputeResourcePreferences_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_updateGatewayComputeResourcePreference_args & ) const;
+  bool operator < (const Airavata_getAllGatewayComputeResourcePreferences_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_args& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_args& obj);
 };
 
 
-class Airavata_updateGatewayComputeResourcePreference_pargs {
+class Airavata_getAllGatewayComputeResourcePreferences_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "610310E56965C0B03B7F8A4A0C4477B4";
-  static const uint8_t binary_fingerprint[16]; // = {0x61,0x03,0x10,0xE5,0x69,0x65,0xC0,0xB0,0x3B,0x7F,0x8A,0x4A,0x0C,0x44,0x77,0xB4};
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
 
 
-  virtual ~Airavata_updateGatewayComputeResourcePreference_pargs() throw();
+  virtual ~Airavata_getAllGatewayComputeResourcePreferences_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayID;
-  const std::string* computeResourceId;
-  const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference* computeResourcePreference;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_pargs& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_pargs& obj);
 };
 
-typedef struct _Airavata_updateGatewayComputeResourcePreference_result__isset {
-  _Airavata_updateGatewayComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getAllGatewayComputeResourcePreferences_result__isset {
+  _Airavata_getAllGatewayComputeResourcePreferences_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_updateGatewayComputeResourcePreference_result__isset;
+} _Airavata_getAllGatewayComputeResourcePreferences_result__isset;
 
-class Airavata_updateGatewayComputeResourcePreference_result {
+class Airavata_getAllGatewayComputeResourcePreferences_result {
  public:
 
-  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
-  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
+  static const char* ascii_fingerprint; // = "1D82737E6841A275ED0E06DC1AC19408";
+  static const uint8_t binary_fingerprint[16]; // = {0x1D,0x82,0x73,0x7E,0x68,0x41,0xA2,0x75,0xED,0x0E,0x06,0xDC,0x1A,0xC1,0x94,0x08};
 
-  Airavata_updateGatewayComputeResourcePreference_result(const Airavata_updateGatewayComputeResourcePreference_result&);
-  Airavata_updateGatewayComputeResourcePreference_result& operator=(const Airavata_updateGatewayComputeResourcePreference_result&);
+  Airavata_getAllGatewayComputeResourcePreferences_result(const Airavata_getAllGatewayComputeResourcePreferences_result&);
+  Airavata_getAllGatewayComputeResourcePreferences_result& operator=(const Airavata_getAllGatewayComputeResourcePreferences_result&);
+  Airavata_getAllGatewayComputeResourcePreferences_result() {
+  }
+
+  virtual ~Airavata_getAllGatewayComputeResourcePreferences_result() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::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_getAllGatewayComputeResourcePreferences_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::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_getAllGatewayComputeResourcePreferences_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_getAllGatewayComputeResourcePreferences_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGatewayComputeResourcePreferences_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_result& obj);
+};
+
+typedef struct _Airavata_getAllGatewayComputeResourcePreferences_presult__isset {
+  _Airavata_getAllGatewayComputeResourcePreferences_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_getAllGatewayComputeResourcePreferences_presult__isset;
+
+class Airavata_getAllGatewayComputeResourcePreferences_presult {
+ public:
+
+  static const char* ascii_fingerprint; // = "1D82737E6841A275ED0E06DC1AC19408";
+  static const uint8_t binary_fingerprint[16]; // = {0x1D,0x82,0x73,0x7E,0x68,0x41,0xA2,0x75,0xED,0x0E,0x06,0xDC,0x1A,0xC1,0x94,0x08};
+
+
+  virtual ~Airavata_getAllGatewayComputeResourcePreferences_presult() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::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_getAllGatewayComputeResourcePreferences_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResourcePreferences_presult& obj);
+};
+
+
+class Airavata_getAllGatewayDataStoragePreferences_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+
+  Airavata_getAllGatewayDataStoragePreferences_args(const Airavata_getAllGatewayDataStoragePreferences_args&);
+  Airavata_getAllGatewayDataStoragePreferences_args& operator=(const Airavata_getAllGatewayDataStoragePreferences_args&);
+  Airavata_getAllGatewayDataStoragePreferences_args() : gatewayID() {
+  }
+
+  virtual ~Airavata_getAllGatewayDataStoragePreferences_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_getAllGatewayDataStoragePreferences_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayID == rhs.gatewayID))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGatewayDataStoragePreferences_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGatewayDataStoragePreferences_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayDataStoragePreferences_args& obj);
+};
+
+
+class Airavata_getAllGatewayDataStoragePreferences_pargs {
+ public:
+
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
+
+
+  virtual ~Airavata_getAllGatewayDataStoragePreferences_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayID;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayDataStoragePreferences_pargs& obj);
+};
+
+typedef struct _Airavata_getAllGatewayDataStoragePreferences_result__isset {
+  _Airavata_getAllGatewayDataStoragePreferences_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_getAllGatewayDataStoragePreferences_result__isset;
+
+class Airavata_getAllGatewayDataStoragePreferences_result {
+ public:
+
+  static const char* ascii_fingerprint; // = "797B839022B9DB504CEA88A61463B523";
+  static const uint8_t binary_fingerprint[16]; // = {0x79,0x7B,0x83,0x90,0x22,0xB9,0xDB,0x50,0x4C,0xEA,0x88,0xA6,0x14,0x63,0xB5,0x23};
+
+  Airavata_getAllGatewayDataStoragePreferences_result(const Airavata_getAllGatewayDataStoragePreferences_result&);
+  Airavata_getAllGatewayDataStoragePreferences_result& operator=(const Airavata_getAllGatewayDataStoragePreferences_result&);
+  Airavata_getAllGatewayDataStoragePreferences_result() {
+  }
+
+  virtual ~Airavata_getAllGatewayDataStoragePreferences_result() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference>  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_getAllGatewayDataStoragePreferences_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> & 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_getAllGatewayDataStoragePreferences_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_getAllGatewayDataStoragePreferences_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGatewayDataStoragePreferences_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayDataStoragePreferences_result& obj);
+};
+
+typedef struct _Airavata_getAllGatewayDataStoragePreferences_presult__isset {
+  _Airavata_getAllGatewayDataStoragePreferences_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_getAllGatewayDataStoragePreferences_presult__isset;
+
+class Airavata_getAllGatewayDataStoragePreferences_presult {
+ public:
+
+  static const char* ascii_fingerprint; // = "797B839022B9DB504CEA88A61463B523";
+  static const uint8_t binary_fingerprint[16]; // = {0x79,0x7B,0x83,0x90,0x22,0xB9,0xDB,0x50,0x4C,0xEA,0x88,0xA6,0x14,0x63,0xB5,0x23};
+
+
+  virtual ~Airavata_getAllGatewayDataStoragePreferences_presult() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference> * 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_getAllGatewayDataStoragePreferences_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayDataStoragePreferences_presult& obj);
+};
+
+
+class Airavata_getAllGatewayComputeResources_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
+  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
+
+  Airavata_getAllGatewayComputeResources_args(const Airavata_getAllGatewayComputeResources_args&);
+  Airavata_getAllGatewayComputeResources_args& operator=(const Airavata_getAllGatewayComputeResources_args&);
+  Airavata_getAllGatewayComputeResources_args() {
+  }
+
+  virtual ~Airavata_getAllGatewayComputeResources_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  bool operator == (const Airavata_getAllGatewayComputeResources_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGatewayComputeResources_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGatewayComputeResources_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_args& obj);
+};
+
+
+class Airavata_getAllGatewayComputeResources_pargs {
+ public:
+
+  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
+  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
+
+
+  virtual ~Airavata_getAllGatewayComputeResources_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_pargs& obj);
+};
+
+typedef struct _Airavata_getAllGatewayComputeResources_result__isset {
+  _Airavata_getAllGatewayComputeResources_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_getAllGatewayComputeResources_result__isset;
+
+class Airavata_getAllGatewayComputeResources_result {
+ public:
+
+  static const char* ascii_fingerprint; // = "E4C23A3951BDEE94F5F54BB19B021761";
+  static const uint8_t binary_fingerprint[16]; // = {0xE4,0xC2,0x3A,0x39,0x51,0xBD,0xEE,0x94,0xF5,0xF5,0x4B,0xB1,0x9B,0x02,0x17,0x61};
+
+  Airavata_getAllGatewayComputeResources_result(const Airavata_getAllGatewayComputeResources_result&);
+  Airavata_getAllGatewayComputeResources_result& operator=(const Airavata_getAllGatewayComputeResources_result&);
+  Airavata_getAllGatewayComputeResources_result() {
+  }
+
+  virtual ~Airavata_getAllGatewayComputeResources_result() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile>  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_getAllGatewayComputeResources_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & 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_getAllGatewayComputeResources_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_getAllGatewayComputeResources_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGatewayComputeResources_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_result& obj);
+};
+
+typedef struct _Airavata_getAllGatewayComputeResources_presult__isset {
+  _Airavata_getAllGatewayComputeResources_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_getAllGatewayComputeResources_presult__isset;
+
+class Airavata_getAllGatewayComputeResources_presult {
+ public:
+
+  static const char* ascii_fingerprint; // = "E4C23A3951BDEE94F5F54BB19B021761";
+  static const uint8_t binary_fingerprint[16]; // = {0xE4,0xC2,0x3A,0x39,0x51,0xBD,0xEE,0x94,0xF5,0xF5,0x4B,0xB1,0x9B,0x02,0x17,0x61};
+
+
+  virtual ~Airavata_getAllGatewayComputeResources_presult() throw();
+  std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> * 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_getAllGatewayComputeResources_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAllGatewayComputeResources_presult& obj);
+};
+
+
+class Airavata_updateGatewayComputeResourcePreference_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "425D70E4078E41003C48B805A83839D6";
+  static const uint8_t binary_fingerprint[16]; // = {0x42,0x5D,0x70,0xE4,0x07,0x8E,0x41,0x00,0x3C,0x48,0xB8,0x05,0xA8,0x38,0x39,0xD6};
+
+  Airavata_updateGatewayComputeResourcePreference_args(const Airavata_updateGatewayComputeResourcePreference_args&);
+  Airavata_updateGatewayComputeResourcePreference_args& operator=(const Airavata_updateGatewayComputeResourcePreference_args&);
+  Airavata_updateGatewayComputeResourcePreference_args() : gatewayID(), computeResourceId() {
+  }
+
+  virtual ~Airavata_updateGatewayComputeResourcePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayID;
+  std::string computeResourceId;
+   ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference computeResourcePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayID(const std::string& val);
+
+  void __set_computeResourceId(const std::string& val);
+
+  void __set_computeResourcePreference(const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& val);
+
+  bool operator == (const Airavata_updateGatewayComputeResourcePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayID == rhs.gatewayID))
+      return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    if (!(computeResourcePreference == rhs.computeResourcePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGatewayComputeResourcePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGatewayComputeResourcePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_args& obj);
+};
+
+
+class Airavata_updateGatewayComputeResourcePreference_pargs {
+ public:
+
+  static const char* ascii_fingerprint; // = "425D70E4078E41003C48B805A83839D6";
+  static const uint8_t binary_fingerprint[16]; // = {0x42,0x5D,0x70,0xE4,0x07,0x8E,0x41,0x00,0x3C,0x48,0xB8,0x05,0xA8,0x38,0x39,0xD6};
+
+
+  virtual ~Airavata_updateGatewayComputeResourcePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayID;
+  const std::string* computeResourceId;
+  const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference* computeResourcePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_pargs& obj);
+};
+
+typedef struct _Airavata_updateGatewayComputeResourcePreference_result__isset {
+  _Airavata_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_result__isset;
+
+class Airavata_updateGatewayComputeResourcePreference_result {
+ public:
+
+  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
+
+  Airavata_updateGatewayComputeResourcePreference_result(const Airavata_updateGatewayComputeResourcePreference_result&);
+  Airavata_updateGatewayComputeResourcePreference_result& operator=(const Airavata_updateGatewayComputeResourcePreference_result&);
   Airavata_updateGatewayComputeResourcePreference_result() : success(0) {
   }
 
-  virtual ~Airavata_updateGatewayComputeResourcePreference_result() throw();
+  virtual ~Airavata_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGatewayComputeResourcePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_result& obj);
+};
+
+typedef struct _Airavata_updateGatewayComputeResourcePreference_presult__isset {
+  _Airavata_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_presult__isset;
+
+class Airavata_updateGatewayComputeResourcePreference_presult {
+ public:
+
+  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
+
+
+  virtual ~Airavata_updateGatewayComputeResourcePreference_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_updateGatewayComputeResourcePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_presult& obj);
+};
+
+
+class Airavata_updateGatewayDataStoragePreference_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "4D5977CE449D5B8E072CED19DFBA2D3F";
+  static const uint8_t binary_fingerprint[16]; // = {0x4D,0x59,0x77,0xCE,0x44,0x9D,0x5B,0x8E,0x07,0x2C,0xED,0x19,0xDF,0xBA,0x2D,0x3F};
+
+  Airavata_updateGatewayDataStoragePreference_args(const Airavata_updateGatewayDataStoragePreference_args&);
+  Airavata_updateGatewayDataStoragePreference_args& operator=(const Airavata_updateGatewayDataStoragePreference_args&);
+  Airavata_updateGatewayDataStoragePreference_args() : gatewayID(), dataMoveId() {
+  }
+
+  virtual ~Airavata_updateGatewayDataStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayID;
+  std::string dataMoveId;
+   ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference dataStoragePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayID(const std::string& val);
+
+  void __set_dataMoveId(const std::string& val);
+
+  void __set_dataStoragePreference(const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference& val);
+
+  bool operator == (const Airavata_updateGatewayDataStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayID == rhs.gatewayID))
+      return false;
+    if (!(dataMoveId == rhs.dataMoveId))
+      return false;
+    if (!(dataStoragePreference == rhs.dataStoragePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGatewayDataStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGatewayDataStoragePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayDataStoragePreference_args& obj);
+};
+
+
+class Airavata_updateGatewayDataStoragePreference_pargs {
+ public:
+
+  static const char* ascii_fingerprint; // = "4D5977CE449D5B8E072CED19DFBA2D3F";
+  static const uint8_t binary_fingerprint[16]; // = {0x4D,0x59,0x77,0xCE,0x44,0x9D,0x5B,0x8E,0x07,0x2C,0xED,0x19,0xDF,0xBA,0x2D,0x3F};
+
+
+  virtual ~Airavata_updateGatewayDataStoragePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayID;
+  const std::string* dataMoveId;
+  const  ::apache::airavata::model::appcatalog::gatewayprofile::DataStoragePreference* dataStoragePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayDataStoragePreference_pargs& obj);
+};
+
+typedef struct _Airavata_updateGatewayDataStoragePreference_result__isset {
+  _Airavata_updateGatewayDataStoragePreference_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_updateGatewayDataStoragePreference_result__isset;
+
+class Airavata_updateGatewayDataStoragePreference_result {
+ public:
+
+  static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
+
+  Airavata_updateGatewayDataStoragePreference_result(const Airavata_updateGatewayDataStoragePreference_result&);
+  Airavata_updateGatewayDataStoragePreference_result& operator=(const Airavata_updateGatewayDataStoragePreference_result&);
+  Airavata_updateGatewayDataStoragePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateGatewayDataStoragePreference_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_updateGatewayComputeResourcePreference_result__isset __isset;
+  _Airavata_updateGatewayDataStoragePreference_result__isset __isset;
 
   void __set_success(const bool val);
 
@@ -19384,7 +20045,7 @@ class Airavata_updateGatewayComputeResourcePreference_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_updateGatewayComputeResourcePreference_result & rhs) const
+  bool operator == (const Airavata_updateGatewayDataStoragePreference_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -19398,46 +20059,46 @@ class Airavata_updateGatewayComputeResourcePreference_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_updateGatewayComputeResourcePreference_result &rhs) const {
+  bool operator != (const Airavata_updateGatewayDataStoragePreference_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_updateGatewayComputeResourcePreference_result & ) const;
+  bool operator < (const Airavata_updateGatewayDataStoragePreference_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_result& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayDataStoragePreference_result& obj);
 };
 
-typedef struct _Airavata_updateGatewayComputeResourcePreference_presult__isset {
-  _Airavata_updateGatewayComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_updateGatewayDataStoragePreference_presult__isset {
+  _Airavata_updateGatewayDataStoragePreference_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_updateGatewayComputeResourcePreference_presult__isset;
+} _Airavata_updateGatewayDataStoragePreference_presult__isset;
 
-class Airavata_updateGatewayComputeResourcePreference_presult {
+class Airavata_updateGatewayDataStoragePreference_presult {
  public:
 
   static const char* ascii_fingerprint; // = "C0679679E26638BE0A41545C2E17B17A";
   static const uint8_t binary_fingerprint[16]; // = {0xC0,0x67,0x96,0x79,0xE2,0x66,0x38,0xBE,0x0A,0x41,0x54,0x5C,0x2E,0x17,0xB1,0x7A};
 
 
-  virtual ~Airavata_updateGatewayComputeResourcePreference_presult() throw();
+  virtual ~Airavata_updateGatewayDataStoragePreference_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_updateGatewayComputeResourcePreference_presult__isset __isset;
+  _Airavata_updateGatewayDataStoragePreference_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
-  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayComputeResourcePreference_presult& obj);
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGatewayDataStoragePreference_presult& obj);
 };
 
 
@@ -19599,6 +20260,164 @@ class Airavata_deleteGatewayComputeResourcePreference_presult {
 };
 
 
+class Airavata_deleteGatewayDataStoragePreference_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "1E6476DBB101101BCE4A4B190EDEB468";
+  static const uint8_t binary_fingerprint[16]; // = {0x1E,0x64,0x76,0xDB,0xB1,0x01,0x10,0x1B,0xCE,0x4A,0x4B,0x19,0x0E,0xDE,0xB4,0x68};
+
+  Airavata_deleteGatewayDataStoragePreference_args(const Airavata_deleteGatewayDataStoragePreference_args&);
+  Airavata_deleteGatewayDataStoragePreference_args& operator=(const Airavata_deleteGatewayDataStoragePreference_args&);
+  Airavata_deleteGatewayDataStoragePreference_args() : gatewayID(), dataMoveId() {
+  }
+
+  virtual ~Airavata_deleteGatewayDataStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayID;
+  std::string dataMoveId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayID(const std::string& val);
+
+  void __set_dataMoveId(const std::string& val);
+
+  bool operator == (const Airavata_deleteGatewayDataStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayID == rhs.gatewayID))
+      return false;
+    if (!(dataMoveId == rhs.dataMoveId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGatewayDataStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGatewayDataStorage

<TRUNCATED>