airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject [06/14] airavata git commit: Adding getkeys by gateway api methods - AIRAVATA-1874
Date Wed, 09 Dec 2015 05:08:59 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/6a9a1254/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 b7813c6..841712e 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
@@ -116,6 +116,14 @@ class Iface:
     """
     pass
 
+  def getAllGatewaySSHPubKeys(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
   def createProject(self, authzToken, gatewayId, project):
     """
     Creates a Project with basic metadata.
@@ -466,7 +474,7 @@ class Iface:
   def createExperiment(self, authzToken, gatewayId, experiment):
     """
     Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
-      but inferred from the authentication header. This experiment is just a persistent place holder. The client
+      but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client
       has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
       registering the experiment in a persistent store.
 
@@ -562,6 +570,47 @@ class Iface:
     """
     pass
 
+  def getDetailedExperimentTree(self, authzToken, airavataExperimentId):
+    """
+    Fetch the completed nested tree structue of previously created experiment metadata which includes processes ->
+    tasks -> jobs information.
+
+    @param airavataExperimentId
+       The identifier for the requested experiment. This is returned during the create experiment step.
+
+    @return experimentMetada
+      This method will return the previously stored experiment metadata.
+
+    @throws org.apache.airavata.model.error.InvalidRequestException
+       For any incorrect forming of the request itself.
+
+    @throws org.apache.airavata.model.error.ExperimentNotFoundException
+       If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+    @throws org.apache.airavata.model.error.AiravataClientException
+       The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+         UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+            step, then Airavata Registry will not have a provenance area setup. The client has to follow
+            gateway registration steps and retry this request.
+
+         AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+            For now this is a place holder.
+
+         INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+            is implemented, the authorization will be more substantial.
+
+    @throws org.apache.airavata.model.error.AiravataSystemException
+       This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+          rather an Airavata Administrator will be notified to take corrective action.
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
   def updateExperiment(self, authzToken, airavataExperimentId, experiment):
     """
     Configure a previously created experiment with required inputs, scheduling and other quality of service
@@ -1241,6 +1290,91 @@ class Iface:
     """
     pass
 
+  def registerStorageResource(self, authzToken, storageResourceDescription):
+    """
+    Register a Storage Resource.
+
+    @param storageResourceDescription
+       Storge Resource Object created from the datamodel.
+
+    @return storageResourceId
+      Returns a server-side generated airavata storage resource globally unique identifier.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceDescription
+    """
+    pass
+
+  def getStorageResource(self, authzToken, storageResourceId):
+    """
+    Fetch the given Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested storage resource
+
+    @return storageResourceDescription
+       Storage Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    pass
+
+  def getAllStorageResourceNames(self, authzToken):
+    """
+    Fetch all registered Storage Resources.
+
+    @return A map of registered compute resource id's and thier corresponding hostnames.
+       Compute Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def updateStorageResource(self, authzToken, storageResourceId, storageResourceDescription):
+    """
+    Update a Compute Resource.
+
+    @param storageResourceId
+      The identifier for the requested compute resource to be updated.
+
+    @param storageResourceDescription
+       Storage Resource Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+     - storageResourceDescription
+    """
+    pass
+
+  def deleteStorageResource(self, authzToken, storageResourceId):
+    """
+    Delete a Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested compute resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    pass
+
   def addLocalSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, localSubmission):
     """
     Add a Local Job Submission details to a compute resource
@@ -1499,7 +1633,7 @@ class Iface:
     """
     pass
 
-  def addLocalDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, localDataMovement):
+  def addLocalDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, localDataMovement):
     """
     Add a Local data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -1519,7 +1653,8 @@ class Iface:
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - localDataMovement
     """
@@ -1560,7 +1695,7 @@ class Iface:
     """
     pass
 
-  def addSCPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, scpDataMovement):
+  def addSCPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, scpDataMovement):
     """
     Add a SCP data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -1580,7 +1715,8 @@ class Iface:
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - scpDataMovement
     """
@@ -1622,11 +1758,12 @@ class Iface:
     """
     pass
 
-  def addUnicoreDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, unicoreDataMovement):
+  def addUnicoreDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, unicoreDataMovement):
     """
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - unicoreDataMovement
     """
@@ -1649,7 +1786,7 @@ class Iface:
     """
     pass
 
-  def addGridFTPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, gridFTPDataMovement):
+  def addGridFTPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, gridFTPDataMovement):
     """
     Add a GridFTP data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -1669,7 +1806,8 @@ class Iface:
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - gridFTPDataMovement
     """
@@ -1965,13 +2103,13 @@ class Iface:
     """
     pass
 
-  def addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+  def addGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId, storagePreference):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
-     - dataStoragePreference
+     - storageResourceId
+     - storagePreference
     """
     pass
 
@@ -1996,12 +2134,12 @@ class Iface:
     """
     pass
 
-  def getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+  def getGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
+     - storageResourceId
     """
     pass
 
@@ -2022,7 +2160,7 @@ class Iface:
     """
     pass
 
-  def getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+  def getAllGatewayStoragePreferences(self, authzToken, gatewayID):
     """
     Parameters:
      - authzToken
@@ -2065,13 +2203,13 @@ class Iface:
     """
     pass
 
-  def updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+  def updateGatewayStoragePreference(self, authzToken, gatewayID, storageId, storagePreference):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
-     - dataStoragePreference
+     - storageId
+     - storagePreference
     """
     pass
 
@@ -2096,12 +2234,12 @@ class Iface:
     """
     pass
 
-  def deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+  def deleteGatewayStoragePreference(self, authzToken, gatewayID, storageId):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
+     - storageId
     """
     pass
 
@@ -2592,6 +2730,45 @@ class Client(Iface):
       raise result.ase
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUserSSHPubKeys failed: unknown result");
 
+  def getAllGatewaySSHPubKeys(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_getAllGatewaySSHPubKeys(authzToken, gatewayId)
+    return self.recv_getAllGatewaySSHPubKeys()
+
+  def send_getAllGatewaySSHPubKeys(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('getAllGatewaySSHPubKeys', TMessageType.CALL, self._seqid)
+    args = getAllGatewaySSHPubKeys_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllGatewaySSHPubKeys(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllGatewaySSHPubKeys_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
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGatewaySSHPubKeys failed: unknown result");
+
   def createProject(self, authzToken, gatewayId, project):
     """
     Creates a Project with basic metadata.
@@ -3521,7 +3698,7 @@ class Client(Iface):
   def createExperiment(self, authzToken, gatewayId, experiment):
     """
     Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
-      but inferred from the authentication header. This experiment is just a persistent place holder. The client
+      but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client
       has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
       registering the experiment in a persistent store.
 
@@ -3719,21 +3896,16 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getExperiment failed: unknown result");
 
-  def updateExperiment(self, authzToken, airavataExperimentId, experiment):
+  def getDetailedExperimentTree(self, authzToken, airavataExperimentId):
     """
-    Configure a previously created experiment with required inputs, scheduling and other quality of service
-      parameters. This method only updates the experiment object within the registry. The experiment has to be launched
-      to make it actionable by the server.
+    Fetch the completed nested tree structue of previously created experiment metadata which includes processes ->
+    tasks -> jobs information.
 
     @param airavataExperimentId
        The identifier for the requested experiment. This is returned during the create experiment step.
 
-    @param experimentConfigurationData
-       The configuration information of the experiment with application input parameters, computational resource scheduling
-         information, special input output handling and additional quality of service parameters.
-
-    @return
-      This method call does not have a return value.
+    @return experimentMetada
+      This method will return the previously stored experiment metadata.
 
     @throws org.apache.airavata.model.error.InvalidRequestException
        For any incorrect forming of the request itself.
@@ -3743,7 +3915,7 @@ class Client(Iface):
 
     @throws org.apache.airavata.model.error.AiravataClientException
        The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-         
+
          UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
             step, then Airavata Registry will not have a provenance area setup. The client has to follow
             gateway registration steps and retry this request.
@@ -3762,141 +3934,20 @@ class Client(Iface):
     Parameters:
      - authzToken
      - airavataExperimentId
-     - experiment
-    """
-    self.send_updateExperiment(authzToken, airavataExperimentId, experiment)
-    self.recv_updateExperiment()
-
-  def send_updateExperiment(self, authzToken, airavataExperimentId, experiment):
-    self._oprot.writeMessageBegin('updateExperiment', TMessageType.CALL, self._seqid)
-    args = updateExperiment_args()
-    args.authzToken = authzToken
-    args.airavataExperimentId = airavataExperimentId
-    args.experiment = experiment
-    args.write(self._oprot)
-    self._oprot.writeMessageEnd()
-    self._oprot.trans.flush()
-
-  def recv_updateExperiment(self):
-    iprot = self._iprot
-    (fname, mtype, rseqid) = iprot.readMessageBegin()
-    if mtype == TMessageType.EXCEPTION:
-      x = TApplicationException()
-      x.read(iprot)
-      iprot.readMessageEnd()
-      raise x
-    result = updateExperiment_result()
-    result.read(iprot)
-    iprot.readMessageEnd()
-    if result.ire is not None:
-      raise result.ire
-    if result.enf is not None:
-      raise result.enf
-    if result.ace is not None:
-      raise result.ace
-    if result.ase is not None:
-      raise result.ase
-    if result.ae is not None:
-      raise result.ae
-    return
-
-  def updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
-    """
-    Parameters:
-     - authzToken
-     - airavataExperimentId
-     - userConfiguration
-    """
-    self.send_updateExperimentConfiguration(authzToken, airavataExperimentId, userConfiguration)
-    self.recv_updateExperimentConfiguration()
-
-  def send_updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
-    self._oprot.writeMessageBegin('updateExperimentConfiguration', TMessageType.CALL, self._seqid)
-    args = updateExperimentConfiguration_args()
-    args.authzToken = authzToken
-    args.airavataExperimentId = airavataExperimentId
-    args.userConfiguration = userConfiguration
-    args.write(self._oprot)
-    self._oprot.writeMessageEnd()
-    self._oprot.trans.flush()
-
-  def recv_updateExperimentConfiguration(self):
-    iprot = self._iprot
-    (fname, mtype, rseqid) = iprot.readMessageBegin()
-    if mtype == TMessageType.EXCEPTION:
-      x = TApplicationException()
-      x.read(iprot)
-      iprot.readMessageEnd()
-      raise x
-    result = updateExperimentConfiguration_result()
-    result.read(iprot)
-    iprot.readMessageEnd()
-    if result.ae is not None:
-      raise result.ae
-    return
-
-  def updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
-    """
-    Parameters:
-     - authzToken
-     - airavataExperimentId
-     - resourceScheduling
-    """
-    self.send_updateResourceScheduleing(authzToken, airavataExperimentId, resourceScheduling)
-    self.recv_updateResourceScheduleing()
-
-  def send_updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
-    self._oprot.writeMessageBegin('updateResourceScheduleing', TMessageType.CALL, self._seqid)
-    args = updateResourceScheduleing_args()
-    args.authzToken = authzToken
-    args.airavataExperimentId = airavataExperimentId
-    args.resourceScheduling = resourceScheduling
-    args.write(self._oprot)
-    self._oprot.writeMessageEnd()
-    self._oprot.trans.flush()
-
-  def recv_updateResourceScheduleing(self):
-    iprot = self._iprot
-    (fname, mtype, rseqid) = iprot.readMessageBegin()
-    if mtype == TMessageType.EXCEPTION:
-      x = TApplicationException()
-      x.read(iprot)
-      iprot.readMessageEnd()
-      raise x
-    result = updateResourceScheduleing_result()
-    result.read(iprot)
-    iprot.readMessageEnd()
-    if result.ae is not None:
-      raise result.ae
-    return
-
-  def validateExperiment(self, authzToken, airavataExperimentId):
-    """
-     *
-     * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
-     *
-     * @param experimentID
-     * @return sucess/failure
-     *
-    *
-
-    Parameters:
-     - authzToken
-     - airavataExperimentId
     """
-    self.send_validateExperiment(authzToken, airavataExperimentId)
-    return self.recv_validateExperiment()
+    self.send_getDetailedExperimentTree(authzToken, airavataExperimentId)
+    return self.recv_getDetailedExperimentTree()
 
-  def send_validateExperiment(self, authzToken, airavataExperimentId):
-    self._oprot.writeMessageBegin('validateExperiment', TMessageType.CALL, self._seqid)
-    args = validateExperiment_args()
+  def send_getDetailedExperimentTree(self, authzToken, airavataExperimentId):
+    self._oprot.writeMessageBegin('getDetailedExperimentTree', TMessageType.CALL, self._seqid)
+    args = getDetailedExperimentTree_args()
     args.authzToken = authzToken
     args.airavataExperimentId = airavataExperimentId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_validateExperiment(self):
+  def recv_getDetailedExperimentTree(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -3904,7 +3955,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = validateExperiment_result()
+    result = getDetailedExperimentTree_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -3919,12 +3970,214 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "validateExperiment failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getDetailedExperimentTree failed: unknown result");
 
-  def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+  def updateExperiment(self, authzToken, airavataExperimentId, experiment):
     """
-    Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
-      notifications and intermediate and output data will be subsequently available for this experiment.
+    Configure a previously created experiment with required inputs, scheduling and other quality of service
+      parameters. This method only updates the experiment object within the registry. The experiment has to be launched
+      to make it actionable by the server.
+
+    @param airavataExperimentId
+       The identifier for the requested experiment. This is returned during the create experiment step.
+
+    @param experimentConfigurationData
+       The configuration information of the experiment with application input parameters, computational resource scheduling
+         information, special input output handling and additional quality of service parameters.
+
+    @return
+      This method call does not have a return value.
+
+    @throws org.apache.airavata.model.error.InvalidRequestException
+       For any incorrect forming of the request itself.
+
+    @throws org.apache.airavata.model.error.ExperimentNotFoundException
+       If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+    @throws org.apache.airavata.model.error.AiravataClientException
+       The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+         
+         UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+            step, then Airavata Registry will not have a provenance area setup. The client has to follow
+            gateway registration steps and retry this request.
+
+         AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+            For now this is a place holder.
+
+         INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+            is implemented, the authorization will be more substantial.
+
+    @throws org.apache.airavata.model.error.AiravataSystemException
+       This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+          rather an Airavata Administrator will be notified to take corrective action.
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - experiment
+    """
+    self.send_updateExperiment(authzToken, airavataExperimentId, experiment)
+    self.recv_updateExperiment()
+
+  def send_updateExperiment(self, authzToken, airavataExperimentId, experiment):
+    self._oprot.writeMessageBegin('updateExperiment', TMessageType.CALL, self._seqid)
+    args = updateExperiment_args()
+    args.authzToken = authzToken
+    args.airavataExperimentId = airavataExperimentId
+    args.experiment = experiment
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateExperiment(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateExperiment_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.enf is not None:
+      raise result.enf
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - userConfiguration
+    """
+    self.send_updateExperimentConfiguration(authzToken, airavataExperimentId, userConfiguration)
+    self.recv_updateExperimentConfiguration()
+
+  def send_updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
+    self._oprot.writeMessageBegin('updateExperimentConfiguration', TMessageType.CALL, self._seqid)
+    args = updateExperimentConfiguration_args()
+    args.authzToken = authzToken
+    args.airavataExperimentId = airavataExperimentId
+    args.userConfiguration = userConfiguration
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateExperimentConfiguration(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateExperimentConfiguration_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - resourceScheduling
+    """
+    self.send_updateResourceScheduleing(authzToken, airavataExperimentId, resourceScheduling)
+    self.recv_updateResourceScheduleing()
+
+  def send_updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
+    self._oprot.writeMessageBegin('updateResourceScheduleing', TMessageType.CALL, self._seqid)
+    args = updateResourceScheduleing_args()
+    args.authzToken = authzToken
+    args.airavataExperimentId = airavataExperimentId
+    args.resourceScheduling = resourceScheduling
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateResourceScheduleing(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateResourceScheduleing_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def validateExperiment(self, authzToken, airavataExperimentId):
+    """
+     *
+     * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
+     *
+     * @param experimentID
+     * @return sucess/failure
+     *
+    *
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    self.send_validateExperiment(authzToken, airavataExperimentId)
+    return self.recv_validateExperiment()
+
+  def send_validateExperiment(self, authzToken, airavataExperimentId):
+    self._oprot.writeMessageBegin('validateExperiment', TMessageType.CALL, self._seqid)
+    args = validateExperiment_args()
+    args.authzToken = authzToken
+    args.airavataExperimentId = airavataExperimentId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_validateExperiment(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = validateExperiment_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.enf is not None:
+      raise result.enf
+    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, "validateExperiment failed: unknown result");
+
+  def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+    """
+    Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
+      notifications and intermediate and output data will be subsequently available for this experiment.
 
     @param airavataExperimentId
        The identifier for the requested experiment. This is returned during the create experiment step.
@@ -5629,6 +5882,256 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteComputeResource failed: unknown result");
 
+  def registerStorageResource(self, authzToken, storageResourceDescription):
+    """
+    Register a Storage Resource.
+
+    @param storageResourceDescription
+       Storge Resource Object created from the datamodel.
+
+    @return storageResourceId
+      Returns a server-side generated airavata storage resource globally unique identifier.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceDescription
+    """
+    self.send_registerStorageResource(authzToken, storageResourceDescription)
+    return self.recv_registerStorageResource()
+
+  def send_registerStorageResource(self, authzToken, storageResourceDescription):
+    self._oprot.writeMessageBegin('registerStorageResource', TMessageType.CALL, self._seqid)
+    args = registerStorageResource_args()
+    args.authzToken = authzToken
+    args.storageResourceDescription = storageResourceDescription
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_registerStorageResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = registerStorageResource_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, "registerStorageResource failed: unknown result");
+
+  def getStorageResource(self, authzToken, storageResourceId):
+    """
+    Fetch the given Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested storage resource
+
+    @return storageResourceDescription
+       Storage Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    self.send_getStorageResource(authzToken, storageResourceId)
+    return self.recv_getStorageResource()
+
+  def send_getStorageResource(self, authzToken, storageResourceId):
+    self._oprot.writeMessageBegin('getStorageResource', TMessageType.CALL, self._seqid)
+    args = getStorageResource_args()
+    args.authzToken = authzToken
+    args.storageResourceId = storageResourceId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getStorageResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getStorageResource_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, "getStorageResource failed: unknown result");
+
+  def getAllStorageResourceNames(self, authzToken):
+    """
+    Fetch all registered Storage Resources.
+
+    @return A map of registered compute resource id's and thier corresponding hostnames.
+       Compute Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+    """
+    self.send_getAllStorageResourceNames(authzToken)
+    return self.recv_getAllStorageResourceNames()
+
+  def send_getAllStorageResourceNames(self, authzToken):
+    self._oprot.writeMessageBegin('getAllStorageResourceNames', TMessageType.CALL, self._seqid)
+    args = getAllStorageResourceNames_args()
+    args.authzToken = authzToken
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllStorageResourceNames(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllStorageResourceNames_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, "getAllStorageResourceNames failed: unknown result");
+
+  def updateStorageResource(self, authzToken, storageResourceId, storageResourceDescription):
+    """
+    Update a Compute Resource.
+
+    @param storageResourceId
+      The identifier for the requested compute resource to be updated.
+
+    @param storageResourceDescription
+       Storage Resource Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+     - storageResourceDescription
+    """
+    self.send_updateStorageResource(authzToken, storageResourceId, storageResourceDescription)
+    return self.recv_updateStorageResource()
+
+  def send_updateStorageResource(self, authzToken, storageResourceId, storageResourceDescription):
+    self._oprot.writeMessageBegin('updateStorageResource', TMessageType.CALL, self._seqid)
+    args = updateStorageResource_args()
+    args.authzToken = authzToken
+    args.storageResourceId = storageResourceId
+    args.storageResourceDescription = storageResourceDescription
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateStorageResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateStorageResource_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, "updateStorageResource failed: unknown result");
+
+  def deleteStorageResource(self, authzToken, storageResourceId):
+    """
+    Delete a Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested compute resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    self.send_deleteStorageResource(authzToken, storageResourceId)
+    return self.recv_deleteStorageResource()
+
+  def send_deleteStorageResource(self, authzToken, storageResourceId):
+    self._oprot.writeMessageBegin('deleteStorageResource', TMessageType.CALL, self._seqid)
+    args = deleteStorageResource_args()
+    args.authzToken = authzToken
+    args.storageResourceId = storageResourceId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteStorageResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteStorageResource_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, "deleteStorageResource failed: unknown result");
+
   def addLocalSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, localSubmission):
     """
     Add a Local Job Submission details to a compute resource
@@ -6330,7 +6833,7 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "updateUnicoreJobSubmissionDetails failed: unknown result");
 
-  def addLocalDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, localDataMovement):
+  def addLocalDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, localDataMovement):
     """
     Add a Local data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -6350,18 +6853,20 @@ class Client(Iface):
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - localDataMovement
     """
-    self.send_addLocalDataMovementDetails(authzToken, computeResourceId, priorityOrder, localDataMovement)
+    self.send_addLocalDataMovementDetails(authzToken, resourceId, dataMoveType, priorityOrder, localDataMovement)
     return self.recv_addLocalDataMovementDetails()
 
-  def send_addLocalDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, localDataMovement):
+  def send_addLocalDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, localDataMovement):
     self._oprot.writeMessageBegin('addLocalDataMovementDetails', TMessageType.CALL, self._seqid)
     args = addLocalDataMovementDetails_args()
     args.authzToken = authzToken
-    args.computeResourceId = computeResourceId
+    args.resourceId = resourceId
+    args.dataMoveType = dataMoveType
     args.priorityOrder = priorityOrder
     args.localDataMovement = localDataMovement
     args.write(self._oprot)
@@ -6493,7 +6998,7 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getLocalDataMovement failed: unknown result");
 
-  def addSCPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, scpDataMovement):
+  def addSCPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, scpDataMovement):
     """
     Add a SCP data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -6513,18 +7018,20 @@ class Client(Iface):
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - scpDataMovement
     """
-    self.send_addSCPDataMovementDetails(authzToken, computeResourceId, priorityOrder, scpDataMovement)
+    self.send_addSCPDataMovementDetails(authzToken, resourceId, dataMoveType, priorityOrder, scpDataMovement)
     return self.recv_addSCPDataMovementDetails()
 
-  def send_addSCPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, scpDataMovement):
+  def send_addSCPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, scpDataMovement):
     self._oprot.writeMessageBegin('addSCPDataMovementDetails', TMessageType.CALL, self._seqid)
     args = addSCPDataMovementDetails_args()
     args.authzToken = authzToken
-    args.computeResourceId = computeResourceId
+    args.resourceId = resourceId
+    args.dataMoveType = dataMoveType
     args.priorityOrder = priorityOrder
     args.scpDataMovement = scpDataMovement
     args.write(self._oprot)
@@ -6657,22 +7164,24 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getSCPDataMovement failed: unknown result");
 
-  def addUnicoreDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, unicoreDataMovement):
+  def addUnicoreDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, unicoreDataMovement):
     """
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - unicoreDataMovement
     """
-    self.send_addUnicoreDataMovementDetails(authzToken, computeResourceId, priorityOrder, unicoreDataMovement)
+    self.send_addUnicoreDataMovementDetails(authzToken, resourceId, dataMoveType, priorityOrder, unicoreDataMovement)
     return self.recv_addUnicoreDataMovementDetails()
 
-  def send_addUnicoreDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, unicoreDataMovement):
+  def send_addUnicoreDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, unicoreDataMovement):
     self._oprot.writeMessageBegin('addUnicoreDataMovementDetails', TMessageType.CALL, self._seqid)
     args = addUnicoreDataMovementDetails_args()
     args.authzToken = authzToken
-    args.computeResourceId = computeResourceId
+    args.resourceId = resourceId
+    args.dataMoveType = dataMoveType
     args.priorityOrder = priorityOrder
     args.unicoreDataMovement = unicoreDataMovement
     args.write(self._oprot)
@@ -6786,7 +7295,7 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getUnicoreDataMovement failed: unknown result");
 
-  def addGridFTPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, gridFTPDataMovement):
+  def addGridFTPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, gridFTPDataMovement):
     """
     Add a GridFTP data movement details to a compute resource
      App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
@@ -6806,18 +7315,20 @@ class Client(Iface):
 
     Parameters:
      - authzToken
-     - computeResourceId
+     - resourceId
+     - dataMoveType
      - priorityOrder
      - gridFTPDataMovement
     """
-    self.send_addGridFTPDataMovementDetails(authzToken, computeResourceId, priorityOrder, gridFTPDataMovement)
+    self.send_addGridFTPDataMovementDetails(authzToken, resourceId, dataMoveType, priorityOrder, gridFTPDataMovement)
     return self.recv_addGridFTPDataMovementDetails()
 
-  def send_addGridFTPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, gridFTPDataMovement):
+  def send_addGridFTPDataMovementDetails(self, authzToken, resourceId, dataMoveType, priorityOrder, gridFTPDataMovement):
     self._oprot.writeMessageBegin('addGridFTPDataMovementDetails', TMessageType.CALL, self._seqid)
     args = addGridFTPDataMovementDetails_args()
     args.authzToken = authzToken
-    args.computeResourceId = computeResourceId
+    args.resourceId = resourceId
+    args.dataMoveType = dataMoveType
     args.priorityOrder = priorityOrder
     args.gridFTPDataMovement = gridFTPDataMovement
     args.write(self._oprot)
@@ -7741,29 +8252,29 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "addGatewayComputeResourcePreference failed: unknown result");
 
-  def addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+  def addGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId, storagePreference):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
-     - dataStoragePreference
+     - storageResourceId
+     - storagePreference
     """
-    self.send_addGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference)
-    return self.recv_addGatewayDataStoragePreference()
+    self.send_addGatewayStoragePreference(authzToken, gatewayID, storageResourceId, storagePreference)
+    return self.recv_addGatewayStoragePreference()
 
-  def send_addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
-    self._oprot.writeMessageBegin('addGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
-    args = addGatewayDataStoragePreference_args()
+  def send_addGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId, storagePreference):
+    self._oprot.writeMessageBegin('addGatewayStoragePreference', TMessageType.CALL, self._seqid)
+    args = addGatewayStoragePreference_args()
     args.authzToken = authzToken
     args.gatewayID = gatewayID
-    args.dataMoveId = dataMoveId
-    args.dataStoragePreference = dataStoragePreference
+    args.storageResourceId = storageResourceId
+    args.storagePreference = storagePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_addGatewayDataStoragePreference(self):
+  def recv_addGatewayStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -7771,7 +8282,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = addGatewayDataStoragePreference_result()
+    result = addGatewayStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -7784,7 +8295,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "addGatewayDataStoragePreference failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "addGatewayStoragePreference failed: unknown result");
 
   def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
@@ -7841,27 +8352,27 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getGatewayComputeResourcePreference failed: unknown result");
 
-  def getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+  def getGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
+     - storageResourceId
     """
-    self.send_getGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId)
-    return self.recv_getGatewayDataStoragePreference()
+    self.send_getGatewayStoragePreference(authzToken, gatewayID, storageResourceId)
+    return self.recv_getGatewayStoragePreference()
 
-  def send_getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
-    self._oprot.writeMessageBegin('getGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
-    args = getGatewayDataStoragePreference_args()
+  def send_getGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId):
+    self._oprot.writeMessageBegin('getGatewayStoragePreference', TMessageType.CALL, self._seqid)
+    args = getGatewayStoragePreference_args()
     args.authzToken = authzToken
     args.gatewayID = gatewayID
-    args.dataMoveId = dataMoveId
+    args.storageResourceId = storageResourceId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getGatewayDataStoragePreference(self):
+  def recv_getGatewayStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -7869,7 +8380,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getGatewayDataStoragePreference_result()
+    result = getGatewayStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -7882,7 +8393,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getGatewayDataStoragePreference failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getGatewayStoragePreference failed: unknown result");
 
   def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
     """
@@ -7934,25 +8445,25 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGatewayComputeResourcePreferences failed: unknown result");
 
-  def getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+  def getAllGatewayStoragePreferences(self, authzToken, gatewayID):
     """
     Parameters:
      - authzToken
      - gatewayID
     """
-    self.send_getAllGatewayDataStoragePreferences(authzToken, gatewayID)
-    return self.recv_getAllGatewayDataStoragePreferences()
+    self.send_getAllGatewayStoragePreferences(authzToken, gatewayID)
+    return self.recv_getAllGatewayStoragePreferences()
 
-  def send_getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
-    self._oprot.writeMessageBegin('getAllGatewayDataStoragePreferences', TMessageType.CALL, self._seqid)
-    args = getAllGatewayDataStoragePreferences_args()
+  def send_getAllGatewayStoragePreferences(self, authzToken, gatewayID):
+    self._oprot.writeMessageBegin('getAllGatewayStoragePreferences', TMessageType.CALL, self._seqid)
+    args = getAllGatewayStoragePreferences_args()
     args.authzToken = authzToken
     args.gatewayID = gatewayID
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getAllGatewayDataStoragePreferences(self):
+  def recv_getAllGatewayStoragePreferences(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -7960,7 +8471,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getAllGatewayDataStoragePreferences_result()
+    result = getAllGatewayStoragePreferences_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -7973,7 +8484,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGatewayDataStoragePreferences failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGatewayStoragePreferences failed: unknown result");
 
   def getAllGatewayResourceProfiles(self, authzToken):
     """
@@ -8077,29 +8588,29 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGatewayComputeResourcePreference failed: unknown result");
 
-  def updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+  def updateGatewayStoragePreference(self, authzToken, gatewayID, storageId, storagePreference):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
-     - dataStoragePreference
+     - storageId
+     - storagePreference
     """
-    self.send_updateGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId, dataStoragePreference)
-    return self.recv_updateGatewayDataStoragePreference()
+    self.send_updateGatewayStoragePreference(authzToken, gatewayID, storageId, storagePreference)
+    return self.recv_updateGatewayStoragePreference()
 
-  def send_updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
-    self._oprot.writeMessageBegin('updateGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
-    args = updateGatewayDataStoragePreference_args()
+  def send_updateGatewayStoragePreference(self, authzToken, gatewayID, storageId, storagePreference):
+    self._oprot.writeMessageBegin('updateGatewayStoragePreference', TMessageType.CALL, self._seqid)
+    args = updateGatewayStoragePreference_args()
     args.authzToken = authzToken
     args.gatewayID = gatewayID
-    args.dataMoveId = dataMoveId
-    args.dataStoragePreference = dataStoragePreference
+    args.storageId = storageId
+    args.storagePreference = storagePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_updateGatewayDataStoragePreference(self):
+  def recv_updateGatewayStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -8107,7 +8618,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = updateGatewayDataStoragePreference_result()
+    result = updateGatewayStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -8120,7 +8631,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGatewayDataStoragePreference failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGatewayStoragePreference failed: unknown result");
 
   def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
     """
@@ -8177,27 +8688,27 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGatewayComputeResourcePreference failed: unknown result");
 
-  def deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+  def deleteGatewayStoragePreference(self, authzToken, gatewayID, storageId):
     """
     Parameters:
      - authzToken
      - gatewayID
-     - dataMoveId
+     - storageId
     """
-    self.send_deleteGatewayDataStoragePreference(authzToken, gatewayID, dataMoveId)
-    return self.recv_deleteGatewayDataStoragePreference()
+    self.send_deleteGatewayStoragePreference(authzToken, gatewayID, storageId)
+    return self.recv_deleteGatewayStoragePreference()
 
-  def send_deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
-    self._oprot.writeMessageBegin('deleteGatewayDataStoragePreference', TMessageType.CALL, self._seqid)
-    args = deleteGatewayDataStoragePreference_args()
+  def send_deleteGatewayStoragePreference(self, authzToken, gatewayID, storageId):
+    self._oprot.writeMessageBegin('deleteGatewayStoragePreference', TMessageType.CALL, self._seqid)
+    args = deleteGatewayStoragePreference_args()
     args.authzToken = authzToken
     args.gatewayID = gatewayID
-    args.dataMoveId = dataMoveId
+    args.storageId = storageId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_deleteGatewayDataStoragePreference(self):
+  def recv_deleteGatewayStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -8205,7 +8716,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = deleteGatewayDataStoragePreference_result()
+    result = deleteGatewayStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -8218,7 +8729,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGatewayDataStoragePreference failed: unknown result");
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result");
 
   def getAllWorkflows(self, authzToken, gatewayId):
     """
@@ -8522,6 +9033,7 @@ class Processor(Iface, TProcessor):
     self._processMap["generateAndRegisterSSHKeys"] = Processor.process_generateAndRegisterSSHKeys
     self._processMap["getSSHPubKey"] = Processor.process_getSSHPubKey
     self._processMap["getAllUserSSHPubKeys"] = Processor.process_getAllUserSSHPubKeys
+    self._processMap["getAllGatewaySSHPubKeys"] = Processor.process_getAllGatewaySSHPubKeys
     self._processMap["createProject"] = Processor.process_createProject
     self._processMap["updateProject"] = Processor.process_updateProject
     self._processMap["getProject"] = Processor.process_getProject
@@ -8541,6 +9053,7 @@ class Processor(Iface, TProcessor):
     self._processMap["createExperiment"] = Processor.process_createExperiment
     self._processMap["deleteExperiment"] = Processor.process_deleteExperiment
     self._processMap["getExperiment"] = Processor.process_getExperiment
+    self._processMap["getDetailedExperimentTree"] = Processor.process_getDetailedExperimentTree
     self._processMap["updateExperiment"] = Processor.process_updateExperiment
     self._processMap["updateExperimentConfiguration"] = Processor.process_updateExperimentConfiguration
     self._processMap["updateResourceScheduleing"] = Processor.process_updateResourceScheduleing
@@ -8578,6 +9091,11 @@ class Processor(Iface, TProcessor):
     self._processMap["getAllComputeResourceNames"] = Processor.process_getAllComputeResourceNames
     self._processMap["updateComputeResource"] = Processor.process_updateComputeResource
     self._processMap["deleteComputeResource"] = Processor.process_deleteComputeResource
+    self._processMap["registerStorageResource"] = Processor.process_registerStorageResource
+    self._processMap["getStorageResource"] = Processor.process_getStorageResource
+    self._processMap["getAllStorageResourceNames"] = Processor.process_getAllStorageResourceNames
+    self._processMap["updateStorageResource"] = Processor.process_updateStorageResource
+    self._processMap["deleteStorageResource"] = Processor.process_deleteStorageResource
     self._processMap["addLocalSubmissionDetails"] = Processor.process_addLocalSubmissionDetails
     self._processMap["updateLocalSubmissionDetails"] = Processor.process_updateLocalSubmissionDetails
     self._processMap["getLocalJobSubmission"] = Processor.process_getLocalJobSubmission
@@ -8619,16 +9137,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["addGatewayStoragePreference"] = Processor.process_addGatewayStoragePreference
     self._processMap["getGatewayComputeResourcePreference"] = Processor.process_getGatewayComputeResourcePreference
-    self._processMap["getGatewayDataStoragePreference"] = Processor.process_getGatewayDataStoragePreference
+    self._processMap["getGatewayStoragePreference"] = Processor.process_getGatewayStoragePreference
     self._processMap["getAllGatewayComputeResourcePreferences"] = Processor.process_getAllGatewayComputeResourcePreferences
-    self._processMap["getAllGatewayDataStoragePreferences"] = Processor.process_getAllGatewayDataStoragePreferences
+    self._processMap["getAllGatewayStoragePreferences"] = Processor.process_getAllGatewayStoragePreferences
     self._processMap["getAllGatewayResourceProfiles"] = Processor.process_getAllGatewayResourceProfiles
     self._processMap["updateGatewayComputeResourcePreference"] = Processor.process_updateGatewayComputeResourcePreference
-    self._processMap["updateGatewayDataStoragePreference"] = Processor.process_updateGatewayDataStoragePreference
+    self._processMap["updateGatewayStoragePreference"] = Processor.process_updateGatewayStoragePreference
     self._processMap["deleteGatewayComputeResourcePreference"] = Processor.process_deleteGatewayComputeResourcePreference
-    self._processMap["deleteGatewayDataStoragePreference"] = Processor.process_deleteGatewayDataStoragePreference
+    self._processMap["deleteGatewayStoragePreference"] = Processor.process_deleteGatewayStoragePreference
     self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
     self._processMap["getWorkflow"] = Processor.process_getWorkflow
     self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
@@ -8846,6 +9364,24 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_getAllGatewaySSHPubKeys(self, seqid, iprot, oprot):
+    args = getAllGatewaySSHPubKeys_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getAllGatewaySSHPubKeys_result()
+    try:
+      result.success = self._handler.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId)
+    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
+    oprot.writeMessageBegin("getAllGatewaySSHPubKeys", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_createProject(self, seqid, iprot, oprot):
     args = createProject_args()
     args.read(iprot)
@@ -9236,6 +9772,28 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_getDetailedExperimentTree(self, seqid, iprot, oprot):
+    args = getDetailedExperimentTree_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getDetailedExperimentTree_result()
+    try:
+      result.success = self._handler.getDetailedExperimentTree(args.authzToken, args.airavataExperimentId)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.ExperimentNotFoundException, enf:
+      result.enf = enf
+    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("getDetailedExperimentTree", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_updateExperiment(self, seqid, iprot, oprot):
     args = updateExperiment_args()
     args.read(iprot)
@@ -9984,6 +10542,106 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_registerStorageResource(self, seqid, iprot, oprot):
+    args = registerStorageResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = registerStorageResource_result()
+    try:
+      result.success = self._handler.registerStorageResource(args.authzToken, args.storageResourceDescription)
+    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("registerStorageResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getStorageResource(self, seqid, iprot, oprot):
+    args = getStorageResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getStorageResource_result()
+    try:
+      result.success = self._handler.getStorageResource(args.authzToken, args.storageResourceId)
+    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("getStorageResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getAllStorageResourceNames(self, seqid, iprot, oprot):
+    args = getAllStorageResourceNames_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getAllStorageResourceNames_result()
+    try:
+      result.success = self._handler.getAllStorageResourceNames(args.authzToken)
+    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("getAllStorageResourceNames", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_updateStorageResource(self, seqid, iprot, oprot):
+    args = updateStorageResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = updateStorageResource_result()
+    try:
+      result.success = self._handler.updateStorageResource(args.authzToken, args.storageResourceId, args.storageResourceDescription)
+    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("updateStorageResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_deleteStorageResource(self, seqid, iprot, oprot):
+    args = deleteStorageResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = deleteStorageResource_result()
+    try:
+      result.success = self._handler.deleteStorageResource(args.authzToken, args.storageResourceId)
+    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("deleteStorageResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
   def process_addLocalSubmissionDetails(self, seqid, iprot, oprot):
     args = addLocalSubmissionDetails_args()
     args.read(iprot)
@@ -10250,7 +10908,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = addLocalDataMovementDetails_result()
     try:
-      result.success = self._handler.addLocalDataMovementDetails(args.authzToken, args.computeResourceId, args.priorityOrder, args.localDataMovement)
+      result.success = self._handler.addLocalDataMovementDetails(args.authzToken, args.resourceId, args.dataMoveType, args.priorityOrder, args.localDataMovement)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10310,7 +10968,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = addSCPDataMovementDetails_result()
     try:
-      result.success = self._handler.addSCPDataMovementDetails(args.authzToken, args.computeResourceId, args.priorityOrder, args.scpDataMovement)
+      result.success = self._handler.addSCPDataMovementDetails(args.authzToken, args.resourceId, args.dataMoveType, args.priorityOrder, args.scpDataMovement)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10370,7 +11028,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = addUnicoreDataMovementDetails_result()
     try:
-      result.success = self._handler.addUnicoreDataMovementDetails(args.authzToken, args.computeResourceId, args.priorityOrder, args.unicoreDataMovement)
+      result.success = self._handler.addUnicoreDataMovementDetails(args.authzToken, args.resourceId, args.dataMoveType, args.priorityOrder, args.unicoreDataMovement)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10430,7 +11088,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = addGridFTPDataMovementDetails_result()
     try:
-      result.success = self._handler.addGridFTPDataMovementDetails(args.authzToken, args.computeResourceId, args.priorityOrder, args.gridFTPDataMovement)
+      result.success = self._handler.addGridFTPDataMovementDetails(args.authzToken, args.resourceId, args.dataMoveType, args.priorityOrder, args.gridFTPDataMovement)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10804,13 +11462,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_addGatewayDataStoragePreference(self, seqid, iprot, oprot):
-    args = addGatewayDataStoragePreference_args()
+  def process_addGatewayStoragePreference(self, seqid, iprot, oprot):
+    args = addGatewayStoragePreference_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = addGatewayDataStoragePreference_result()
+    result = addGatewayStoragePreference_result()
     try:
-      result.success = self._handler.addGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference)
+      result.success = self._handler.addGatewayStoragePreference(args.authzToken, args.gatewayID, args.storageResourceId, args.storagePreference)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10819,7 +11477,7 @@ class Processor(Iface, TProcessor):
       result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException, ae:
       result.ae = ae
-    oprot.writeMessageBegin("addGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    oprot.writeMessageBegin("addGatewayStoragePreference", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
@@ -10844,13 +11502,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getGatewayDataStoragePreference(self, seqid, iprot, oprot):
-    args = getGatewayDataStoragePreference_args()
+  def process_getGatewayStoragePreference(self, seqid, iprot, oprot):
+    args = getGatewayStoragePreference_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getGatewayDataStoragePreference_result()
+    result = getGatewayStoragePreference_result()
     try:
-      result.success = self._handler.getGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId)
+      result.success = self._handler.getGatewayStoragePreference(args.authzToken, args.gatewayID, args.storageResourceId)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10859,7 +11517,7 @@ class Processor(Iface, TProcessor):
       result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException, ae:
       result.ae = ae
-    oprot.writeMessageBegin("getGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    oprot.writeMessageBegin("getGatewayStoragePreference", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
@@ -10884,13 +11542,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getAllGatewayDataStoragePreferences(self, seqid, iprot, oprot):
-    args = getAllGatewayDataStoragePreferences_args()
+  def process_getAllGatewayStoragePreferences(self, seqid, iprot, oprot):
+    args = getAllGatewayStoragePreferences_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getAllGatewayDataStoragePreferences_result()
+    result = getAllGatewayStoragePreferences_result()
     try:
-      result.success = self._handler.getAllGatewayDataStoragePreferences(args.authzToken, args.gatewayID)
+      result.success = self._handler.getAllGatewayStoragePreferences(args.authzToken, args.gatewayID)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10899,7 +11557,7 @@ class Processor(Iface, TProcessor):
       result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException, ae:
       result.ae = ae
-    oprot.writeMessageBegin("getAllGatewayDataStoragePreferences", TMessageType.REPLY, seqid)
+    oprot.writeMessageBegin("getAllGatewayStoragePreferences", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
@@ -10944,13 +11602,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_updateGatewayDataStoragePreference(self, seqid, iprot, oprot):
-    args = updateGatewayDataStoragePreference_args()
+  def process_updateGatewayStoragePreference(self, seqid, iprot, oprot):
+    args = updateGatewayStoragePreference_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = updateGatewayDataStoragePreference_result()
+    result = updateGatewayStoragePreference_result()
     try:
-      result.success = self._handler.updateGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId, args.dataStoragePreference)
+      result.success = self._handler.updateGatewayStoragePreference(args.authzToken, args.gatewayID, args.storageId, args.storagePreference)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10959,7 +11617,7 @@ class Processor(Iface, TProcessor):
       result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException, ae:
       result.ae = ae
-    oprot.writeMessageBegin("updateGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    oprot.writeMessageBegin("updateGatewayStoragePreference", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
@@ -10984,13 +11642,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_deleteGatewayDataStoragePreference(self, seqid, iprot, oprot):
-    args = deleteGatewayDataStoragePreference_args()
+  def process_deleteGatewayStoragePreference(self, seqid, iprot, oprot):
+    args = deleteGatewayStoragePreference_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = deleteGatewayDataStoragePreference_result()
+    result = deleteGatewayStoragePreference_result()
     try:
-      result.success = self._handler.deleteGatewayDataStoragePreference(args.authzToken, args.gatewayID, args.dataMoveId)
+      result.success = self._handler.deleteGatewayStoragePreference(args.authzToken, args.gatewayID, args.storageId)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -10999,7 +11657,7 @@ class Processor(Iface, TProcessor):
       result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException, ae:
       result.ae = ae
-    oprot.writeMessageBegin("deleteGatewayDataStoragePreference", TMessageType.REPLY, seqid)
+    oprot.writeMessageBegin("deleteGatewayStoragePreference", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
@@ -13160,25 +13818,22 @@ class getAllUserSSHPubKeys_result:
   def __ne__(self, other):
     return not (self == other)
 
-class createProject_args:
+class getAllGatewaySSHPubKeys_args:
   """
   Attributes:
    - authzToken
    - gatewayId
-   - project
   """
 
   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, 'project', (apache.airavata.model.workspace.ttypes.Project, apache.airavata.model.workspace.ttypes.Project.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None, project=None,):
+  def __init__(self, authzToken=None, gatewayId=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
-    self.project = project
 
   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:
@@ -13200,12 +13855,6 @@ class createProject_args:
           self.gatewayId = iprot.readString();
         else:
           iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRUCT:
-          self.project = apache.airavata.model.workspace.ttypes.Project()
-          self.project.read(iprot)
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -13215,7 +13864,7 @@ class createProject_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('createProject_args')
+    oprot.writeStructBegin('getAllGatewaySSHPubKeys_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -13224,10 +13873,6 @@ class createProject_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.project is not None:
-      oprot.writeFieldBegin('project', TType.STRUCT, 3)
-      self.project.write(oprot)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -13236,8 +13881,6 @@ class createProject_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.project is None:
-      raise TProtocol.TProtocolException(message='Required field project is unset!')
     return
 
 
@@ -13245,7 +13888,6 @@ class createProject_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.project)
     return value
 
   def __repr__(self):
@@ -13259,30 +13901,27 @@ class createProject_args:
   def __ne__(self, other):
     return not (self == other)
 
-class createProject_result:
+class getAllGatewaySSHPubKeys_result:
   """
   Attributes:
    - success
    - ire
    - ace
    - ase
-   - ae
   """
 
   thrift_spec = (
-    (0, TType.STRING, 'success', None, None, ), # 0
+    (0, TType.MAP, 'success', (TType.STRING,None,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
-    (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,):
+  def __init__(self, success=None, ire=None, ace=None, ase=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:
@@ -13294,8 +13933,14 @@ class createProject_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.STRING:
-          self.success = iprot.readString();
+        if ftype == TType.MAP:
+          self.success = {}
+          (_ktype17, _vtype18, _size16 ) = iprot.readMapBegin()
+          for _i20 in xrange(_size16):
+            _key21 = iprot.readString();
+            _val22 = iprot.readString();
+            self.success[_key21] = _val22
+          iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -13316,12 +13961,6 @@ class createProject_result:
           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()
@@ -13331,10 +13970,14 @@ class createProject_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('createProject_result')
+    oprot.writeStructBegin('getAllGatewaySSHPubKeys_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.STRING, 0)
-      oprot.writeString(self.success)
+      oprot.writeFieldBegin('success', TType.MAP, 0)
+      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+      for kiter23,viter24 in self.success.items():
+        oprot.writeString(kiter23)
+        oprot.writeString(viter24)
+      oprot.writeMapEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -13348,10 +13991,6 @@ class createProject_result:
       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()
 
@@ -13365,7 +14004,6 @@ class createProject_result:
     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):
@@ -13379,25 +14017,25 @@ class createProject_result:
   def __ne__(self, other):
     return not (self == other)
 
-class updateProject_args:
+class createProject_args:
   """
   Attributes:
    - authzToken
-   - projectId
-   - updatedProject
+   - gatewayId
+   - project
   """
 
   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, 'projectId', None, None, ), # 2
-    (3, TType.STRUCT, 'updatedProject', (apache.airavata.model.workspace.ttypes.Project, apache.airavata.model.workspace.ttypes.Project.thrift_spec), None, ), # 3
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRUCT, 'project', (apache.airavata.model.workspace.ttypes.Project, apache.airavata.model.workspace.ttypes.Project.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, projectId=None, updatedProject=None,):
+  def __init__(self, authzToken=None, gatewayId=None, project=None,):
     self.authzToken = authzToken
-    self.projectId = projectId
-    self.updatedProject = updatedProject
+    self.gatewayId = gatewayId
+    self.project = project
 
   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:
@@ -13416,13 +14054,13 @@ class updateProject_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.projectId = iprot.readString();
+          self.gatewayId = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRUCT:
-          self.updatedProject = apache.airavata.model.workspace.ttypes.Project()
-          self.updatedProject.read(iprot)
+          self.project = apache.airavata.model.workspace.ttypes.Project()
+          self.project.read(iprot)
         else:
           iprot.skip(ftype)
       else:
@@ -13434,18 +14072,18 @@ class updateProject_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('updateProject_args')
+    oprot.writeStructBegin('createProject_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.projectId is not None:
-      oprot.writeFieldBegin('projectId', TType.STRING, 2)
-      oprot.writeString(self.projectId)
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.updatedProject is not None:
-      oprot.writeFieldBegin('updatedProject', TType.STRUCT, 3)
-      self.updatedProject.write(oprot)
+    if self.project is not None:
+      oprot.writeFieldBegin('project', TType.STRUCT, 3)
+      self.project.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -13453,18 +14091,18 @@ class updateProject_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.projectId is None:
-      raise TProtocol.TProtocolException(message='Required field projectId is unset!')
-    if self.updatedProject is None:
-      raise TProtocol.TProtocolException(message='Required field updatedProject is unset!')

<TRUNCATED>

Mime
View raw message