You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/11/21 17:30:47 UTC

[airavata-django-portal] branch master updated (60f7de4 -> 5e0538e)

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

machristie pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git.


    from 60f7de4  AIRAVATA-2907 Improve default cred styling
     new 8ad7025  AIRAVATA-2892 Regenerated Thrift API stubs
     new 16cd821  AIRAVATA-2892 Replace user prof initialization with API call
     new 5e0538e  Check for missing, non-required fields when deserializing

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 airavata/api/Airavata-remote                       |   84 +-
 airavata/api/Airavata.py                           | 9398 +++++++++-----------
 airavata/api/ttypes.py                             |    2 +-
 .../error => model/appcatalog/parser}/__init__.py  |    0
 .../error => model/appcatalog/parser}/constants.py |    0
 airavata/model/appcatalog/parser/ttypes.py         |  905 ++
 airavata/model/experiment/ttypes.py                |   16 +-
 airavata/model/group/ttypes.py                     |    2 +-
 airavata/model/workflow/ttypes.py                  |  940 +-
 .../profile/user/cpi/UserProfileService-remote     |    9 +-
 .../service/profile/user/cpi/UserProfileService.py |  220 +
 .../django_airavata_api/js/models/Experiment.js    |    1 +
 django_airavata/apps/api/thrift_utils.py           |    4 +-
 django_airavata/apps/workspace/signals.py          |   59 +-
 14 files changed, 5986 insertions(+), 5654 deletions(-)
 copy airavata/{service/profile/user/cpi/error => model/appcatalog/parser}/__init__.py (100%)
 copy airavata/{service/profile/user/cpi/error => model/appcatalog/parser}/constants.py (100%)
 create mode 100644 airavata/model/appcatalog/parser/ttypes.py


[airavata-django-portal] 01/03: AIRAVATA-2892 Regenerated Thrift API stubs

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 8ad7025cea26650fbc5908e7e583a0331de29dfc
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Nov 21 11:21:54 2018 -0500

    AIRAVATA-2892 Regenerated Thrift API stubs
---
 airavata/api/Airavata-remote                       |   84 +-
 airavata/api/Airavata.py                           | 9398 +++++++++-----------
 airavata/api/ttypes.py                             |    2 +-
 airavata/model/appcatalog/parser/__init__.py       |    1 +
 airavata/model/appcatalog/parser/constants.py      |   12 +
 airavata/model/appcatalog/parser/ttypes.py         |  905 ++
 airavata/model/experiment/ttypes.py                |   16 +-
 airavata/model/group/ttypes.py                     |    2 +-
 airavata/model/workflow/ttypes.py                  |  940 +-
 .../profile/user/cpi/UserProfileService-remote     |    9 +-
 .../service/profile/user/cpi/UserProfileService.py |  220 +
 11 files changed, 5990 insertions(+), 5599 deletions(-)

diff --git a/airavata/api/Airavata-remote b/airavata/api/Airavata-remote
index 006305b..f5b82b3 100755
--- a/airavata/api/Airavata-remote
+++ b/airavata/api/Airavata-remote
@@ -177,14 +177,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('  bool updateUserStoragePreference(AuthzToken authzToken, string userId, string gatewayID, string userStorageId, UserStoragePreference userStoragePreference)')
     print('  bool deleteUserComputeResourcePreference(AuthzToken authzToken, string userId, string gatewayID, string userComputeResourceId)')
     print('  bool deleteUserStoragePreference(AuthzToken authzToken, string userId, string gatewayID, string userStorageId)')
-    print('   getAllWorkflows(AuthzToken authzToken, string gatewayId)')
     print('   getLatestQueueStatuses(AuthzToken authzToken)')
-    print('  AiravataWorkflow getWorkflow(AuthzToken authzToken, string workflowId)')
-    print('  void deleteWorkflow(AuthzToken authzToken, string workflowId)')
-    print('  string registerWorkflow(AuthzToken authzToken, string gatewayId, AiravataWorkflow workflow)')
-    print('  void updateWorkflow(AuthzToken authzToken, string workflowId, AiravataWorkflow workflow)')
-    print('  string getWorkflowId(AuthzToken authzToken, string workflowName)')
-    print('  bool isWorkflowExistWithName(AuthzToken authzToken, string workflowName)')
     print('  string registerDataProduct(AuthzToken authzToken, DataProductModel dataProductModel)')
     print('  DataProductModel getDataProduct(AuthzToken authzToken, string dataProductUri)')
     print('  string registerReplicaLocation(AuthzToken authzToken, DataReplicaLocationModel replicaLocationModel)')
@@ -212,6 +205,11 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('   getGroupBatchQueueResourcePolicyList(AuthzToken authzToken, string groupResourceProfileId)')
     print('   getGroupComputeResourcePolicyList(AuthzToken authzToken, string groupResourceProfileId)')
     print('  GatewayGroups getGatewayGroups(AuthzToken authzToken)')
+    print('  Parser getParser(AuthzToken authzToken, string parserId)')
+    print('  string saveParser(AuthzToken authzToken, Parser parser)')
+    print('  ParsingTemplate getParsingTemplate(AuthzToken authzToken, string templateId)')
+    print('   getParsingTemplatesForExperiment(AuthzToken authzToken, string experimentId)')
+    print('  string saveParsingTemplate(AuthzToken authzToken, ParsingTemplate parsingTemplate)')
     print('')
     sys.exit(0)
 
@@ -1209,54 +1207,12 @@ elif cmd == 'deleteUserStoragePreference':
         sys.exit(1)
     pp.pprint(client.deleteUserStoragePreference(eval(args[0]), args[1], args[2], args[3],))
 
-elif cmd == 'getAllWorkflows':
-    if len(args) != 2:
-        print('getAllWorkflows requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.getAllWorkflows(eval(args[0]), args[1],))
-
 elif cmd == 'getLatestQueueStatuses':
     if len(args) != 1:
         print('getLatestQueueStatuses requires 1 args')
         sys.exit(1)
     pp.pprint(client.getLatestQueueStatuses(eval(args[0]),))
 
-elif cmd == 'getWorkflow':
-    if len(args) != 2:
-        print('getWorkflow requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.getWorkflow(eval(args[0]), args[1],))
-
-elif cmd == 'deleteWorkflow':
-    if len(args) != 2:
-        print('deleteWorkflow requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.deleteWorkflow(eval(args[0]), args[1],))
-
-elif cmd == 'registerWorkflow':
-    if len(args) != 3:
-        print('registerWorkflow requires 3 args')
-        sys.exit(1)
-    pp.pprint(client.registerWorkflow(eval(args[0]), args[1], eval(args[2]),))
-
-elif cmd == 'updateWorkflow':
-    if len(args) != 3:
-        print('updateWorkflow requires 3 args')
-        sys.exit(1)
-    pp.pprint(client.updateWorkflow(eval(args[0]), args[1], eval(args[2]),))
-
-elif cmd == 'getWorkflowId':
-    if len(args) != 2:
-        print('getWorkflowId requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.getWorkflowId(eval(args[0]), args[1],))
-
-elif cmd == 'isWorkflowExistWithName':
-    if len(args) != 2:
-        print('isWorkflowExistWithName requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.isWorkflowExistWithName(eval(args[0]), args[1],))
-
 elif cmd == 'registerDataProduct':
     if len(args) != 2:
         print('registerDataProduct requires 2 args')
@@ -1419,6 +1375,36 @@ elif cmd == 'getGatewayGroups':
         sys.exit(1)
     pp.pprint(client.getGatewayGroups(eval(args[0]),))
 
+elif cmd == 'getParser':
+    if len(args) != 2:
+        print('getParser requires 2 args')
+        sys.exit(1)
+    pp.pprint(client.getParser(eval(args[0]), args[1],))
+
+elif cmd == 'saveParser':
+    if len(args) != 2:
+        print('saveParser requires 2 args')
+        sys.exit(1)
+    pp.pprint(client.saveParser(eval(args[0]), eval(args[1]),))
+
+elif cmd == 'getParsingTemplate':
+    if len(args) != 2:
+        print('getParsingTemplate requires 2 args')
+        sys.exit(1)
+    pp.pprint(client.getParsingTemplate(eval(args[0]), args[1],))
+
+elif cmd == 'getParsingTemplatesForExperiment':
+    if len(args) != 2:
+        print('getParsingTemplatesForExperiment requires 2 args')
+        sys.exit(1)
+    pp.pprint(client.getParsingTemplatesForExperiment(eval(args[0]), args[1],))
+
+elif cmd == 'saveParsingTemplate':
+    if len(args) != 2:
+        print('saveParsingTemplate requires 2 args')
+        sys.exit(1)
+    pp.pprint(client.saveParsingTemplate(eval(args[0]), eval(args[1]),))
+
 else:
     print('Unrecognized method %s' % cmd)
     sys.exit(1)
diff --git a/airavata/api/Airavata.py b/airavata/api/Airavata.py
index 642f8f1..8f6c5d4 100644
--- a/airavata/api/Airavata.py
+++ b/airavata/api/Airavata.py
@@ -3267,14 +3267,6 @@ class Iface(object):
         """
         pass
 
-    def getAllWorkflows(self, authzToken, gatewayId):
-        """
-        Parameters:
-         - authzToken
-         - gatewayId
-        """
-        pass
-
     def getLatestQueueStatuses(self, authzToken):
         """
         Parameters:
@@ -3282,60 +3274,6 @@ class Iface(object):
         """
         pass
 
-    def getWorkflow(self, authzToken, workflowId):
-        """
-
-        API Methods Related for Work-Flow Submission Features.
-
-
-        Parameters:
-         - authzToken
-         - workflowId
-        """
-        pass
-
-    def deleteWorkflow(self, authzToken, workflowId):
-        """
-        Parameters:
-         - authzToken
-         - workflowId
-        """
-        pass
-
-    def registerWorkflow(self, authzToken, gatewayId, workflow):
-        """
-        Parameters:
-         - authzToken
-         - gatewayId
-         - workflow
-        """
-        pass
-
-    def updateWorkflow(self, authzToken, workflowId, workflow):
-        """
-        Parameters:
-         - authzToken
-         - workflowId
-         - workflow
-        """
-        pass
-
-    def getWorkflowId(self, authzToken, workflowName):
-        """
-        Parameters:
-         - authzToken
-         - workflowName
-        """
-        pass
-
-    def isWorkflowExistWithName(self, authzToken, workflowName):
-        """
-        Parameters:
-         - authzToken
-         - workflowName
-        """
-        pass
-
     def registerDataProduct(self, authzToken, dataProductModel):
         """
         API Methods related to replica catalog
@@ -3568,6 +3506,46 @@ class Iface(object):
         """
         pass
 
+    def getParser(self, authzToken, parserId):
+        """
+        Parameters:
+         - authzToken
+         - parserId
+        """
+        pass
+
+    def saveParser(self, authzToken, parser):
+        """
+        Parameters:
+         - authzToken
+         - parser
+        """
+        pass
+
+    def getParsingTemplate(self, authzToken, templateId):
+        """
+        Parameters:
+         - authzToken
+         - templateId
+        """
+        pass
+
+    def getParsingTemplatesForExperiment(self, authzToken, experimentId):
+        """
+        Parameters:
+         - authzToken
+         - experimentId
+        """
+        pass
+
+    def saveParsingTemplate(self, authzToken, parsingTemplate):
+        """
+        Parameters:
+         - authzToken
+         - parsingTemplate
+        """
+        pass
+
 
 class Client(Iface):
     def __init__(self, iprot, oprot=None):
@@ -12011,47 +11989,6 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteUserStoragePreference failed: unknown result")
 
-    def getAllWorkflows(self, authzToken, gatewayId):
-        """
-        Parameters:
-         - authzToken
-         - gatewayId
-        """
-        self.send_getAllWorkflows(authzToken, gatewayId)
-        return self.recv_getAllWorkflows()
-
-    def send_getAllWorkflows(self, authzToken, gatewayId):
-        self._oprot.writeMessageBegin('getAllWorkflows', TMessageType.CALL, self._seqid)
-        args = getAllWorkflows_args()
-        args.authzToken = authzToken
-        args.gatewayId = gatewayId
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_getAllWorkflows(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = getAllWorkflows_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, "getAllWorkflows failed: unknown result")
-
     def getLatestQueueStatuses(self, authzToken):
         """
         Parameters:
@@ -12091,256 +12028,6 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "getLatestQueueStatuses failed: unknown result")
 
-    def getWorkflow(self, authzToken, workflowId):
-        """
-
-        API Methods Related for Work-Flow Submission Features.
-
-
-        Parameters:
-         - authzToken
-         - workflowId
-        """
-        self.send_getWorkflow(authzToken, workflowId)
-        return self.recv_getWorkflow()
-
-    def send_getWorkflow(self, authzToken, workflowId):
-        self._oprot.writeMessageBegin('getWorkflow', TMessageType.CALL, self._seqid)
-        args = getWorkflow_args()
-        args.authzToken = authzToken
-        args.workflowId = workflowId
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_getWorkflow(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = getWorkflow_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, "getWorkflow failed: unknown result")
-
-    def deleteWorkflow(self, authzToken, workflowId):
-        """
-        Parameters:
-         - authzToken
-         - workflowId
-        """
-        self.send_deleteWorkflow(authzToken, workflowId)
-        self.recv_deleteWorkflow()
-
-    def send_deleteWorkflow(self, authzToken, workflowId):
-        self._oprot.writeMessageBegin('deleteWorkflow', TMessageType.CALL, self._seqid)
-        args = deleteWorkflow_args()
-        args.authzToken = authzToken
-        args.workflowId = workflowId
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_deleteWorkflow(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = deleteWorkflow_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        return
-
-    def registerWorkflow(self, authzToken, gatewayId, workflow):
-        """
-        Parameters:
-         - authzToken
-         - gatewayId
-         - workflow
-        """
-        self.send_registerWorkflow(authzToken, gatewayId, workflow)
-        return self.recv_registerWorkflow()
-
-    def send_registerWorkflow(self, authzToken, gatewayId, workflow):
-        self._oprot.writeMessageBegin('registerWorkflow', TMessageType.CALL, self._seqid)
-        args = registerWorkflow_args()
-        args.authzToken = authzToken
-        args.gatewayId = gatewayId
-        args.workflow = workflow
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_registerWorkflow(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = registerWorkflow_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            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, "registerWorkflow failed: unknown result")
-
-    def updateWorkflow(self, authzToken, workflowId, workflow):
-        """
-        Parameters:
-         - authzToken
-         - workflowId
-         - workflow
-        """
-        self.send_updateWorkflow(authzToken, workflowId, workflow)
-        self.recv_updateWorkflow()
-
-    def send_updateWorkflow(self, authzToken, workflowId, workflow):
-        self._oprot.writeMessageBegin('updateWorkflow', TMessageType.CALL, self._seqid)
-        args = updateWorkflow_args()
-        args.authzToken = authzToken
-        args.workflowId = workflowId
-        args.workflow = workflow
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_updateWorkflow(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = updateWorkflow_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        return
-
-    def getWorkflowId(self, authzToken, workflowName):
-        """
-        Parameters:
-         - authzToken
-         - workflowName
-        """
-        self.send_getWorkflowId(authzToken, workflowName)
-        return self.recv_getWorkflowId()
-
-    def send_getWorkflowId(self, authzToken, workflowName):
-        self._oprot.writeMessageBegin('getWorkflowId', TMessageType.CALL, self._seqid)
-        args = getWorkflowId_args()
-        args.authzToken = authzToken
-        args.workflowName = workflowName
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_getWorkflowId(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = getWorkflowId_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, "getWorkflowId failed: unknown result")
-
-    def isWorkflowExistWithName(self, authzToken, workflowName):
-        """
-        Parameters:
-         - authzToken
-         - workflowName
-        """
-        self.send_isWorkflowExistWithName(authzToken, workflowName)
-        return self.recv_isWorkflowExistWithName()
-
-    def send_isWorkflowExistWithName(self, authzToken, workflowName):
-        self._oprot.writeMessageBegin('isWorkflowExistWithName', TMessageType.CALL, self._seqid)
-        args = isWorkflowExistWithName_args()
-        args.authzToken = authzToken
-        args.workflowName = workflowName
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_isWorkflowExistWithName(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = isWorkflowExistWithName_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, "isWorkflowExistWithName failed: unknown result")
-
     def registerDataProduct(self, authzToken, dataProductModel):
         """
         API Methods related to replica catalog
@@ -13470,6 +13157,211 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "getGatewayGroups failed: unknown result")
 
+    def getParser(self, authzToken, parserId):
+        """
+        Parameters:
+         - authzToken
+         - parserId
+        """
+        self.send_getParser(authzToken, parserId)
+        return self.recv_getParser()
+
+    def send_getParser(self, authzToken, parserId):
+        self._oprot.writeMessageBegin('getParser', TMessageType.CALL, self._seqid)
+        args = getParser_args()
+        args.authzToken = authzToken
+        args.parserId = parserId
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_getParser(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = getParser_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, "getParser failed: unknown result")
+
+    def saveParser(self, authzToken, parser):
+        """
+        Parameters:
+         - authzToken
+         - parser
+        """
+        self.send_saveParser(authzToken, parser)
+        return self.recv_saveParser()
+
+    def send_saveParser(self, authzToken, parser):
+        self._oprot.writeMessageBegin('saveParser', TMessageType.CALL, self._seqid)
+        args = saveParser_args()
+        args.authzToken = authzToken
+        args.parser = parser
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_saveParser(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = saveParser_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, "saveParser failed: unknown result")
+
+    def getParsingTemplate(self, authzToken, templateId):
+        """
+        Parameters:
+         - authzToken
+         - templateId
+        """
+        self.send_getParsingTemplate(authzToken, templateId)
+        return self.recv_getParsingTemplate()
+
+    def send_getParsingTemplate(self, authzToken, templateId):
+        self._oprot.writeMessageBegin('getParsingTemplate', TMessageType.CALL, self._seqid)
+        args = getParsingTemplate_args()
+        args.authzToken = authzToken
+        args.templateId = templateId
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_getParsingTemplate(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = getParsingTemplate_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, "getParsingTemplate failed: unknown result")
+
+    def getParsingTemplatesForExperiment(self, authzToken, experimentId):
+        """
+        Parameters:
+         - authzToken
+         - experimentId
+        """
+        self.send_getParsingTemplatesForExperiment(authzToken, experimentId)
+        return self.recv_getParsingTemplatesForExperiment()
+
+    def send_getParsingTemplatesForExperiment(self, authzToken, experimentId):
+        self._oprot.writeMessageBegin('getParsingTemplatesForExperiment', TMessageType.CALL, self._seqid)
+        args = getParsingTemplatesForExperiment_args()
+        args.authzToken = authzToken
+        args.experimentId = experimentId
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_getParsingTemplatesForExperiment(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = getParsingTemplatesForExperiment_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, "getParsingTemplatesForExperiment failed: unknown result")
+
+    def saveParsingTemplate(self, authzToken, parsingTemplate):
+        """
+        Parameters:
+         - authzToken
+         - parsingTemplate
+        """
+        self.send_saveParsingTemplate(authzToken, parsingTemplate)
+        return self.recv_saveParsingTemplate()
+
+    def send_saveParsingTemplate(self, authzToken, parsingTemplate):
+        self._oprot.writeMessageBegin('saveParsingTemplate', TMessageType.CALL, self._seqid)
+        args = saveParsingTemplate_args()
+        args.authzToken = authzToken
+        args.parsingTemplate = parsingTemplate
+        args.write(self._oprot)
+        self._oprot.writeMessageEnd()
+        self._oprot.trans.flush()
+
+    def recv_saveParsingTemplate(self):
+        iprot = self._iprot
+        (fname, mtype, rseqid) = iprot.readMessageBegin()
+        if mtype == TMessageType.EXCEPTION:
+            x = TApplicationException()
+            x.read(iprot)
+            iprot.readMessageEnd()
+            raise x
+        result = saveParsingTemplate_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, "saveParsingTemplate failed: unknown result")
+
 
 class Processor(Iface, TProcessor):
     def __init__(self, handler):
@@ -13628,14 +13520,7 @@ class Processor(Iface, TProcessor):
         self._processMap["updateUserStoragePreference"] = Processor.process_updateUserStoragePreference
         self._processMap["deleteUserComputeResourcePreference"] = Processor.process_deleteUserComputeResourcePreference
         self._processMap["deleteUserStoragePreference"] = Processor.process_deleteUserStoragePreference
-        self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
         self._processMap["getLatestQueueStatuses"] = Processor.process_getLatestQueueStatuses
-        self._processMap["getWorkflow"] = Processor.process_getWorkflow
-        self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
-        self._processMap["registerWorkflow"] = Processor.process_registerWorkflow
-        self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
-        self._processMap["getWorkflowId"] = Processor.process_getWorkflowId
-        self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
         self._processMap["registerDataProduct"] = Processor.process_registerDataProduct
         self._processMap["getDataProduct"] = Processor.process_getDataProduct
         self._processMap["registerReplicaLocation"] = Processor.process_registerReplicaLocation
@@ -13663,6 +13548,11 @@ class Processor(Iface, TProcessor):
         self._processMap["getGroupBatchQueueResourcePolicyList"] = Processor.process_getGroupBatchQueueResourcePolicyList
         self._processMap["getGroupComputeResourcePolicyList"] = Processor.process_getGroupComputeResourcePolicyList
         self._processMap["getGatewayGroups"] = Processor.process_getGatewayGroups
+        self._processMap["getParser"] = Processor.process_getParser
+        self._processMap["saveParser"] = Processor.process_saveParser
+        self._processMap["getParsingTemplate"] = Processor.process_getParsingTemplate
+        self._processMap["getParsingTemplatesForExperiment"] = Processor.process_getParsingTemplatesForExperiment
+        self._processMap["saveParsingTemplate"] = Processor.process_saveParsingTemplate
 
     def process(self, iprot, oprot):
         (name, type, seqid) = iprot.readMessageBegin()
@@ -18455,37 +18345,6 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
-    def process_getAllWorkflows(self, seqid, iprot, oprot):
-        args = getAllWorkflows_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = getAllWorkflows_result()
-        try:
-            result.success = self._handler.getAllWorkflows(args.authzToken, args.gatewayId)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("getAllWorkflows", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
     def process_getLatestQueueStatuses(self, seqid, iprot, oprot):
         args = getLatestQueueStatuses_args()
         args.read(iprot)
@@ -18517,192 +18376,6 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
-    def process_getWorkflow(self, seqid, iprot, oprot):
-        args = getWorkflow_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = getWorkflow_result()
-        try:
-            result.success = self._handler.getWorkflow(args.authzToken, args.workflowId)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("getWorkflow", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_deleteWorkflow(self, seqid, iprot, oprot):
-        args = deleteWorkflow_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = deleteWorkflow_result()
-        try:
-            self._handler.deleteWorkflow(args.authzToken, args.workflowId)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("deleteWorkflow", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_registerWorkflow(self, seqid, iprot, oprot):
-        args = registerWorkflow_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = registerWorkflow_result()
-        try:
-            result.success = self._handler.registerWorkflow(args.authzToken, args.gatewayId, args.workflow)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("registerWorkflow", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_updateWorkflow(self, seqid, iprot, oprot):
-        args = updateWorkflow_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = updateWorkflow_result()
-        try:
-            self._handler.updateWorkflow(args.authzToken, args.workflowId, args.workflow)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("updateWorkflow", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_getWorkflowId(self, seqid, iprot, oprot):
-        args = getWorkflowId_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = getWorkflowId_result()
-        try:
-            result.success = self._handler.getWorkflowId(args.authzToken, args.workflowName)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("getWorkflowId", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_isWorkflowExistWithName(self, seqid, iprot, oprot):
-        args = isWorkflowExistWithName_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = isWorkflowExistWithName_result()
-        try:
-            result.success = self._handler.isWorkflowExistWithName(args.authzToken, args.workflowName)
-            msg_type = TMessageType.REPLY
-        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-            raise
-        except airavata.api.error.ttypes.InvalidRequestException as ire:
-            msg_type = TMessageType.REPLY
-            result.ire = ire
-        except airavata.api.error.ttypes.AiravataClientException as ace:
-            msg_type = TMessageType.REPLY
-            result.ace = ace
-        except airavata.api.error.ttypes.AiravataSystemException as ase:
-            msg_type = TMessageType.REPLY
-            result.ase = ase
-        except airavata.api.error.ttypes.AuthorizationException as ae:
-            msg_type = TMessageType.REPLY
-            result.ae = ae
-        except Exception as ex:
-            msg_type = TMessageType.EXCEPTION
-            logging.exception(ex)
-            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-        oprot.writeMessageBegin("isWorkflowExistWithName", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
     def process_registerDataProduct(self, seqid, iprot, oprot):
         args = registerDataProduct_args()
         args.read(iprot)
@@ -19540,6 +19213,161 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
+    def process_getParser(self, seqid, iprot, oprot):
+        args = getParser_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = getParser_result()
+        try:
+            result.success = self._handler.getParser(args.authzToken, args.parserId)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("getParser", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
+    def process_saveParser(self, seqid, iprot, oprot):
+        args = saveParser_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = saveParser_result()
+        try:
+            result.success = self._handler.saveParser(args.authzToken, args.parser)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("saveParser", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
+    def process_getParsingTemplate(self, seqid, iprot, oprot):
+        args = getParsingTemplate_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = getParsingTemplate_result()
+        try:
+            result.success = self._handler.getParsingTemplate(args.authzToken, args.templateId)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("getParsingTemplate", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
+    def process_getParsingTemplatesForExperiment(self, seqid, iprot, oprot):
+        args = getParsingTemplatesForExperiment_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = getParsingTemplatesForExperiment_result()
+        try:
+            result.success = self._handler.getParsingTemplatesForExperiment(args.authzToken, args.experimentId)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("getParsingTemplatesForExperiment", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
+    def process_saveParsingTemplate(self, seqid, iprot, oprot):
+        args = saveParsingTemplate_args()
+        args.read(iprot)
+        iprot.readMessageEnd()
+        result = saveParsingTemplate_result()
+        try:
+            result.success = self._handler.saveParsingTemplate(args.authzToken, args.parsingTemplate)
+            msg_type = TMessageType.REPLY
+        except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+            raise
+        except airavata.api.error.ttypes.InvalidRequestException as ire:
+            msg_type = TMessageType.REPLY
+            result.ire = ire
+        except airavata.api.error.ttypes.AiravataClientException as ace:
+            msg_type = TMessageType.REPLY
+            result.ace = ace
+        except airavata.api.error.ttypes.AiravataSystemException as ase:
+            msg_type = TMessageType.REPLY
+            result.ase = ase
+        except airavata.api.error.ttypes.AuthorizationException as ae:
+            msg_type = TMessageType.REPLY
+            result.ae = ae
+        except Exception as ex:
+            msg_type = TMessageType.EXCEPTION
+            logging.exception(ex)
+            result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+        oprot.writeMessageBegin("saveParsingTemplate", msg_type, seqid)
+        result.write(oprot)
+        oprot.writeMessageEnd()
+        oprot.trans.flush()
+
 # HELPER FUNCTIONS AND STRUCTURES
 
 
@@ -24725,292 +24553,29 @@ class searchExperiments_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRING:
-                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.MAP:
-                    self.filters = {}
-                    (_ktype52, _vtype53, _size51) = iprot.readMapBegin()
-                    for _i55 in range(_size51):
-                        _key56 = iprot.readI32()
-                        _val57 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.filters[_key56] = _val57
-                    iprot.readMapEnd()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 5:
-                if ftype == TType.I32:
-                    self.limit = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 6:
-                if ftype == TType.I32:
-                    self.offset = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            else:
-                iprot.skip(ftype)
-            iprot.readFieldEnd()
-        iprot.readStructEnd()
-
-    def write(self, oprot):
-        if oprot._fast_encode is not None and self.thrift_spec is not None:
-            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
-            return
-        oprot.writeStructBegin('searchExperiments_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
-            oprot.writeFieldEnd()
-        if self.userName is not None:
-            oprot.writeFieldBegin('userName', TType.STRING, 3)
-            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
-            oprot.writeFieldEnd()
-        if self.filters is not None:
-            oprot.writeFieldBegin('filters', TType.MAP, 4)
-            oprot.writeMapBegin(TType.I32, TType.STRING, len(self.filters))
-            for kiter58, viter59 in self.filters.items():
-                oprot.writeI32(kiter58)
-                oprot.writeString(viter59.encode('utf-8') if sys.version_info[0] == 2 else viter59)
-            oprot.writeMapEnd()
-            oprot.writeFieldEnd()
-        if self.limit is not None:
-            oprot.writeFieldBegin('limit', TType.I32, 5)
-            oprot.writeI32(self.limit)
-            oprot.writeFieldEnd()
-        if self.offset is not None:
-            oprot.writeFieldBegin('offset', TType.I32, 6)
-            oprot.writeI32(self.offset)
-            oprot.writeFieldEnd()
-        oprot.writeFieldStop()
-        oprot.writeStructEnd()
-
-    def validate(self):
-        if self.authzToken is None:
-            raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.userName is None:
-            raise TProtocolException(message='Required field userName is unset!')
-        if self.limit is None:
-            raise TProtocolException(message='Required field limit is unset!')
-        if self.offset is None:
-            raise TProtocolException(message='Required field offset is unset!')
-        return
-
-    def __repr__(self):
-        L = ['%s=%r' % (key, value)
-             for key, value in self.__dict__.items()]
-        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 searchExperiments_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - ace
-     - ase
-     - ae
-    """
-
-    thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.experiment.ttypes.ExperimentSummaryModel, airavata.model.experiment.ttypes.ExperimentSummaryModel.thrift_spec), False), None, ),  # 0
-        (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
-        (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
-            iprot._fast_decode(self, iprot, (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 = []
-                    (_etype63, _size60) = iprot.readListBegin()
-                    for _i64 in range(_size60):
-                        _elem65 = airavata.model.experiment.ttypes.ExperimentSummaryModel()
-                        _elem65.read(iprot)
-                        self.success.append(_elem65)
-                    iprot.readListEnd()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 1:
-                if ftype == TType.STRUCT:
-                    self.ire = airavata.api.error.ttypes.InvalidRequestException()
-                    self.ire.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 2:
-                if ftype == TType.STRUCT:
-                    self.ace = airavata.api.error.ttypes.AiravataClientException()
-                    self.ace.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
-                    self.ase.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.ae = 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._fast_encode is not None and self.thrift_spec is not None:
-            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
-            return
-        oprot.writeStructBegin('searchExperiments_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter66 in self.success:
-                iter66.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 __repr__(self):
-        L = ['%s=%r' % (key, value)
-             for key, value in self.__dict__.items()]
-        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 getExperimentStatistics_args(object):
-    """
-    Attributes:
-     - authzToken
-     - gatewayId
-     - fromTime
-     - toTime
-     - userName
-     - applicationName
-     - resourceHostName
-    """
-
-    thrift_spec = (
-        None,  # 0
-        (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.I64, 'fromTime', None, None, ),  # 3
-        (4, TType.I64, 'toTime', None, None, ),  # 4
-        (5, TType.STRING, 'userName', 'UTF8', None, ),  # 5
-        (6, TType.STRING, 'applicationName', 'UTF8', None, ),  # 6
-        (7, TType.STRING, 'resourceHostName', 'UTF8', None, ),  # 7
-    )
-
-    def __init__(self, authzToken=None, gatewayId=None, fromTime=None, toTime=None, userName=None, applicationName=None, resourceHostName=None,):
-        self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.fromTime = fromTime
-        self.toTime = toTime
-        self.userName = userName
-        self.applicationName = applicationName
-        self.resourceHostName = resourceHostName
-
-    def read(self, iprot):
-        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
-            iprot._fast_decode(self, iprot, (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 = airavata.model.security.ttypes.AuthzToken()
-                    self.authzToken.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 2:
-                if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I64:
-                    self.fromTime = iprot.readI64()
+                if ftype == TType.STRING:
+                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 4:
-                if ftype == TType.I64:
-                    self.toTime = iprot.readI64()
+                if ftype == TType.MAP:
+                    self.filters = {}
+                    (_ktype52, _vtype53, _size51) = iprot.readMapBegin()
+                    for _i55 in range(_size51):
+                        _key56 = iprot.readI32()
+                        _val57 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.filters[_key56] = _val57
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 5:
-                if ftype == TType.STRING:
-                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.I32:
+                    self.limit = iprot.readI32()
                 else:
                     iprot.skip(ftype)
             elif fid == 6:
-                if ftype == TType.STRING:
-                    self.applicationName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 7:
-                if ftype == TType.STRING:
-                    self.resourceHostName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.I32:
+                    self.offset = iprot.readI32()
                 else:
                     iprot.skip(ftype)
             else:
@@ -25022,7 +24587,7 @@ class getExperimentStatistics_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentStatistics_args')
+        oprot.writeStructBegin('searchExperiments_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -25031,25 +24596,25 @@ class getExperimentStatistics_args(object):
             oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
             oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
-        if self.fromTime is not None:
-            oprot.writeFieldBegin('fromTime', TType.I64, 3)
-            oprot.writeI64(self.fromTime)
-            oprot.writeFieldEnd()
-        if self.toTime is not None:
-            oprot.writeFieldBegin('toTime', TType.I64, 4)
-            oprot.writeI64(self.toTime)
-            oprot.writeFieldEnd()
         if self.userName is not None:
-            oprot.writeFieldBegin('userName', TType.STRING, 5)
+            oprot.writeFieldBegin('userName', TType.STRING, 3)
             oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
             oprot.writeFieldEnd()
-        if self.applicationName is not None:
-            oprot.writeFieldBegin('applicationName', TType.STRING, 6)
-            oprot.writeString(self.applicationName.encode('utf-8') if sys.version_info[0] == 2 else self.applicationName)
+        if self.filters is not None:
+            oprot.writeFieldBegin('filters', TType.MAP, 4)
+            oprot.writeMapBegin(TType.I32, TType.STRING, len(self.filters))
+            for kiter58, viter59 in self.filters.items():
+                oprot.writeI32(kiter58)
+                oprot.writeString(viter59.encode('utf-8') if sys.version_info[0] == 2 else viter59)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
-        if self.resourceHostName is not None:
-            oprot.writeFieldBegin('resourceHostName', TType.STRING, 7)
-            oprot.writeString(self.resourceHostName.encode('utf-8') if sys.version_info[0] == 2 else self.resourceHostName)
+        if self.limit is not None:
+            oprot.writeFieldBegin('limit', TType.I32, 5)
+            oprot.writeI32(self.limit)
+            oprot.writeFieldEnd()
+        if self.offset is not None:
+            oprot.writeFieldBegin('offset', TType.I32, 6)
+            oprot.writeI32(self.offset)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -25059,10 +24624,12 @@ class getExperimentStatistics_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.gatewayId is None:
             raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.fromTime is None:
-            raise TProtocolException(message='Required field fromTime is unset!')
-        if self.toTime is None:
-            raise TProtocolException(message='Required field toTime is unset!')
+        if self.userName is None:
+            raise TProtocolException(message='Required field userName is unset!')
+        if self.limit is None:
+            raise TProtocolException(message='Required field limit is unset!')
+        if self.offset is None:
+            raise TProtocolException(message='Required field offset is unset!')
         return
 
     def __repr__(self):
@@ -25077,7 +24644,7 @@ class getExperimentStatistics_args(object):
         return not (self == other)
 
 
-class getExperimentStatistics_result(object):
+class searchExperiments_result(object):
     """
     Attributes:
      - success
@@ -25088,7 +24655,7 @@ class getExperimentStatistics_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentStatistics, airavata.model.experiment.ttypes.ExperimentStatistics.thrift_spec), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.experiment.ttypes.ExperimentSummaryModel, airavata.model.experiment.ttypes.ExperimentSummaryModel.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -25112,9 +24679,14 @@ class getExperimentStatistics_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.experiment.ttypes.ExperimentStatistics()
-                    self.success.read(iprot)
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype63, _size60) = iprot.readListBegin()
+                    for _i64 in range(_size60):
+                        _elem65 = airavata.model.experiment.ttypes.ExperimentSummaryModel()
+                        _elem65.read(iprot)
+                        self.success.append(_elem65)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25150,10 +24722,13 @@ class getExperimentStatistics_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentStatistics_result')
+        oprot.writeStructBegin('searchExperiments_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter66 in self.success:
+                iter66.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -25189,28 +24764,37 @@ class getExperimentStatistics_result(object):
         return not (self == other)
 
 
-class getExperimentsInProject_args(object):
+class getExperimentStatistics_args(object):
     """
     Attributes:
      - authzToken
-     - projectId
-     - limit
-     - offset
+     - gatewayId
+     - fromTime
+     - toTime
+     - userName
+     - applicationName
+     - resourceHostName
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'projectId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'limit', None, None, ),  # 3
-        (4, TType.I32, 'offset', None, None, ),  # 4
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.I64, 'fromTime', None, None, ),  # 3
+        (4, TType.I64, 'toTime', None, None, ),  # 4
+        (5, TType.STRING, 'userName', 'UTF8', None, ),  # 5
+        (6, TType.STRING, 'applicationName', 'UTF8', None, ),  # 6
+        (7, TType.STRING, 'resourceHostName', 'UTF8', None, ),  # 7
     )
 
-    def __init__(self, authzToken=None, projectId=None, limit=None, offset=None,):
+    def __init__(self, authzToken=None, gatewayId=None, fromTime=None, toTime=None, userName=None, applicationName=None, resourceHostName=None,):
         self.authzToken = authzToken
-        self.projectId = projectId
-        self.limit = limit
-        self.offset = offset
+        self.gatewayId = gatewayId
+        self.fromTime = fromTime
+        self.toTime = toTime
+        self.userName = userName
+        self.applicationName = applicationName
+        self.resourceHostName = resourceHostName
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -25229,17 +24813,32 @@ class getExperimentsInProject_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.projectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.I32:
-                    self.limit = iprot.readI32()
+                if ftype == TType.I64:
+                    self.fromTime = iprot.readI64()
                 else:
                     iprot.skip(ftype)
             elif fid == 4:
-                if ftype == TType.I32:
-                    self.offset = iprot.readI32()
+                if ftype == TType.I64:
+                    self.toTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.applicationName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.resourceHostName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -25251,22 +24850,34 @@ class getExperimentsInProject_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentsInProject_args')
+        oprot.writeStructBegin('getExperimentStatistics_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.encode('utf-8') if sys.version_info[0] == 2 else self.projectId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
-        if self.limit is not None:
-            oprot.writeFieldBegin('limit', TType.I32, 3)
-            oprot.writeI32(self.limit)
+        if self.fromTime is not None:
+            oprot.writeFieldBegin('fromTime', TType.I64, 3)
+            oprot.writeI64(self.fromTime)
             oprot.writeFieldEnd()
-        if self.offset is not None:
-            oprot.writeFieldBegin('offset', TType.I32, 4)
-            oprot.writeI32(self.offset)
+        if self.toTime is not None:
+            oprot.writeFieldBegin('toTime', TType.I64, 4)
+            oprot.writeI64(self.toTime)
+            oprot.writeFieldEnd()
+        if self.userName is not None:
+            oprot.writeFieldBegin('userName', TType.STRING, 5)
+            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
+            oprot.writeFieldEnd()
+        if self.applicationName is not None:
+            oprot.writeFieldBegin('applicationName', TType.STRING, 6)
+            oprot.writeString(self.applicationName.encode('utf-8') if sys.version_info[0] == 2 else self.applicationName)
+            oprot.writeFieldEnd()
+        if self.resourceHostName is not None:
+            oprot.writeFieldBegin('resourceHostName', TType.STRING, 7)
+            oprot.writeString(self.resourceHostName.encode('utf-8') if sys.version_info[0] == 2 else self.resourceHostName)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -25274,12 +24885,12 @@ class getExperimentsInProject_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.projectId is None:
-            raise TProtocolException(message='Required field projectId is unset!')
-        if self.limit is None:
-            raise TProtocolException(message='Required field limit is unset!')
-        if self.offset is None:
-            raise TProtocolException(message='Required field offset is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.fromTime is None:
+            raise TProtocolException(message='Required field fromTime is unset!')
+        if self.toTime is None:
+            raise TProtocolException(message='Required field toTime is unset!')
         return
 
     def __repr__(self):
@@ -25294,32 +24905,29 @@ class getExperimentsInProject_args(object):
         return not (self == other)
 
 
-class getExperimentsInProject_result(object):
+class getExperimentStatistics_result(object):
     """
     Attributes:
      - success
      - ire
      - ace
      - ase
-     - pnfe
      - ae
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), False), None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentStatistics, airavata.model.experiment.ttypes.ExperimentStatistics.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'pnfe', (airavata.api.error.ttypes.ProjectNotFoundException, airavata.api.error.ttypes.ProjectNotFoundException.thrift_spec), None, ),  # 4
-        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
+        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, success=None, ire=None, ace=None, ase=None, pnfe=None, ae=None,):
+    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.pnfe = pnfe
         self.ae = ae
 
     def read(self, iprot):
@@ -25332,14 +24940,9 @@ class getExperimentsInProject_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype70, _size67) = iprot.readListBegin()
-                    for _i71 in range(_size67):
-                        _elem72 = airavata.model.experiment.ttypes.ExperimentModel()
-                        _elem72.read(iprot)
-                        self.success.append(_elem72)
-                    iprot.readListEnd()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.experiment.ttypes.ExperimentStatistics()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25362,12 +24965,6 @@ class getExperimentsInProject_result(object):
                     iprot.skip(ftype)
             elif fid == 4:
                 if ftype == TType.STRUCT:
-                    self.pnfe = airavata.api.error.ttypes.ProjectNotFoundException()
-                    self.pnfe.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 5:
-                if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
                 else:
@@ -25381,13 +24978,10 @@ class getExperimentsInProject_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentsInProject_result')
+        oprot.writeStructBegin('getExperimentStatistics_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter73 in self.success:
-                iter73.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -25401,12 +24995,8 @@ class getExperimentsInProject_result(object):
             oprot.writeFieldBegin('ase', TType.STRUCT, 3)
             self.ase.write(oprot)
             oprot.writeFieldEnd()
-        if self.pnfe is not None:
-            oprot.writeFieldBegin('pnfe', TType.STRUCT, 4)
-            self.pnfe.write(oprot)
-            oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -25427,12 +25017,11 @@ class getExperimentsInProject_result(object):
         return not (self == other)
 
 
-class getUserExperiments_args(object):
+class getExperimentsInProject_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - userName
+     - projectId
      - limit
      - offset
     """
@@ -25440,16 +25029,14 @@ class getUserExperiments_args(object):
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'userName', 'UTF8', None, ),  # 3
-        (4, TType.I32, 'limit', None, None, ),  # 4
-        (5, TType.I32, 'offset', None, None, ),  # 5
+        (2, TType.STRING, 'projectId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'limit', None, None, ),  # 3
+        (4, TType.I32, 'offset', None, None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, userName=None, limit=None, offset=None,):
+    def __init__(self, authzToken=None, projectId=None, limit=None, offset=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.userName = userName
+        self.projectId = projectId
         self.limit = limit
         self.offset = offset
 
@@ -25470,20 +25057,15 @@ class getUserExperiments_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.projectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRING:
-                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
                 if ftype == TType.I32:
                     self.limit = iprot.readI32()
                 else:
                     iprot.skip(ftype)
-            elif fid == 5:
+            elif fid == 4:
                 if ftype == TType.I32:
                     self.offset = iprot.readI32()
                 else:
@@ -25497,25 +25079,21 @@ class getUserExperiments_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getUserExperiments_args')
+        oprot.writeStructBegin('getExperimentsInProject_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
-            oprot.writeFieldEnd()
-        if self.userName is not None:
-            oprot.writeFieldBegin('userName', TType.STRING, 3)
-            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
+        if self.projectId is not None:
+            oprot.writeFieldBegin('projectId', TType.STRING, 2)
+            oprot.writeString(self.projectId.encode('utf-8') if sys.version_info[0] == 2 else self.projectId)
             oprot.writeFieldEnd()
         if self.limit is not None:
-            oprot.writeFieldBegin('limit', TType.I32, 4)
+            oprot.writeFieldBegin('limit', TType.I32, 3)
             oprot.writeI32(self.limit)
             oprot.writeFieldEnd()
         if self.offset is not None:
-            oprot.writeFieldBegin('offset', TType.I32, 5)
+            oprot.writeFieldBegin('offset', TType.I32, 4)
             oprot.writeI32(self.offset)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -25524,10 +25102,8 @@ class getUserExperiments_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.userName is None:
-            raise TProtocolException(message='Required field userName is unset!')
+        if self.projectId is None:
+            raise TProtocolException(message='Required field projectId is unset!')
         if self.limit is None:
             raise TProtocolException(message='Required field limit is unset!')
         if self.offset is None:
@@ -25546,13 +25122,14 @@ class getUserExperiments_args(object):
         return not (self == other)
 
 
-class getUserExperiments_result(object):
+class getExperimentsInProject_result(object):
     """
     Attributes:
      - success
      - ire
      - ace
      - ase
+     - pnfe
      - ae
     """
 
@@ -25561,14 +25138,16 @@ class getUserExperiments_result(object):
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
+        (4, TType.STRUCT, 'pnfe', (airavata.api.error.ttypes.ProjectNotFoundException, airavata.api.error.ttypes.ProjectNotFoundException.thrift_spec), None, ),  # 4
+        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, ace=None, ase=None, pnfe=None, ae=None,):
         self.success = success
         self.ire = ire
         self.ace = ace
         self.ase = ase
+        self.pnfe = pnfe
         self.ae = ae
 
     def read(self, iprot):
@@ -25583,11 +25162,11 @@ class getUserExperiments_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype77, _size74) = iprot.readListBegin()
-                    for _i78 in range(_size74):
-                        _elem79 = airavata.model.experiment.ttypes.ExperimentModel()
-                        _elem79.read(iprot)
-                        self.success.append(_elem79)
+                    (_etype70, _size67) = iprot.readListBegin()
+                    for _i71 in range(_size67):
+                        _elem72 = airavata.model.experiment.ttypes.ExperimentModel()
+                        _elem72.read(iprot)
+                        self.success.append(_elem72)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -25611,6 +25190,12 @@ class getUserExperiments_result(object):
                     iprot.skip(ftype)
             elif fid == 4:
                 if ftype == TType.STRUCT:
+                    self.pnfe = airavata.api.error.ttypes.ProjectNotFoundException()
+                    self.pnfe.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
                 else:
@@ -25624,12 +25209,12 @@ class getUserExperiments_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getUserExperiments_result')
+        oprot.writeStructBegin('getExperimentsInProject_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter80 in self.success:
-                iter80.write(oprot)
+            for iter73 in self.success:
+                iter73.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -25644,8 +25229,12 @@ class getUserExperiments_result(object):
             oprot.writeFieldBegin('ase', TType.STRUCT, 3)
             self.ase.write(oprot)
             oprot.writeFieldEnd()
+        if self.pnfe is not None:
+            oprot.writeFieldBegin('pnfe', TType.STRUCT, 4)
+            self.pnfe.write(oprot)
+            oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -25666,25 +25255,31 @@ class getUserExperiments_result(object):
         return not (self == other)
 
 
-class createExperiment_args(object):
+class getUserExperiments_args(object):
     """
     Attributes:
      - authzToken
      - gatewayId
-     - experiment
+     - userName
+     - limit
+     - offset
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'experiment', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 3
+        (3, TType.STRING, 'userName', 'UTF8', None, ),  # 3
+        (4, TType.I32, 'limit', None, None, ),  # 4
+        (5, TType.I32, 'offset', None, None, ),  # 5
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, experiment=None,):
+    def __init__(self, authzToken=None, gatewayId=None, userName=None, limit=None, offset=None,):
         self.authzToken = authzToken
         self.gatewayId = gatewayId
-        self.experiment = experiment
+        self.userName = userName
+        self.limit = limit
+        self.offset = offset
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -25707,9 +25302,18 @@ class createExperiment_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.experiment = airavata.model.experiment.ttypes.ExperimentModel()
-                    self.experiment.read(iprot)
+                if ftype == TType.STRING:
+                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.I32:
+                    self.limit = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.I32:
+                    self.offset = iprot.readI32()
                 else:
                     iprot.skip(ftype)
             else:
@@ -25721,7 +25325,7 @@ class createExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('createExperiment_args')
+        oprot.writeStructBegin('getUserExperiments_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -25730,9 +25334,17 @@ class createExperiment_args(object):
             oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
             oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
-        if self.experiment is not None:
-            oprot.writeFieldBegin('experiment', TType.STRUCT, 3)
-            self.experiment.write(oprot)
+        if self.userName is not None:
+            oprot.writeFieldBegin('userName', TType.STRING, 3)
+            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
+            oprot.writeFieldEnd()
+        if self.limit is not None:
+            oprot.writeFieldBegin('limit', TType.I32, 4)
+            oprot.writeI32(self.limit)
+            oprot.writeFieldEnd()
+        if self.offset is not None:
+            oprot.writeFieldBegin('offset', TType.I32, 5)
+            oprot.writeI32(self.offset)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -25742,8 +25354,12 @@ class createExperiment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.gatewayId is None:
             raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.experiment is None:
-            raise TProtocolException(message='Required field experiment is unset!')
+        if self.userName is None:
+            raise TProtocolException(message='Required field userName is unset!')
+        if self.limit is None:
+            raise TProtocolException(message='Required field limit is unset!')
+        if self.offset is None:
+            raise TProtocolException(message='Required field offset is unset!')
         return
 
     def __repr__(self):
@@ -25758,7 +25374,7 @@ class createExperiment_args(object):
         return not (self == other)
 
 
-class createExperiment_result(object):
+class getUserExperiments_result(object):
     """
     Attributes:
      - success
@@ -25769,7 +25385,7 @@ class createExperiment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -25793,8 +25409,14 @@ class createExperiment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype77, _size74) = iprot.readListBegin()
+                    for _i78 in range(_size74):
+                        _elem79 = airavata.model.experiment.ttypes.ExperimentModel()
+                        _elem79.read(iprot)
+                        self.success.append(_elem79)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25830,10 +25452,13 @@ class createExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('createExperiment_result')
+        oprot.writeStructBegin('getUserExperiments_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter80 in self.success:
+                iter80.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -25869,22 +25494,25 @@ class createExperiment_result(object):
         return not (self == other)
 
 
-class deleteExperiment_args(object):
+class createExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - experimentId
+     - gatewayId
+     - experiment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'experimentId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'experiment', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, experimentId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, experiment=None,):
         self.authzToken = authzToken
-        self.experimentId = experimentId
+        self.gatewayId = gatewayId
+        self.experiment = experiment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -25903,7 +25531,13 @@ class deleteExperiment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.experimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.experiment = airavata.model.experiment.ttypes.ExperimentModel()
+                    self.experiment.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -25915,14 +25549,18 @@ class deleteExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteExperiment_args')
+        oprot.writeStructBegin('createExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.experimentId is not None:
-            oprot.writeFieldBegin('experimentId', TType.STRING, 2)
-            oprot.writeString(self.experimentId.encode('utf-8') if sys.version_info[0] == 2 else self.experimentId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.experiment is not None:
+            oprot.writeFieldBegin('experiment', TType.STRUCT, 3)
+            self.experiment.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -25930,8 +25568,10 @@ class deleteExperiment_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.experimentId is None:
-            raise TProtocolException(message='Required field experimentId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.experiment is None:
+            raise TProtocolException(message='Required field experiment is unset!')
         return
 
     def __repr__(self):
@@ -25946,7 +25586,7 @@ class deleteExperiment_args(object):
         return not (self == other)
 
 
-class deleteExperiment_result(object):
+class createExperiment_result(object):
     """
     Attributes:
      - success
@@ -25957,7 +25597,7 @@ class deleteExperiment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -25981,8 +25621,8 @@ class deleteExperiment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -26018,10 +25658,10 @@ class deleteExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteExperiment_result')
+        oprot.writeStructBegin('createExperiment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -26057,22 +25697,22 @@ class deleteExperiment_result(object):
         return not (self == other)
 
 
-class getExperiment_args(object):
+class deleteExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
+     - experimentId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'experimentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, experimentId=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
+        self.experimentId = experimentId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -26091,7 +25731,7 @@ class getExperiment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.experimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -26103,14 +25743,14 @@ class getExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperiment_args')
+        oprot.writeStructBegin('deleteExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.airavataExperimentId is not None:
-            oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
-            oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
+        if self.experimentId is not None:
+            oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+            oprot.writeString(self.experimentId.encode('utf-8') if sys.version_info[0] == 2 else self.experimentId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -26118,8 +25758,8 @@ class getExperiment_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.airavataExperimentId is None:
-            raise TProtocolException(message='Required field airavataExperimentId is unset!')
+        if self.experimentId is None:
+            raise TProtocolException(message='Required field experimentId is unset!')
         return
 
     def __repr__(self):
@@ -26134,30 +25774,27 @@ class getExperiment_args(object):
         return not (self == other)
 
 
-class getExperiment_result(object):
+class deleteExperiment_result(object):
     """
     Attributes:
      - success
      - ire
-     - enf
      - ace
      - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
-        (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
-        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
+        (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
+        (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
+        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
         self.success = success
         self.ire = ire
-        self.enf = enf
         self.ace = ace
         self.ase = ase
         self.ae = ae
@@ -26172,9 +25809,8 @@ class getExperiment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.experiment.ttypes.ExperimentModel()
-                    self.success.read(iprot)
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -26185,23 +25821,17 @@ class getExperiment_result(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRUCT:
-                    self.enf = airavata.api.error.ttypes.ExperimentNotFoundException()
-                    self.enf.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
                     self.ace = airavata.api.error.ttypes.AiravataClientException()
                     self.ace.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 4:
+            elif fid == 3:
                 if ftype == TType.STRUCT:
                     self.ase = airavata.api.error.ttypes.AiravataSystemException()
                     self.ase.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 5:
+            elif fid == 4:
                 if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
@@ -26216,29 +25846,25 @@ class getExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperiment_result')
+        oprot.writeStructBegin('deleteExperiment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            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.enf is not None:
-            oprot.writeFieldBegin('enf', TType.STRUCT, 2)
-            self.enf.write(oprot)
-            oprot.writeFieldEnd()
         if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
             self.ace.write(oprot)
             oprot.writeFieldEnd()
         if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
             self.ase.write(oprot)
             oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -26259,7 +25885,7 @@ class getExperiment_result(object):
         return not (self == other)
 
 
-class getExperimentByAdmin_args(object):
+class getExperiment_args(object):
     """
     Attributes:
      - authzToken
@@ -26305,7 +25931,7 @@ class getExperimentByAdmin_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentByAdmin_args')
+        oprot.writeStructBegin('getExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26336,7 +25962,7 @@ class getExperimentByAdmin_args(object):
         return not (self == other)
 
 
-class getExperimentByAdmin_result(object):
+class getExperiment_result(object):
     """
     Attributes:
      - success
@@ -26418,7 +26044,7 @@ class getExperimentByAdmin_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentByAdmin_result')
+        oprot.writeStructBegin('getExperiment_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -26461,7 +26087,7 @@ class getExperimentByAdmin_result(object):
         return not (self == other)
 
 
-class getDetailedExperimentTree_args(object):
+class getExperimentByAdmin_args(object):
     """
     Attributes:
      - authzToken
@@ -26507,7 +26133,7 @@ class getDetailedExperimentTree_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getDetailedExperimentTree_args')
+        oprot.writeStructBegin('getExperimentByAdmin_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26538,7 +26164,7 @@ class getDetailedExperimentTree_args(object):
         return not (self == other)
 
 
-class getDetailedExperimentTree_result(object):
+class getExperimentByAdmin_result(object):
     """
     Attributes:
      - success
@@ -26620,7 +26246,7 @@ class getDetailedExperimentTree_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getDetailedExperimentTree_result')
+        oprot.writeStructBegin('getExperimentByAdmin_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -26663,25 +26289,22 @@ class getDetailedExperimentTree_result(object):
         return not (self == other)
 
 
-class updateExperiment_args(object):
+class getDetailedExperimentTree_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
-     - experiment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'experiment', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, experiment=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
-        self.experiment = experiment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -26703,12 +26326,6 @@ class updateExperiment_args(object):
                     self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.experiment = airavata.model.experiment.ttypes.ExperimentModel()
-                    self.experiment.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -26718,7 +26335,7 @@ class updateExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateExperiment_args')
+        oprot.writeStructBegin('getDetailedExperimentTree_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26727,10 +26344,6 @@ class updateExperiment_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
-        if self.experiment is not None:
-            oprot.writeFieldBegin('experiment', TType.STRUCT, 3)
-            self.experiment.write(oprot)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -26739,8 +26352,6 @@ class updateExperiment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
-        if self.experiment is None:
-            raise TProtocolException(message='Required field experiment is unset!')
         return
 
     def __repr__(self):
@@ -26755,9 +26366,10 @@ class updateExperiment_args(object):
         return not (self == other)
 
 
-class updateExperiment_result(object):
+class getDetailedExperimentTree_result(object):
     """
     Attributes:
+     - success
      - ire
      - enf
      - ace
@@ -26766,7 +26378,7 @@ class updateExperiment_result(object):
     """
 
     thrift_spec = (
-        None,  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -26774,7 +26386,8 @@ class updateExperiment_result(object):
         (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
+        self.success = success
         self.ire = ire
         self.enf = enf
         self.ace = ace
@@ -26790,7 +26403,13 @@ class updateExperiment_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 1:
+            if fid == 0:
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.experiment.ttypes.ExperimentModel()
+                    self.success.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -26829,7 +26448,11 @@ class updateExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateExperiment_result')
+        oprot.writeStructBegin('getDetailedExperimentTree_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)
@@ -26868,25 +26491,25 @@ class updateExperiment_result(object):
         return not (self == other)
 
 
-class updateExperimentConfiguration_args(object):
+class updateExperiment_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
-     - userConfiguration
+     - experiment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'userConfiguration', (airavata.model.experiment.ttypes.UserConfigurationDataModel, airavata.model.experiment.ttypes.UserConfigurationDataModel.thrift_spec), None, ),  # 3
+        (3, TType.STRUCT, 'experiment', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, userConfiguration=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, experiment=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
-        self.userConfiguration = userConfiguration
+        self.experiment = experiment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -26910,8 +26533,8 @@ class updateExperimentConfiguration_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.userConfiguration = airavata.model.experiment.ttypes.UserConfigurationDataModel()
-                    self.userConfiguration.read(iprot)
+                    self.experiment = airavata.model.experiment.ttypes.ExperimentModel()
+                    self.experiment.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -26923,7 +26546,7 @@ class updateExperimentConfiguration_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateExperimentConfiguration_args')
+        oprot.writeStructBegin('updateExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26932,9 +26555,9 @@ class updateExperimentConfiguration_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
-        if self.userConfiguration is not None:
-            oprot.writeFieldBegin('userConfiguration', TType.STRUCT, 3)
-            self.userConfiguration.write(oprot)
+        if self.experiment is not None:
+            oprot.writeFieldBegin('experiment', TType.STRUCT, 3)
+            self.experiment.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -26944,8 +26567,8 @@ class updateExperimentConfiguration_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
-        if self.userConfiguration is None:
-            raise TProtocolException(message='Required field userConfiguration is unset!')
+        if self.experiment is None:
+            raise TProtocolException(message='Required field experiment is unset!')
         return
 
     def __repr__(self):
@@ -26960,18 +26583,30 @@ class updateExperimentConfiguration_args(object):
         return not (self == other)
 
 
-class updateExperimentConfiguration_result(object):
+class updateExperiment_result(object):
     """
     Attributes:
+     - ire
+     - enf
+     - ace
+     - ase
      - ae
     """
 
     thrift_spec = (
         None,  # 0
-        (1, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 1
+        (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
+        (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
+        (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
+        (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
+        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, ae=None,):
+    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+        self.ire = ire
+        self.enf = enf
+        self.ace = ace
+        self.ase = ase
         self.ae = ae
 
     def read(self, iprot):
@@ -26985,6 +26620,30 @@ class updateExperimentConfiguration_result(object):
                 break
             if fid == 1:
                 if ftype == TType.STRUCT:
+                    self.ire = airavata.api.error.ttypes.InvalidRequestException()
+                    self.ire.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRUCT:
+                    self.enf = airavata.api.error.ttypes.ExperimentNotFoundException()
+                    self.enf.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.ace = airavata.api.error.ttypes.AiravataClientException()
+                    self.ace.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
+                    self.ase.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
                 else:
@@ -26998,9 +26657,25 @@ class updateExperimentConfiguration_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateExperimentConfiguration_result')
+        oprot.writeStructBegin('updateExperiment_result')
+        if self.ire is not None:
+            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+            self.ire.write(oprot)
+            oprot.writeFieldEnd()
+        if self.enf is not None:
+            oprot.writeFieldBegin('enf', TType.STRUCT, 2)
+            self.enf.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ace is not None:
+            oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+            self.ace.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ase is not None:
+            oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+            self.ase.write(oprot)
+            oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -27021,25 +26696,25 @@ class updateExperimentConfiguration_result(object):
         return not (self == other)
 
 
-class updateResourceScheduleing_args(object):
+class updateExperimentConfiguration_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
-     - resourceScheduling
+     - userConfiguration
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'resourceScheduling', (airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ),  # 3
+        (3, TType.STRUCT, 'userConfiguration', (airavata.model.experiment.ttypes.UserConfigurationDataModel, airavata.model.experiment.ttypes.UserConfigurationDataModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, resourceScheduling=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, userConfiguration=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
-        self.resourceScheduling = resourceScheduling
+        self.userConfiguration = userConfiguration
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -27063,8 +26738,8 @@ class updateResourceScheduleing_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.resourceScheduling = airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
-                    self.resourceScheduling.read(iprot)
+                    self.userConfiguration = airavata.model.experiment.ttypes.UserConfigurationDataModel()
+                    self.userConfiguration.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -27076,7 +26751,7 @@ class updateResourceScheduleing_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateResourceScheduleing_args')
+        oprot.writeStructBegin('updateExperimentConfiguration_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27085,9 +26760,9 @@ class updateResourceScheduleing_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
-        if self.resourceScheduling is not None:
-            oprot.writeFieldBegin('resourceScheduling', TType.STRUCT, 3)
-            self.resourceScheduling.write(oprot)
+        if self.userConfiguration is not None:
+            oprot.writeFieldBegin('userConfiguration', TType.STRUCT, 3)
+            self.userConfiguration.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -27097,8 +26772,8 @@ class updateResourceScheduleing_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
-        if self.resourceScheduling is None:
-            raise TProtocolException(message='Required field resourceScheduling is unset!')
+        if self.userConfiguration is None:
+            raise TProtocolException(message='Required field userConfiguration is unset!')
         return
 
     def __repr__(self):
@@ -27113,7 +26788,7 @@ class updateResourceScheduleing_args(object):
         return not (self == other)
 
 
-class updateResourceScheduleing_result(object):
+class updateExperimentConfiguration_result(object):
     """
     Attributes:
      - ae
@@ -27151,7 +26826,7 @@ class updateResourceScheduleing_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateResourceScheduleing_result')
+        oprot.writeStructBegin('updateExperimentConfiguration_result')
         if self.ae is not None:
             oprot.writeFieldBegin('ae', TType.STRUCT, 1)
             self.ae.write(oprot)
@@ -27174,22 +26849,25 @@ class updateResourceScheduleing_result(object):
         return not (self == other)
 
 
-class validateExperiment_args(object):
+class updateResourceScheduleing_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
+     - resourceScheduling
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'resourceScheduling', (airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, resourceScheduling=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
+        self.resourceScheduling = resourceScheduling
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -27211,6 +26889,12 @@ class validateExperiment_args(object):
                     self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.resourceScheduling = airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+                    self.resourceScheduling.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -27220,7 +26904,7 @@ class validateExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('validateExperiment_args')
+        oprot.writeStructBegin('updateResourceScheduleing_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27229,6 +26913,10 @@ class validateExperiment_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
+        if self.resourceScheduling is not None:
+            oprot.writeFieldBegin('resourceScheduling', TType.STRUCT, 3)
+            self.resourceScheduling.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -27237,6 +26925,8 @@ class validateExperiment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
+        if self.resourceScheduling is None:
+            raise TProtocolException(message='Required field resourceScheduling is unset!')
         return
 
     def __repr__(self):
@@ -27251,32 +26941,18 @@ class validateExperiment_args(object):
         return not (self == other)
 
 
-class validateExperiment_result(object):
+class updateResourceScheduleing_result(object):
     """
     Attributes:
-     - success
-     - ire
-     - enf
-     - ace
-     - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
-        (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
-        (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
-        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
+        None,  # 0
+        (1, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 1
     )
 
-    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
-        self.success = success
-        self.ire = ire
-        self.enf = enf
-        self.ace = ace
-        self.ase = ase
+    def __init__(self, ae=None,):
         self.ae = ae
 
     def read(self, iprot):
@@ -27288,36 +26964,7 @@ class validateExperiment_result(object):
             (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 = airavata.api.error.ttypes.InvalidRequestException()
-                    self.ire.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 2:
-                if ftype == TType.STRUCT:
-                    self.enf = airavata.api.error.ttypes.ExperimentNotFoundException()
-                    self.enf.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.ace = airavata.api.error.ttypes.AiravataClientException()
-                    self.ace.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
-                    self.ase.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 5:
+            if fid == 1:
                 if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
@@ -27332,29 +26979,9 @@ class validateExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('validateExperiment_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.enf is not None:
-            oprot.writeFieldBegin('enf', TType.STRUCT, 2)
-            self.enf.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 3)
-            self.ace.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 4)
-            self.ase.write(oprot)
-            oprot.writeFieldEnd()
+        oprot.writeStructBegin('updateResourceScheduleing_result')
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 1)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -27375,25 +27002,22 @@ class validateExperiment_result(object):
         return not (self == other)
 
 
-class launchExperiment_args(object):
+class validateExperiment_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
-     - gatewayId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
-        self.gatewayId = gatewayId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -27415,11 +27039,6 @@ class launchExperiment_args(object):
                     self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -27429,7 +27048,7 @@ class launchExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('launchExperiment_args')
+        oprot.writeStructBegin('validateExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27438,10 +27057,6 @@ class launchExperiment_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
-        if self.gatewayId is not None:
-            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
-            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -27450,8 +27065,6 @@ class launchExperiment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
         return
 
     def __repr__(self):
@@ -27466,9 +27079,10 @@ class launchExperiment_args(object):
         return not (self == other)
 
 
-class launchExperiment_result(object):
+class validateExperiment_result(object):
     """
     Attributes:
+     - success
      - ire
      - enf
      - ace
@@ -27477,7 +27091,7 @@ class launchExperiment_result(object):
     """
 
     thrift_spec = (
-        None,  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -27485,7 +27099,8 @@ class launchExperiment_result(object):
         (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
+        self.success = success
         self.ire = ire
         self.enf = enf
         self.ace = ace
@@ -27501,7 +27116,12 @@ class launchExperiment_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 1:
+            if fid == 0:
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -27540,7 +27160,11 @@ class launchExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('launchExperiment_result')
+        oprot.writeStructBegin('validateExperiment_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)
@@ -27579,22 +27203,25 @@ class launchExperiment_result(object):
         return not (self == other)
 
 
-class getExperimentStatus_args(object):
+class launchExperiment_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
+     - gatewayId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
+        self.gatewayId = gatewayId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -27616,6 +27243,11 @@ class getExperimentStatus_args(object):
                     self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -27625,7 +27257,7 @@ class getExperimentStatus_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentStatus_args')
+        oprot.writeStructBegin('launchExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27634,6 +27266,10 @@ class getExperimentStatus_args(object):
             oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
             oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -27642,6 +27278,8 @@ class getExperimentStatus_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.airavataExperimentId is None:
             raise TProtocolException(message='Required field airavataExperimentId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
         return
 
     def __repr__(self):
@@ -27656,10 +27294,9 @@ class getExperimentStatus_args(object):
         return not (self == other)
 
 
-class getExperimentStatus_result(object):
+class launchExperiment_result(object):
     """
     Attributes:
-     - success
      - ire
      - enf
      - ace
@@ -27668,7 +27305,7 @@ class getExperimentStatus_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.status.ttypes.ExperimentStatus, airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ),  # 0
+        None,  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -27676,8 +27313,7 @@ class getExperimentStatus_result(object):
         (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
-        self.success = success
+    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
         self.ire = ire
         self.enf = enf
         self.ace = ace
@@ -27693,13 +27329,7 @@ class getExperimentStatus_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.status.ttypes.ExperimentStatus()
-                    self.success.read(iprot)
-                else:
-                    iprot.skip(ftype)
-            elif fid == 1:
+            if fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -27738,11 +27368,7 @@ class getExperimentStatus_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentStatus_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
-            oprot.writeFieldEnd()
+        oprot.writeStructBegin('launchExperiment_result')
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -27781,7 +27407,7 @@ class getExperimentStatus_result(object):
         return not (self == other)
 
 
-class getExperimentOutputs_args(object):
+class getExperimentStatus_args(object):
     """
     Attributes:
      - authzToken
@@ -27827,7 +27453,7 @@ class getExperimentOutputs_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentOutputs_args')
+        oprot.writeStructBegin('getExperimentStatus_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27858,7 +27484,7 @@ class getExperimentOutputs_args(object):
         return not (self == other)
 
 
-class getExperimentOutputs_result(object):
+class getExperimentStatus_result(object):
     """
     Attributes:
      - success
@@ -27870,7 +27496,7 @@ class getExperimentOutputs_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.OutputDataObjectType, airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), False), None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.status.ttypes.ExperimentStatus, airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -27896,14 +27522,9 @@ class getExperimentOutputs_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype84, _size81) = iprot.readListBegin()
-                    for _i85 in range(_size81):
-                        _elem86 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem86.read(iprot)
-                        self.success.append(_elem86)
-                    iprot.readListEnd()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.status.ttypes.ExperimentStatus()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -27945,13 +27566,10 @@ class getExperimentOutputs_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getExperimentOutputs_result')
+        oprot.writeStructBegin('getExperimentStatus_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter87 in self.success:
-                iter87.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -27991,7 +27609,7 @@ class getExperimentOutputs_result(object):
         return not (self == other)
 
 
-class getIntermediateOutputs_args(object):
+class getExperimentOutputs_args(object):
     """
     Attributes:
      - authzToken
@@ -28037,7 +27655,7 @@ class getIntermediateOutputs_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getIntermediateOutputs_args')
+        oprot.writeStructBegin('getExperimentOutputs_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -28068,7 +27686,7 @@ class getIntermediateOutputs_args(object):
         return not (self == other)
 
 
-class getIntermediateOutputs_result(object):
+class getExperimentOutputs_result(object):
     """
     Attributes:
      - success
@@ -28108,11 +27726,11 @@ class getIntermediateOutputs_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype91, _size88) = iprot.readListBegin()
-                    for _i92 in range(_size88):
-                        _elem93 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem93.read(iprot)
-                        self.success.append(_elem93)
+                    (_etype84, _size81) = iprot.readListBegin()
+                    for _i85 in range(_size81):
+                        _elem86 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem86.read(iprot)
+                        self.success.append(_elem86)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -28155,12 +27773,12 @@ class getIntermediateOutputs_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getIntermediateOutputs_result')
+        oprot.writeStructBegin('getExperimentOutputs_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter94 in self.success:
-                iter94.write(oprot)
+            for iter87 in self.success:
+                iter87.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -28201,7 +27819,7 @@ class getIntermediateOutputs_result(object):
         return not (self == other)
 
 
-class getJobStatuses_args(object):
+class getIntermediateOutputs_args(object):
     """
     Attributes:
      - authzToken
@@ -28247,7 +27865,7 @@ class getJobStatuses_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getJobStatuses_args')
+        oprot.writeStructBegin('getIntermediateOutputs_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -28278,7 +27896,7 @@ class getJobStatuses_args(object):
         return not (self == other)
 
 
-class getJobStatuses_result(object):
+class getIntermediateOutputs_result(object):
     """
     Attributes:
      - success
@@ -28290,7 +27908,7 @@ class getJobStatuses_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRUCT, (airavata.model.status.ttypes.JobStatus, airavata.model.status.ttypes.JobStatus.thrift_spec), False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.OutputDataObjectType, airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -28316,15 +27934,14 @@ class getJobStatuses_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype96, _vtype97, _size95) = iprot.readMapBegin()
-                    for _i99 in range(_size95):
-                        _key100 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val101 = airavata.model.status.ttypes.JobStatus()
-                        _val101.read(iprot)
-                        self.success[_key100] = _val101
-                    iprot.readMapEnd()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype91, _size88) = iprot.readListBegin()
+                    for _i92 in range(_size88):
+                        _elem93 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem93.read(iprot)
+                        self.success.append(_elem93)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28366,14 +27983,13 @@ class getJobStatuses_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getJobStatuses_result')
+        oprot.writeStructBegin('getIntermediateOutputs_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
-            for kiter102, viter103 in self.success.items():
-                oprot.writeString(kiter102.encode('utf-8') if sys.version_info[0] == 2 else kiter102)
-                viter103.write(oprot)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter94 in self.success:
+                iter94.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -28413,7 +28029,7 @@ class getJobStatuses_result(object):
         return not (self == other)
 
 
-class getJobDetails_args(object):
+class getJobStatuses_args(object):
     """
     Attributes:
      - authzToken
@@ -28459,7 +28075,7 @@ class getJobDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getJobDetails_args')
+        oprot.writeStructBegin('getJobStatuses_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -28490,7 +28106,7 @@ class getJobDetails_args(object):
         return not (self == other)
 
 
-class getJobDetails_result(object):
+class getJobStatuses_result(object):
     """
     Attributes:
      - success
@@ -28502,7 +28118,7 @@ class getJobDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.job.ttypes.JobModel, airavata.model.job.ttypes.JobModel.thrift_spec), False), None, ),  # 0
+        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRUCT, (airavata.model.status.ttypes.JobStatus, airavata.model.status.ttypes.JobStatus.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
@@ -28528,14 +28144,15 @@ class getJobDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype107, _size104) = iprot.readListBegin()
-                    for _i108 in range(_size104):
-                        _elem109 = airavata.model.job.ttypes.JobModel()
-                        _elem109.read(iprot)
-                        self.success.append(_elem109)
-                    iprot.readListEnd()
+                if ftype == TType.MAP:
+                    self.success = {}
+                    (_ktype96, _vtype97, _size95) = iprot.readMapBegin()
+                    for _i99 in range(_size95):
+                        _key100 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val101 = airavata.model.status.ttypes.JobStatus()
+                        _val101.read(iprot)
+                        self.success[_key100] = _val101
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28577,13 +28194,14 @@ class getJobDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getJobDetails_result')
+        oprot.writeStructBegin('getJobStatuses_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter110 in self.success:
-                iter110.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
+            for kiter102, viter103 in self.success.items():
+                oprot.writeString(kiter102.encode('utf-8') if sys.version_info[0] == 2 else kiter102)
+                viter103.write(oprot)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -28623,28 +28241,22 @@ class getJobDetails_result(object):
         return not (self == other)
 
 
-class cloneExperiment_args(object):
+class getJobDetails_args(object):
     """
     Attributes:
      - authzToken
-     - existingExperimentID
-     - newExperimentName
-     - newExperimentProjectId
+     - airavataExperimentId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'existingExperimentID', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'newExperimentName', 'UTF8', None, ),  # 3
-        (4, TType.STRING, 'newExperimentProjectId', 'UTF8', None, ),  # 4
+        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None, newExperimentProjectId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None,):
         self.authzToken = authzToken
-        self.existingExperimentID = existingExperimentID
-        self.newExperimentName = newExperimentName
-        self.newExperimentProjectId = newExperimentProjectId
+        self.airavataExperimentId = airavataExperimentId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -28663,17 +28275,7 @@ class cloneExperiment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.existingExperimentID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRING:
-                    self.newExperimentName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRING:
-                    self.newExperimentProjectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -28685,22 +28287,14 @@ class cloneExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneExperiment_args')
+        oprot.writeStructBegin('getJobDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.existingExperimentID is not None:
-            oprot.writeFieldBegin('existingExperimentID', TType.STRING, 2)
-            oprot.writeString(self.existingExperimentID.encode('utf-8') if sys.version_info[0] == 2 else self.existingExperimentID)
-            oprot.writeFieldEnd()
-        if self.newExperimentName is not None:
-            oprot.writeFieldBegin('newExperimentName', TType.STRING, 3)
-            oprot.writeString(self.newExperimentName.encode('utf-8') if sys.version_info[0] == 2 else self.newExperimentName)
-            oprot.writeFieldEnd()
-        if self.newExperimentProjectId is not None:
-            oprot.writeFieldBegin('newExperimentProjectId', TType.STRING, 4)
-            oprot.writeString(self.newExperimentProjectId.encode('utf-8') if sys.version_info[0] == 2 else self.newExperimentProjectId)
+        if self.airavataExperimentId is not None:
+            oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
+            oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -28708,6 +28302,8 @@ class cloneExperiment_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
+        if self.airavataExperimentId is None:
+            raise TProtocolException(message='Required field airavataExperimentId is unset!')
         return
 
     def __repr__(self):
@@ -28722,7 +28318,7 @@ class cloneExperiment_args(object):
         return not (self == other)
 
 
-class cloneExperiment_result(object):
+class getJobDetails_result(object):
     """
     Attributes:
      - success
@@ -28731,27 +28327,24 @@ class cloneExperiment_result(object):
      - ace
      - ase
      - ae
-     - pnfe
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.job.ttypes.JobModel, airavata.model.job.ttypes.JobModel.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
         (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
         (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
-        (6, TType.STRUCT, 'pnfe', (airavata.api.error.ttypes.ProjectNotFoundException, airavata.api.error.ttypes.ProjectNotFoundException.thrift_spec), None, ),  # 6
     )
 
-    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None, pnfe=None,):
+    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
         self.success = success
         self.ire = ire
         self.enf = enf
         self.ace = ace
         self.ase = ase
         self.ae = ae
-        self.pnfe = pnfe
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -28763,8 +28356,14 @@ class cloneExperiment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype107, _size104) = iprot.readListBegin()
+                    for _i108 in range(_size104):
+                        _elem109 = airavata.model.job.ttypes.JobModel()
+                        _elem109.read(iprot)
+                        self.success.append(_elem109)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28797,12 +28396,6 @@ class cloneExperiment_result(object):
                     self.ae.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 6:
-                if ftype == TType.STRUCT:
-                    self.pnfe = airavata.api.error.ttypes.ProjectNotFoundException()
-                    self.pnfe.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -28812,10 +28405,13 @@ class cloneExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneExperiment_result')
+        oprot.writeStructBegin('getJobDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter110 in self.success:
+                iter110.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -28837,10 +28433,6 @@ class cloneExperiment_result(object):
             oprot.writeFieldBegin('ae', TType.STRUCT, 5)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
-        if self.pnfe is not None:
-            oprot.writeFieldBegin('pnfe', TType.STRUCT, 6)
-            self.pnfe.write(oprot)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -28859,7 +28451,7 @@ class cloneExperiment_result(object):
         return not (self == other)
 
 
-class cloneExperimentByAdmin_args(object):
+class cloneExperiment_args(object):
     """
     Attributes:
      - authzToken
@@ -28921,7 +28513,7 @@ class cloneExperimentByAdmin_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneExperimentByAdmin_args')
+        oprot.writeStructBegin('cloneExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -28958,7 +28550,7 @@ class cloneExperimentByAdmin_args(object):
         return not (self == other)
 
 
-class cloneExperimentByAdmin_result(object):
+class cloneExperiment_result(object):
     """
     Attributes:
      - success
@@ -29048,7 +28640,7 @@ class cloneExperimentByAdmin_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneExperimentByAdmin_result')
+        oprot.writeStructBegin('cloneExperiment_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRING, 0)
             oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
@@ -29095,25 +28687,28 @@ class cloneExperimentByAdmin_result(object):
         return not (self == other)
 
 
-class terminateExperiment_args(object):
+class cloneExperimentByAdmin_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
-     - gatewayId
+     - existingExperimentID
+     - newExperimentName
+     - newExperimentProjectId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
+        (2, TType.STRING, 'existingExperimentID', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'newExperimentName', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'newExperimentProjectId', 'UTF8', None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
+    def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None, newExperimentProjectId=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
-        self.gatewayId = gatewayId
+        self.existingExperimentID = existingExperimentID
+        self.newExperimentName = newExperimentName
+        self.newExperimentProjectId = newExperimentProjectId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29132,12 +28727,17 @@ class terminateExperiment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.existingExperimentID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.newExperimentName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.newExperimentProjectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -29149,18 +28749,22 @@ class terminateExperiment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('terminateExperiment_args')
+        oprot.writeStructBegin('cloneExperimentByAdmin_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.airavataExperimentId is not None:
-            oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
-            oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
+        if self.existingExperimentID is not None:
+            oprot.writeFieldBegin('existingExperimentID', TType.STRING, 2)
+            oprot.writeString(self.existingExperimentID.encode('utf-8') if sys.version_info[0] == 2 else self.existingExperimentID)
             oprot.writeFieldEnd()
-        if self.gatewayId is not None:
-            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
-            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+        if self.newExperimentName is not None:
+            oprot.writeFieldBegin('newExperimentName', TType.STRING, 3)
+            oprot.writeString(self.newExperimentName.encode('utf-8') if sys.version_info[0] == 2 else self.newExperimentName)
+            oprot.writeFieldEnd()
+        if self.newExperimentProjectId is not None:
+            oprot.writeFieldBegin('newExperimentProjectId', TType.STRING, 4)
+            oprot.writeString(self.newExperimentProjectId.encode('utf-8') if sys.version_info[0] == 2 else self.newExperimentProjectId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -29182,31 +28786,36 @@ class terminateExperiment_args(object):
         return not (self == other)
 
 
-class terminateExperiment_result(object):
+class cloneExperimentByAdmin_result(object):
     """
     Attributes:
+     - success
      - ire
      - enf
      - ace
      - ase
      - ae
+     - pnfe
     """
 
     thrift_spec = (
-        None,  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
         (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
         (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
+        (6, TType.STRUCT, 'pnfe', (airavata.api.error.ttypes.ProjectNotFoundException, airavata.api.error.ttypes.ProjectNotFoundException.thrift_spec), None, ),  # 6
     )
 
-    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None, pnfe=None,):
+        self.success = success
         self.ire = ire
         self.enf = enf
         self.ace = ace
         self.ase = ase
         self.ae = ae
+        self.pnfe = pnfe
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29217,7 +28826,12 @@ class terminateExperiment_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 1:
+            if fid == 0:
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -29247,6 +28861,12 @@ class terminateExperiment_result(object):
                     self.ae.read(iprot)
                 else:
                     iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRUCT:
+                    self.pnfe = airavata.api.error.ttypes.ProjectNotFoundException()
+                    self.pnfe.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -29256,7 +28876,11 @@ class terminateExperiment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('terminateExperiment_result')
+        oprot.writeStructBegin('cloneExperimentByAdmin_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -29277,6 +28901,10 @@ class terminateExperiment_result(object):
             oprot.writeFieldBegin('ae', TType.STRUCT, 5)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
+        if self.pnfe is not None:
+            oprot.writeFieldBegin('pnfe', TType.STRUCT, 6)
+            self.pnfe.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -29295,25 +28923,25 @@ class terminateExperiment_result(object):
         return not (self == other)
 
 
-class registerApplicationModule_args(object):
+class terminateExperiment_args(object):
     """
     Attributes:
      - authzToken
+     - airavataExperimentId
      - gatewayId
-     - applicationModule
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationModule', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, applicationModule=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
         self.authzToken = authzToken
+        self.airavataExperimentId = airavataExperimentId
         self.gatewayId = gatewayId
-        self.applicationModule = applicationModule
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29332,13 +28960,12 @@ class registerApplicationModule_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                    self.applicationModule.read(iprot)
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -29350,29 +28977,25 @@ class registerApplicationModule_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationModule_args')
+        oprot.writeStructBegin('terminateExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
+        if self.airavataExperimentId is not None:
+            oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
+            oprot.writeString(self.airavataExperimentId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataExperimentId)
+            oprot.writeFieldEnd()
         if self.gatewayId is not None:
-            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
             oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             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 TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.applicationModule is None:
-            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29387,27 +29010,28 @@ class registerApplicationModule_args(object):
         return not (self == other)
 
 
-class registerApplicationModule_result(object):
+class terminateExperiment_result(object):
     """
     Attributes:
-     - success
      - ire
+     - enf
      - ace
      - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        None,  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
-        (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
-        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
+        (2, TType.STRUCT, 'enf', (airavata.api.error.ttypes.ExperimentNotFoundException, airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ),  # 2
+        (3, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 3
+        (4, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 4
+        (5, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
-        self.success = success
+    def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
         self.ire = ire
+        self.enf = enf
         self.ace = ace
         self.ase = ase
         self.ae = ae
@@ -29421,12 +29045,7 @@ class registerApplicationModule_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 1:
+            if fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -29434,17 +29053,23 @@ class registerApplicationModule_result(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRUCT:
+                    self.enf = airavata.api.error.ttypes.ExperimentNotFoundException()
+                    self.enf.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
                     self.ace = airavata.api.error.ttypes.AiravataClientException()
                     self.ace.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
+            elif fid == 4:
                 if ftype == TType.STRUCT:
                     self.ase = airavata.api.error.ttypes.AiravataSystemException()
                     self.ase.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 4:
+            elif fid == 5:
                 if ftype == TType.STRUCT:
                     self.ae = airavata.api.error.ttypes.AuthorizationException()
                     self.ae.read(iprot)
@@ -29459,25 +29084,25 @@ class registerApplicationModule_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationModule_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
-            oprot.writeFieldEnd()
+        oprot.writeStructBegin('terminateExperiment_result')
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
             oprot.writeFieldEnd()
+        if self.enf is not None:
+            oprot.writeFieldBegin('enf', TType.STRUCT, 2)
+            self.enf.write(oprot)
+            oprot.writeFieldEnd()
         if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+            oprot.writeFieldBegin('ace', TType.STRUCT, 3)
             self.ace.write(oprot)
             oprot.writeFieldEnd()
         if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+            oprot.writeFieldBegin('ase', TType.STRUCT, 4)
             self.ase.write(oprot)
             oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 5)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -29498,22 +29123,25 @@ class registerApplicationModule_result(object):
         return not (self == other)
 
 
-class getApplicationModule_args(object):
+class registerApplicationModule_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
+     - gatewayId
+     - applicationModule
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationModule', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appModuleId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationModule=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
+        self.gatewayId = gatewayId
+        self.applicationModule = applicationModule
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29532,7 +29160,13 @@ class getApplicationModule_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                    self.applicationModule.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -29544,14 +29178,18 @@ class getApplicationModule_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationModule_args')
+        oprot.writeStructBegin('registerApplicationModule_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.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.applicationModule is not None:
+            oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+            self.applicationModule.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -29559,8 +29197,10 @@ class getApplicationModule_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appModuleId is None:
-            raise TProtocolException(message='Required field appModuleId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.applicationModule is None:
+            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29575,7 +29215,7 @@ class getApplicationModule_args(object):
         return not (self == other)
 
 
-class getApplicationModule_result(object):
+class registerApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -29586,7 +29226,7 @@ class getApplicationModule_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -29610,9 +29250,8 @@ class getApplicationModule_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -29648,10 +29287,10 @@ class getApplicationModule_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationModule_result')
+        oprot.writeStructBegin('registerApplicationModule_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -29687,25 +29326,22 @@ class getApplicationModule_result(object):
         return not (self == other)
 
 
-class updateApplicationModule_args(object):
+class getApplicationModule_args(object):
     """
     Attributes:
      - authzToken
      - appModuleId
-     - applicationModule
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationModule', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+    def __init__(self, authzToken=None, appModuleId=None,):
         self.authzToken = authzToken
         self.appModuleId = appModuleId
-        self.applicationModule = applicationModule
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29727,12 +29363,6 @@ class updateApplicationModule_args(object):
                     self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                    self.applicationModule.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -29742,7 +29372,7 @@ class updateApplicationModule_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationModule_args')
+        oprot.writeStructBegin('getApplicationModule_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -29751,10 +29381,6 @@ class updateApplicationModule_args(object):
             oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
             oprot.writeString(self.appModuleId.encode('utf-8') if sys.version_info[0] == 2 else 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()
 
@@ -29763,8 +29389,6 @@ class updateApplicationModule_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appModuleId is None:
             raise TProtocolException(message='Required field appModuleId is unset!')
-        if self.applicationModule is None:
-            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29779,7 +29403,7 @@ class updateApplicationModule_args(object):
         return not (self == other)
 
 
-class updateApplicationModule_result(object):
+class getApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -29790,7 +29414,7 @@ class updateApplicationModule_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -29814,8 +29438,9 @@ class updateApplicationModule_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -29851,10 +29476,10 @@ class updateApplicationModule_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationModule_result')
+        oprot.writeStructBegin('getApplicationModule_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -29890,22 +29515,25 @@ class updateApplicationModule_result(object):
         return not (self == other)
 
 
-class getAllAppModules_args(object):
+class updateApplicationModule_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
+     - appModuleId
+     - applicationModule
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationModule', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, gatewayId=None,):
+    def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
+        self.appModuleId = appModuleId
+        self.applicationModule = applicationModule
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -29924,7 +29552,13 @@ class getAllAppModules_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                    self.applicationModule.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -29936,14 +29570,18 @@ class getAllAppModules_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllAppModules_args')
+        oprot.writeStructBegin('updateApplicationModule_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+        if self.appModuleId is not None:
+            oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+            oprot.writeString(self.appModuleId.encode('utf-8') if sys.version_info[0] == 2 else 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()
@@ -29951,8 +29589,10 @@ class getAllAppModules_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.appModuleId is None:
+            raise TProtocolException(message='Required field appModuleId is unset!')
+        if self.applicationModule is None:
+            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29967,7 +29607,7 @@ class getAllAppModules_args(object):
         return not (self == other)
 
 
-class getAllAppModules_result(object):
+class updateApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -29978,7 +29618,7 @@ class getAllAppModules_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), False), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -30002,14 +29642,8 @@ class getAllAppModules_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype114, _size111) = iprot.readListBegin()
-                    for _i115 in range(_size111):
-                        _elem116 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                        _elem116.read(iprot)
-                        self.success.append(_elem116)
-                    iprot.readListEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -30045,13 +29679,10 @@ class getAllAppModules_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllAppModules_result')
+        oprot.writeStructBegin('updateApplicationModule_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter117 in self.success:
-                iter117.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -30087,7 +29718,7 @@ class getAllAppModules_result(object):
         return not (self == other)
 
 
-class getAccessibleAppModules_args(object):
+class getAllAppModules_args(object):
     """
     Attributes:
      - authzToken
@@ -30133,7 +29764,7 @@ class getAccessibleAppModules_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAccessibleAppModules_args')
+        oprot.writeStructBegin('getAllAppModules_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -30164,7 +29795,7 @@ class getAccessibleAppModules_args(object):
         return not (self == other)
 
 
-class getAccessibleAppModules_result(object):
+class getAllAppModules_result(object):
     """
     Attributes:
      - success
@@ -30201,11 +29832,11 @@ class getAccessibleAppModules_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype121, _size118) = iprot.readListBegin()
-                    for _i122 in range(_size118):
-                        _elem123 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                        _elem123.read(iprot)
-                        self.success.append(_elem123)
+                    (_etype114, _size111) = iprot.readListBegin()
+                    for _i115 in range(_size111):
+                        _elem116 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                        _elem116.read(iprot)
+                        self.success.append(_elem116)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -30242,12 +29873,12 @@ class getAccessibleAppModules_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAccessibleAppModules_result')
+        oprot.writeStructBegin('getAllAppModules_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter124 in self.success:
-                iter124.write(oprot)
+            for iter117 in self.success:
+                iter117.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -30284,22 +29915,22 @@ class getAccessibleAppModules_result(object):
         return not (self == other)
 
 
-class deleteApplicationModule_args(object):
+class getAccessibleAppModules_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
+     - gatewayId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, appModuleId=None,):
+    def __init__(self, authzToken=None, gatewayId=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
+        self.gatewayId = gatewayId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -30318,7 +29949,7 @@ class deleteApplicationModule_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -30330,14 +29961,14 @@ class deleteApplicationModule_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationModule_args')
+        oprot.writeStructBegin('getAccessibleAppModules_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.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -30345,8 +29976,8 @@ class deleteApplicationModule_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appModuleId is None:
-            raise TProtocolException(message='Required field appModuleId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
         return
 
     def __repr__(self):
@@ -30361,7 +29992,7 @@ class deleteApplicationModule_args(object):
         return not (self == other)
 
 
-class deleteApplicationModule_result(object):
+class getAccessibleAppModules_result(object):
     """
     Attributes:
      - success
@@ -30372,7 +30003,7 @@ class deleteApplicationModule_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -30396,8 +30027,14 @@ class deleteApplicationModule_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype121, _size118) = iprot.readListBegin()
+                    for _i122 in range(_size118):
+                        _elem123 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                        _elem123.read(iprot)
+                        self.success.append(_elem123)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -30433,10 +30070,13 @@ class deleteApplicationModule_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationModule_result')
+        oprot.writeStructBegin('getAccessibleAppModules_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.STRUCT, len(self.success))
+            for iter124 in self.success:
+                iter124.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -30472,25 +30112,22 @@ class deleteApplicationModule_result(object):
         return not (self == other)
 
 
-class registerApplicationDeployment_args(object):
+class deleteApplicationModule_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - applicationDeployment
+     - appModuleId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationDeployment', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
+    def __init__(self, authzToken=None, appModuleId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.applicationDeployment = applicationDeployment
+        self.appModuleId = appModuleId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -30509,13 +30146,7 @@ class registerApplicationDeployment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                    self.applicationDeployment.read(iprot)
+                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -30527,18 +30158,14 @@ class registerApplicationDeployment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationDeployment_args')
+        oprot.writeStructBegin('deleteApplicationModule_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
-            oprot.writeFieldEnd()
-        if self.applicationDeployment is not None:
-            oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
-            self.applicationDeployment.write(oprot)
+        if self.appModuleId is not None:
+            oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+            oprot.writeString(self.appModuleId.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -30546,10 +30173,8 @@ class registerApplicationDeployment_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.applicationDeployment is None:
-            raise TProtocolException(message='Required field applicationDeployment is unset!')
+        if self.appModuleId is None:
+            raise TProtocolException(message='Required field appModuleId is unset!')
         return
 
     def __repr__(self):
@@ -30564,7 +30189,7 @@ class registerApplicationDeployment_args(object):
         return not (self == other)
 
 
-class registerApplicationDeployment_result(object):
+class deleteApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -30575,7 +30200,7 @@ class registerApplicationDeployment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -30599,8 +30224,8 @@ class registerApplicationDeployment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -30636,10 +30261,10 @@ class registerApplicationDeployment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationDeployment_result')
+        oprot.writeStructBegin('deleteApplicationModule_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -30675,22 +30300,25 @@ class registerApplicationDeployment_result(object):
         return not (self == other)
 
 
-class getApplicationDeployment_args(object):
+class registerApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
-     - appDeploymentId
+     - gatewayId
+     - applicationDeployment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appDeploymentId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationDeployment', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appDeploymentId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
         self.authzToken = authzToken
-        self.appDeploymentId = appDeploymentId
+        self.gatewayId = gatewayId
+        self.applicationDeployment = applicationDeployment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -30709,7 +30337,13 @@ class getApplicationDeployment_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.applicationDeployment.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -30721,14 +30355,18 @@ class getApplicationDeployment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationDeployment_args')
+        oprot.writeStructBegin('registerApplicationDeployment_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.encode('utf-8') if sys.version_info[0] == 2 else self.appDeploymentId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else 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()
@@ -30736,8 +30374,10 @@ class getApplicationDeployment_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appDeploymentId is None:
-            raise TProtocolException(message='Required field appDeploymentId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.applicationDeployment is None:
+            raise TProtocolException(message='Required field applicationDeployment is unset!')
         return
 
     def __repr__(self):
@@ -30752,7 +30392,7 @@ class getApplicationDeployment_args(object):
         return not (self == other)
 
 
-class getApplicationDeployment_result(object):
+class registerApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -30763,7 +30403,7 @@ class getApplicationDeployment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -30787,9 +30427,8 @@ class getApplicationDeployment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -30825,10 +30464,10 @@ class getApplicationDeployment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationDeployment_result')
+        oprot.writeStructBegin('registerApplicationDeployment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -30864,25 +30503,22 @@ class getApplicationDeployment_result(object):
         return not (self == other)
 
 
-class updateApplicationDeployment_args(object):
+class getApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
      - appDeploymentId
-     - applicationDeployment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appDeploymentId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationDeployment', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appDeploymentId=None, applicationDeployment=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None,):
         self.authzToken = authzToken
         self.appDeploymentId = appDeploymentId
-        self.applicationDeployment = applicationDeployment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -30904,12 +30540,6 @@ class updateApplicationDeployment_args(object):
                     self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                    self.applicationDeployment.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -30919,7 +30549,7 @@ class updateApplicationDeployment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationDeployment_args')
+        oprot.writeStructBegin('getApplicationDeployment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -30928,10 +30558,6 @@ class updateApplicationDeployment_args(object):
             oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
             oprot.writeString(self.appDeploymentId.encode('utf-8') if sys.version_info[0] == 2 else 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()
 
@@ -30940,8 +30566,6 @@ class updateApplicationDeployment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appDeploymentId is None:
             raise TProtocolException(message='Required field appDeploymentId is unset!')
-        if self.applicationDeployment is None:
-            raise TProtocolException(message='Required field applicationDeployment is unset!')
         return
 
     def __repr__(self):
@@ -30956,7 +30580,7 @@ class updateApplicationDeployment_args(object):
         return not (self == other)
 
 
-class updateApplicationDeployment_result(object):
+class getApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -30967,7 +30591,7 @@ class updateApplicationDeployment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -30991,8 +30615,9 @@ class updateApplicationDeployment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -31028,10 +30653,10 @@ class updateApplicationDeployment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationDeployment_result')
+        oprot.writeStructBegin('getApplicationDeployment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -31067,22 +30692,25 @@ class updateApplicationDeployment_result(object):
         return not (self == other)
 
 
-class deleteApplicationDeployment_args(object):
+class updateApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
      - appDeploymentId
+     - applicationDeployment
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appDeploymentId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationDeployment', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appDeploymentId=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None, applicationDeployment=None,):
         self.authzToken = authzToken
         self.appDeploymentId = appDeploymentId
+        self.applicationDeployment = applicationDeployment
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -31104,6 +30732,12 @@ class deleteApplicationDeployment_args(object):
                     self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.applicationDeployment.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -31113,7 +30747,7 @@ class deleteApplicationDeployment_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationDeployment_args')
+        oprot.writeStructBegin('updateApplicationDeployment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -31122,6 +30756,10 @@ class deleteApplicationDeployment_args(object):
             oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
             oprot.writeString(self.appDeploymentId.encode('utf-8') if sys.version_info[0] == 2 else 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()
 
@@ -31130,6 +30768,8 @@ class deleteApplicationDeployment_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appDeploymentId is None:
             raise TProtocolException(message='Required field appDeploymentId is unset!')
+        if self.applicationDeployment is None:
+            raise TProtocolException(message='Required field applicationDeployment is unset!')
         return
 
     def __repr__(self):
@@ -31144,7 +30784,7 @@ class deleteApplicationDeployment_args(object):
         return not (self == other)
 
 
-class deleteApplicationDeployment_result(object):
+class updateApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31216,7 +30856,7 @@ class deleteApplicationDeployment_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationDeployment_result')
+        oprot.writeStructBegin('updateApplicationDeployment_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -31255,22 +30895,22 @@ class deleteApplicationDeployment_result(object):
         return not (self == other)
 
 
-class getAllApplicationDeployments_args(object):
+class deleteApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
+     - appDeploymentId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'appDeploymentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, gatewayId=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
+        self.appDeploymentId = appDeploymentId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -31289,7 +30929,7 @@ class getAllApplicationDeployments_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -31301,14 +30941,14 @@ class getAllApplicationDeployments_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationDeployments_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.gatewayId is not None:
-            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+        if self.appDeploymentId is not None:
+            oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+            oprot.writeString(self.appDeploymentId.encode('utf-8') if sys.version_info[0] == 2 else self.appDeploymentId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -31316,8 +30956,8 @@ class getAllApplicationDeployments_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.appDeploymentId is None:
+            raise TProtocolException(message='Required field appDeploymentId is unset!')
         return
 
     def __repr__(self):
@@ -31332,7 +30972,7 @@ class getAllApplicationDeployments_args(object):
         return not (self == other)
 
 
-class getAllApplicationDeployments_result(object):
+class deleteApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31343,7 +30983,7 @@ class getAllApplicationDeployments_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), False), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -31367,14 +31007,8 @@ class getAllApplicationDeployments_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype128, _size125) = iprot.readListBegin()
-                    for _i129 in range(_size125):
-                        _elem130 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                        _elem130.read(iprot)
-                        self.success.append(_elem130)
-                    iprot.readListEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -31410,13 +31044,10 @@ class getAllApplicationDeployments_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationDeployments_result')
+        oprot.writeStructBegin('deleteApplicationDeployment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter131 in self.success:
-                iter131.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -31452,25 +31083,22 @@ class getAllApplicationDeployments_result(object):
         return not (self == other)
 
 
-class getAccessibleApplicationDeployments_args(object):
+class getAllApplicationDeployments_args(object):
     """
     Attributes:
      - authzToken
      - gatewayId
-     - permissionType
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'permissionType', None, None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, permissionType=None,):
+    def __init__(self, authzToken=None, gatewayId=None,):
         self.authzToken = authzToken
         self.gatewayId = gatewayId
-        self.permissionType = permissionType
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -31492,11 +31120,6 @@ class getAccessibleApplicationDeployments_args(object):
                     self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I32:
-                    self.permissionType = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -31506,7 +31129,7 @@ class getAccessibleApplicationDeployments_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAccessibleApplicationDeployments_args')
+        oprot.writeStructBegin('getAllApplicationDeployments_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -31515,10 +31138,6 @@ class getAccessibleApplicationDeployments_args(object):
             oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
             oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
-        if self.permissionType is not None:
-            oprot.writeFieldBegin('permissionType', TType.I32, 3)
-            oprot.writeI32(self.permissionType)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -31527,8 +31146,6 @@ class getAccessibleApplicationDeployments_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.gatewayId is None:
             raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.permissionType is None:
-            raise TProtocolException(message='Required field permissionType is unset!')
         return
 
     def __repr__(self):
@@ -31543,7 +31160,7 @@ class getAccessibleApplicationDeployments_args(object):
         return not (self == other)
 
 
-class getAccessibleApplicationDeployments_result(object):
+class getAllApplicationDeployments_result(object):
     """
     Attributes:
      - success
@@ -31580,11 +31197,11 @@ class getAccessibleApplicationDeployments_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype135, _size132) = iprot.readListBegin()
-                    for _i136 in range(_size132):
-                        _elem137 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                        _elem137.read(iprot)
-                        self.success.append(_elem137)
+                    (_etype128, _size125) = iprot.readListBegin()
+                    for _i129 in range(_size125):
+                        _elem130 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                        _elem130.read(iprot)
+                        self.success.append(_elem130)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -31621,12 +31238,12 @@ class getAccessibleApplicationDeployments_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAccessibleApplicationDeployments_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 iter131 in self.success:
+                iter131.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -31663,22 +31280,25 @@ class getAccessibleApplicationDeployments_result(object):
         return not (self == other)
 
 
-class getAppModuleDeployedResources_args(object):
+class getAccessibleApplicationDeployments_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
+     - gatewayId
+     - permissionType
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'permissionType', None, None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appModuleId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, permissionType=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
+        self.gatewayId = gatewayId
+        self.permissionType = permissionType
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -31697,7 +31317,12 @@ class getAppModuleDeployedResources_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.permissionType = iprot.readI32()
                 else:
                     iprot.skip(ftype)
             else:
@@ -31709,14 +31334,18 @@ class getAppModuleDeployedResources_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAppModuleDeployedResources_args')
+        oprot.writeStructBegin('getAccessibleApplicationDeployments_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.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.permissionType is not None:
+            oprot.writeFieldBegin('permissionType', TType.I32, 3)
+            oprot.writeI32(self.permissionType)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -31724,8 +31353,10 @@ class getAppModuleDeployedResources_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appModuleId is None:
-            raise TProtocolException(message='Required field appModuleId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.permissionType is None:
+            raise TProtocolException(message='Required field permissionType is unset!')
         return
 
     def __repr__(self):
@@ -31740,7 +31371,7 @@ class getAppModuleDeployedResources_args(object):
         return not (self == other)
 
 
-class getAppModuleDeployedResources_result(object):
+class getAccessibleApplicationDeployments_result(object):
     """
     Attributes:
      - success
@@ -31751,7 +31382,7 @@ class getAppModuleDeployedResources_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRING, 'UTF8', False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -31777,10 +31408,11 @@ class getAppModuleDeployedResources_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype142, _size139) = iprot.readListBegin()
-                    for _i143 in range(_size139):
-                        _elem144 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success.append(_elem144)
+                    (_etype135, _size132) = iprot.readListBegin()
+                    for _i136 in range(_size132):
+                        _elem137 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                        _elem137.read(iprot)
+                        self.success.append(_elem137)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -31817,12 +31449,12 @@ class getAppModuleDeployedResources_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAppModuleDeployedResources_result')
+        oprot.writeStructBegin('getAccessibleApplicationDeployments_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRING, len(self.success))
-            for iter145 in self.success:
-                oprot.writeString(iter145.encode('utf-8') if sys.version_info[0] == 2 else iter145)
+            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:
@@ -31859,25 +31491,22 @@ class getAppModuleDeployedResources_result(object):
         return not (self == other)
 
 
-class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
+class getAppModuleDeployedResources_args(object):
     """
     Attributes:
      - authzToken
      - appModuleId
-     - groupResourceProfileId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'groupResourceProfileId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appModuleId=None, groupResourceProfileId=None,):
+    def __init__(self, authzToken=None, appModuleId=None,):
         self.authzToken = authzToken
         self.appModuleId = appModuleId
-        self.groupResourceProfileId = groupResourceProfileId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -31899,11 +31528,6 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
                     self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRING:
-                    self.groupResourceProfileId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -31913,7 +31537,7 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args')
+        oprot.writeStructBegin('getAppModuleDeployedResources_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -31922,10 +31546,6 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
             oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
             oprot.writeString(self.appModuleId.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
             oprot.writeFieldEnd()
-        if self.groupResourceProfileId is not None:
-            oprot.writeFieldBegin('groupResourceProfileId', TType.STRING, 3)
-            oprot.writeString(self.groupResourceProfileId.encode('utf-8') if sys.version_info[0] == 2 else self.groupResourceProfileId)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -31934,8 +31554,6 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appModuleId is None:
             raise TProtocolException(message='Required field appModuleId is unset!')
-        if self.groupResourceProfileId is None:
-            raise TProtocolException(message='Required field groupResourceProfileId is unset!')
         return
 
     def __repr__(self):
@@ -31950,7 +31568,7 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
         return not (self == other)
 
 
-class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object):
+class getAppModuleDeployedResources_result(object):
     """
     Attributes:
      - success
@@ -31961,7 +31579,7 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRING, 'UTF8', False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -31987,11 +31605,10 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype149, _size146) = iprot.readListBegin()
-                    for _i150 in range(_size146):
-                        _elem151 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                        _elem151.read(iprot)
-                        self.success.append(_elem151)
+                    (_etype142, _size139) = iprot.readListBegin()
+                    for _i143 in range(_size139):
+                        _elem144 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success.append(_elem144)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -32028,12 +31645,12 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result')
+        oprot.writeStructBegin('getAppModuleDeployedResources_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter152 in self.success:
-                iter152.write(oprot)
+            oprot.writeListBegin(TType.STRING, len(self.success))
+            for iter145 in self.success:
+                oprot.writeString(iter145.encode('utf-8') if sys.version_info[0] == 2 else iter145)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -32070,25 +31687,25 @@ class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object
         return not (self == other)
 
 
-class registerApplicationInterface_args(object):
+class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - applicationInterface
+     - appModuleId
+     - groupResourceProfileId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationInterface', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'groupResourceProfileId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, applicationInterface=None,):
+    def __init__(self, authzToken=None, appModuleId=None, groupResourceProfileId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.applicationInterface = applicationInterface
+        self.appModuleId = appModuleId
+        self.groupResourceProfileId = groupResourceProfileId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -32107,13 +31724,12 @@ class registerApplicationInterface_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                    self.applicationInterface.read(iprot)
+                if ftype == TType.STRING:
+                    self.groupResourceProfileId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -32125,18 +31741,18 @@ class registerApplicationInterface_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationInterface_args')
+        oprot.writeStructBegin('getApplicationDeploymentsForAppModuleAndGroupResourceProfile_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+        if self.appModuleId is not None:
+            oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+            oprot.writeString(self.appModuleId.encode('utf-8') if sys.version_info[0] == 2 else self.appModuleId)
             oprot.writeFieldEnd()
-        if self.applicationInterface is not None:
-            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
-            self.applicationInterface.write(oprot)
+        if self.groupResourceProfileId is not None:
+            oprot.writeFieldBegin('groupResourceProfileId', TType.STRING, 3)
+            oprot.writeString(self.groupResourceProfileId.encode('utf-8') if sys.version_info[0] == 2 else self.groupResourceProfileId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -32144,10 +31760,10 @@ class registerApplicationInterface_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
-        if self.applicationInterface is None:
-            raise TProtocolException(message='Required field applicationInterface is unset!')
+        if self.appModuleId is None:
+            raise TProtocolException(message='Required field appModuleId is unset!')
+        if self.groupResourceProfileId is None:
+            raise TProtocolException(message='Required field groupResourceProfileId is unset!')
         return
 
     def __repr__(self):
@@ -32162,7 +31778,7 @@ class registerApplicationInterface_args(object):
         return not (self == other)
 
 
-class registerApplicationInterface_result(object):
+class getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result(object):
     """
     Attributes:
      - success
@@ -32173,7 +31789,7 @@ class registerApplicationInterface_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -32197,8 +31813,14 @@ class registerApplicationInterface_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype149, _size146) = iprot.readListBegin()
+                    for _i150 in range(_size146):
+                        _elem151 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                        _elem151.read(iprot)
+                        self.success.append(_elem151)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32234,10 +31856,13 @@ class registerApplicationInterface_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerApplicationInterface_result')
+        oprot.writeStructBegin('getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter152 in self.success:
+                iter152.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -32273,28 +31898,25 @@ class registerApplicationInterface_result(object):
         return not (self == other)
 
 
-class cloneApplicationInterface_args(object):
+class registerApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
-     - existingAppInterfaceID
-     - newApplicationName
      - gatewayId
+     - applicationInterface
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'existingAppInterfaceID', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'newApplicationName', 'UTF8', None, ),  # 3
-        (4, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 4
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationInterface', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, existingAppInterfaceID=None, newApplicationName=None, gatewayId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationInterface=None,):
         self.authzToken = authzToken
-        self.existingAppInterfaceID = existingAppInterfaceID
-        self.newApplicationName = newApplicationName
         self.gatewayId = gatewayId
+        self.applicationInterface = applicationInterface
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -32313,17 +31935,13 @@ class cloneApplicationInterface_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.existingAppInterfaceID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.STRING:
-                    self.newApplicationName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                    self.applicationInterface.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -32335,29 +31953,29 @@ class cloneApplicationInterface_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneApplicationInterface_args')
+        oprot.writeStructBegin('registerApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.existingAppInterfaceID is not None:
-            oprot.writeFieldBegin('existingAppInterfaceID', TType.STRING, 2)
-            oprot.writeString(self.existingAppInterfaceID.encode('utf-8') if sys.version_info[0] == 2 else self.existingAppInterfaceID)
-            oprot.writeFieldEnd()
-        if self.newApplicationName is not None:
-            oprot.writeFieldBegin('newApplicationName', TType.STRING, 3)
-            oprot.writeString(self.newApplicationName.encode('utf-8') if sys.version_info[0] == 2 else self.newApplicationName)
-            oprot.writeFieldEnd()
         if self.gatewayId is not None:
-            oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
             oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
+        if self.applicationInterface is not None:
+            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
+            self.applicationInterface.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.applicationInterface is None:
+            raise TProtocolException(message='Required field applicationInterface is unset!')
         return
 
     def __repr__(self):
@@ -32372,7 +31990,7 @@ class cloneApplicationInterface_args(object):
         return not (self == other)
 
 
-class cloneApplicationInterface_result(object):
+class registerApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32444,7 +32062,7 @@ class cloneApplicationInterface_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('cloneApplicationInterface_result')
+        oprot.writeStructBegin('registerApplicationInterface_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRING, 0)
             oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
@@ -32483,22 +32101,28 @@ class cloneApplicationInterface_result(object):
         return not (self == other)
 
 
-class getApplicationInterface_args(object):
+class cloneApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
-     - appInterfaceId
+     - existingAppInterfaceID
+     - newApplicationName
+     - gatewayId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'existingAppInterfaceID', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'newApplicationName', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, appInterfaceId=None,):
+    def __init__(self, authzToken=None, existingAppInterfaceID=None, newApplicationName=None, gatewayId=None,):
         self.authzToken = authzToken
-        self.appInterfaceId = appInterfaceId
+        self.existingAppInterfaceID = existingAppInterfaceID
+        self.newApplicationName = newApplicationName
+        self.gatewayId = gatewayId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -32517,7 +32141,17 @@ class getApplicationInterface_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.existingAppInterfaceID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.newApplicationName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -32529,14 +32163,22 @@ class getApplicationInterface_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationInterface_args')
+        oprot.writeStructBegin('cloneApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.appInterfaceId is not None:
-            oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
-            oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
+        if self.existingAppInterfaceID is not None:
+            oprot.writeFieldBegin('existingAppInterfaceID', TType.STRING, 2)
+            oprot.writeString(self.existingAppInterfaceID.encode('utf-8') if sys.version_info[0] == 2 else self.existingAppInterfaceID)
+            oprot.writeFieldEnd()
+        if self.newApplicationName is not None:
+            oprot.writeFieldBegin('newApplicationName', TType.STRING, 3)
+            oprot.writeString(self.newApplicationName.encode('utf-8') if sys.version_info[0] == 2 else self.newApplicationName)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -32544,8 +32186,6 @@ class getApplicationInterface_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appInterfaceId is None:
-            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -32560,7 +32200,7 @@ class getApplicationInterface_args(object):
         return not (self == other)
 
 
-class getApplicationInterface_result(object):
+class cloneApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32571,7 +32211,7 @@ class getApplicationInterface_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -32595,9 +32235,8 @@ class getApplicationInterface_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32633,10 +32272,10 @@ class getApplicationInterface_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationInterface_result')
+        oprot.writeStructBegin('cloneApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -32672,25 +32311,22 @@ class getApplicationInterface_result(object):
         return not (self == other)
 
 
-class updateApplicationInterface_args(object):
+class getApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
      - appInterfaceId
-     - applicationInterface
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationInterface', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appInterfaceId=None, applicationInterface=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
         self.appInterfaceId = appInterfaceId
-        self.applicationInterface = applicationInterface
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -32712,12 +32348,6 @@ class updateApplicationInterface_args(object):
                     self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                    self.applicationInterface.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -32727,7 +32357,7 @@ class updateApplicationInterface_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationInterface_args')
+        oprot.writeStructBegin('getApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -32736,10 +32366,6 @@ class updateApplicationInterface_args(object):
             oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
             oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
             oprot.writeFieldEnd()
-        if self.applicationInterface is not None:
-            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
-            self.applicationInterface.write(oprot)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -32748,8 +32374,6 @@ class updateApplicationInterface_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appInterfaceId is None:
             raise TProtocolException(message='Required field appInterfaceId is unset!')
-        if self.applicationInterface is None:
-            raise TProtocolException(message='Required field applicationInterface is unset!')
         return
 
     def __repr__(self):
@@ -32764,7 +32388,7 @@ class updateApplicationInterface_args(object):
         return not (self == other)
 
 
-class updateApplicationInterface_result(object):
+class getApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32775,7 +32399,7 @@ class updateApplicationInterface_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -32799,8 +32423,9 @@ class updateApplicationInterface_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32836,10 +32461,10 @@ class updateApplicationInterface_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateApplicationInterface_result')
+        oprot.writeStructBegin('getApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -32875,22 +32500,25 @@ class updateApplicationInterface_result(object):
         return not (self == other)
 
 
-class deleteApplicationInterface_args(object):
+class updateApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
      - appInterfaceId
+     - applicationInterface
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'applicationInterface', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appInterfaceId=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None, applicationInterface=None,):
         self.authzToken = authzToken
         self.appInterfaceId = appInterfaceId
+        self.applicationInterface = applicationInterface
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -32912,6 +32540,12 @@ class deleteApplicationInterface_args(object):
                     self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                    self.applicationInterface.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -32921,7 +32555,7 @@ class deleteApplicationInterface_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationInterface_args')
+        oprot.writeStructBegin('updateApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -32930,6 +32564,10 @@ class deleteApplicationInterface_args(object):
             oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
             oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
             oprot.writeFieldEnd()
+        if self.applicationInterface is not None:
+            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
+            self.applicationInterface.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -32938,6 +32576,8 @@ class deleteApplicationInterface_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.appInterfaceId is None:
             raise TProtocolException(message='Required field appInterfaceId is unset!')
+        if self.applicationInterface is None:
+            raise TProtocolException(message='Required field applicationInterface is unset!')
         return
 
     def __repr__(self):
@@ -32952,7 +32592,7 @@ class deleteApplicationInterface_args(object):
         return not (self == other)
 
 
-class deleteApplicationInterface_result(object):
+class updateApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -33024,7 +32664,7 @@ class deleteApplicationInterface_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteApplicationInterface_result')
+        oprot.writeStructBegin('updateApplicationInterface_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -33063,22 +32703,22 @@ class deleteApplicationInterface_result(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaceNames_args(object):
+class deleteApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
+     - appInterfaceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, gatewayId=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
+        self.appInterfaceId = appInterfaceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -33097,7 +32737,7 @@ class getAllApplicationInterfaceNames_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33109,14 +32749,14 @@ class getAllApplicationInterfaceNames_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationInterfaceNames_args')
+        oprot.writeStructBegin('deleteApplicationInterface_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.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+        if self.appInterfaceId is not None:
+            oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
+            oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -33124,8 +32764,8 @@ class getAllApplicationInterfaceNames_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.gatewayId is None:
-            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.appInterfaceId is None:
+            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -33140,7 +32780,7 @@ class getAllApplicationInterfaceNames_args(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaceNames_result(object):
+class deleteApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -33151,7 +32791,7 @@ class getAllApplicationInterfaceNames_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -33175,14 +32815,8 @@ class getAllApplicationInterfaceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype154, _vtype155, _size153) = iprot.readMapBegin()
-                    for _i157 in range(_size153):
-                        _key158 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val159 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key158] = _val159
-                    iprot.readMapEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33218,14 +32852,10 @@ class getAllApplicationInterfaceNames_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationInterfaceNames_result')
+        oprot.writeStructBegin('deleteApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter160, viter161 in self.success.items():
-                oprot.writeString(kiter160.encode('utf-8') if sys.version_info[0] == 2 else kiter160)
-                oprot.writeString(viter161.encode('utf-8') if sys.version_info[0] == 2 else viter161)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33261,7 +32891,7 @@ class getAllApplicationInterfaceNames_result(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaces_args(object):
+class getAllApplicationInterfaceNames_args(object):
     """
     Attributes:
      - authzToken
@@ -33307,7 +32937,7 @@ class getAllApplicationInterfaces_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationInterfaces_args')
+        oprot.writeStructBegin('getAllApplicationInterfaceNames_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -33338,7 +32968,7 @@ class getAllApplicationInterfaces_args(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaces_result(object):
+class getAllApplicationInterfaceNames_result(object):
     """
     Attributes:
      - success
@@ -33349,7 +32979,7 @@ class getAllApplicationInterfaces_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), False), None, ),  # 0
+        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -33373,14 +33003,14 @@ class getAllApplicationInterfaces_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype165, _size162) = iprot.readListBegin()
-                    for _i166 in range(_size162):
-                        _elem167 = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                        _elem167.read(iprot)
-                        self.success.append(_elem167)
-                    iprot.readListEnd()
+                if ftype == TType.MAP:
+                    self.success = {}
+                    (_ktype154, _vtype155, _size153) = iprot.readMapBegin()
+                    for _i157 in range(_size153):
+                        _key158 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val159 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key158] = _val159
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33416,13 +33046,14 @@ class getAllApplicationInterfaces_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllApplicationInterfaces_result')
+        oprot.writeStructBegin('getAllApplicationInterfaceNames_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter168 in self.success:
-                iter168.write(oprot)
-            oprot.writeListEnd()
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+            for kiter160, viter161 in self.success.items():
+                oprot.writeString(kiter160.encode('utf-8') if sys.version_info[0] == 2 else kiter160)
+                oprot.writeString(viter161.encode('utf-8') if sys.version_info[0] == 2 else viter161)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33458,22 +33089,22 @@ class getAllApplicationInterfaces_result(object):
         return not (self == other)
 
 
-class getApplicationInputs_args(object):
+class getAllApplicationInterfaces_args(object):
     """
     Attributes:
      - authzToken
-     - appInterfaceId
+     - gatewayId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, appInterfaceId=None,):
+    def __init__(self, authzToken=None, gatewayId=None,):
         self.authzToken = authzToken
-        self.appInterfaceId = appInterfaceId
+        self.gatewayId = gatewayId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -33492,7 +33123,7 @@ class getApplicationInputs_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33504,14 +33135,14 @@ class getApplicationInputs_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationInputs_args')
+        oprot.writeStructBegin('getAllApplicationInterfaces_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.appInterfaceId is not None:
-            oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
-            oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -33519,8 +33150,8 @@ class getApplicationInputs_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.appInterfaceId is None:
-            raise TProtocolException(message='Required field appInterfaceId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
         return
 
     def __repr__(self):
@@ -33535,7 +33166,7 @@ class getApplicationInputs_args(object):
         return not (self == other)
 
 
-class getApplicationInputs_result(object):
+class getAllApplicationInterfaces_result(object):
     """
     Attributes:
      - success
@@ -33546,7 +33177,7 @@ class getApplicationInputs_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.InputDataObjectType, airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec), False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -33572,11 +33203,11 @@ class getApplicationInputs_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype172, _size169) = iprot.readListBegin()
-                    for _i173 in range(_size169):
-                        _elem174 = airavata.model.application.io.ttypes.InputDataObjectType()
-                        _elem174.read(iprot)
-                        self.success.append(_elem174)
+                    (_etype165, _size162) = iprot.readListBegin()
+                    for _i166 in range(_size162):
+                        _elem167 = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                        _elem167.read(iprot)
+                        self.success.append(_elem167)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -33613,12 +33244,12 @@ class getApplicationInputs_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationInputs_result')
+        oprot.writeStructBegin('getAllApplicationInterfaces_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter175 in self.success:
-                iter175.write(oprot)
+            for iter168 in self.success:
+                iter168.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -33655,7 +33286,7 @@ class getApplicationInputs_result(object):
         return not (self == other)
 
 
-class getApplicationOutputs_args(object):
+class getApplicationInputs_args(object):
     """
     Attributes:
      - authzToken
@@ -33701,7 +33332,7 @@ class getApplicationOutputs_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationOutputs_args')
+        oprot.writeStructBegin('getApplicationInputs_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -33732,7 +33363,7 @@ class getApplicationOutputs_args(object):
         return not (self == other)
 
 
-class getApplicationOutputs_result(object):
+class getApplicationInputs_result(object):
     """
     Attributes:
      - success
@@ -33743,7 +33374,7 @@ class getApplicationOutputs_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.OutputDataObjectType, airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.InputDataObjectType, airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -33769,11 +33400,11 @@ class getApplicationOutputs_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype179, _size176) = iprot.readListBegin()
-                    for _i180 in range(_size176):
-                        _elem181 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem181.read(iprot)
-                        self.success.append(_elem181)
+                    (_etype172, _size169) = iprot.readListBegin()
+                    for _i173 in range(_size169):
+                        _elem174 = airavata.model.application.io.ttypes.InputDataObjectType()
+                        _elem174.read(iprot)
+                        self.success.append(_elem174)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -33810,12 +33441,12 @@ class getApplicationOutputs_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getApplicationOutputs_result')
+        oprot.writeStructBegin('getApplicationInputs_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter182 in self.success:
-                iter182.write(oprot)
+            for iter175 in self.success:
+                iter175.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -33852,7 +33483,7 @@ class getApplicationOutputs_result(object):
         return not (self == other)
 
 
-class getAvailableAppInterfaceComputeResources_args(object):
+class getApplicationOutputs_args(object):
     """
     Attributes:
      - authzToken
@@ -33898,7 +33529,7 @@ class getAvailableAppInterfaceComputeResources_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAvailableAppInterfaceComputeResources_args')
+        oprot.writeStructBegin('getApplicationOutputs_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -33929,7 +33560,7 @@ class getAvailableAppInterfaceComputeResources_args(object):
         return not (self == other)
 
 
-class getAvailableAppInterfaceComputeResources_result(object):
+class getApplicationOutputs_result(object):
     """
     Attributes:
      - success
@@ -33940,7 +33571,7 @@ class getAvailableAppInterfaceComputeResources_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.application.io.ttypes.OutputDataObjectType, airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -33964,14 +33595,14 @@ class getAvailableAppInterfaceComputeResources_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype184, _vtype185, _size183) = iprot.readMapBegin()
-                    for _i187 in range(_size183):
-                        _key188 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val189 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key188] = _val189
-                    iprot.readMapEnd()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype179, _size176) = iprot.readListBegin()
+                    for _i180 in range(_size176):
+                        _elem181 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem181.read(iprot)
+                        self.success.append(_elem181)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34007,14 +33638,13 @@ class getAvailableAppInterfaceComputeResources_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAvailableAppInterfaceComputeResources_result')
+        oprot.writeStructBegin('getApplicationOutputs_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter190, viter191 in self.success.items():
-                oprot.writeString(kiter190.encode('utf-8') if sys.version_info[0] == 2 else kiter190)
-                oprot.writeString(viter191.encode('utf-8') if sys.version_info[0] == 2 else viter191)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter182 in self.success:
+                iter182.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34050,22 +33680,22 @@ class getAvailableAppInterfaceComputeResources_result(object):
         return not (self == other)
 
 
-class registerComputeResource_args(object):
+class getAvailableAppInterfaceComputeResources_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceDescription
+     - appInterfaceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'computeResourceDescription', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 2
+        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceDescription=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
-        self.computeResourceDescription = computeResourceDescription
+        self.appInterfaceId = appInterfaceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -34083,9 +33713,8 @@ class registerComputeResource_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 2:
-                if ftype == TType.STRUCT:
-                    self.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
-                    self.computeResourceDescription.read(iprot)
+                if ftype == TType.STRING:
+                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -34097,14 +33726,14 @@ class registerComputeResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerComputeResource_args')
+        oprot.writeStructBegin('getAvailableAppInterfaceComputeResources_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceDescription is not None:
-            oprot.writeFieldBegin('computeResourceDescription', TType.STRUCT, 2)
-            self.computeResourceDescription.write(oprot)
+        if self.appInterfaceId is not None:
+            oprot.writeFieldBegin('appInterfaceId', TType.STRING, 2)
+            oprot.writeString(self.appInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.appInterfaceId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -34112,8 +33741,8 @@ class registerComputeResource_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceDescription is None:
-            raise TProtocolException(message='Required field computeResourceDescription is unset!')
+        if self.appInterfaceId is None:
+            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -34128,7 +33757,7 @@ class registerComputeResource_args(object):
         return not (self == other)
 
 
-class registerComputeResource_result(object):
+class getAvailableAppInterfaceComputeResources_result(object):
     """
     Attributes:
      - success
@@ -34139,7 +33768,7 @@ class registerComputeResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -34163,8 +33792,14 @@ class registerComputeResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.MAP:
+                    self.success = {}
+                    (_ktype184, _vtype185, _size183) = iprot.readMapBegin()
+                    for _i187 in range(_size183):
+                        _key188 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val189 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key188] = _val189
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34200,10 +33835,14 @@ class registerComputeResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerComputeResource_result')
+        oprot.writeStructBegin('getAvailableAppInterfaceComputeResources_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+            for kiter190, viter191 in self.success.items():
+                oprot.writeString(kiter190.encode('utf-8') if sys.version_info[0] == 2 else kiter190)
+                oprot.writeString(viter191.encode('utf-8') if sys.version_info[0] == 2 else viter191)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34239,22 +33878,22 @@ class registerComputeResource_result(object):
         return not (self == other)
 
 
-class getComputeResource_args(object):
+class registerComputeResource_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
+     - computeResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (2, TType.STRUCT, 'computeResourceDescription', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None,):
+    def __init__(self, authzToken=None, computeResourceDescription=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
+        self.computeResourceDescription = computeResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -34272,8 +33911,9 @@ class getComputeResource_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 2:
-                if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
+                    self.computeResourceDescription.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -34285,14 +33925,14 @@ class getComputeResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getComputeResource_args')
+        oprot.writeStructBegin('registerComputeResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+        if self.computeResourceDescription is not None:
+            oprot.writeFieldBegin('computeResourceDescription', TType.STRUCT, 2)
+            self.computeResourceDescription.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -34300,8 +33940,8 @@ class getComputeResource_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.computeResourceDescription is None:
+            raise TProtocolException(message='Required field computeResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -34316,7 +33956,7 @@ class getComputeResource_args(object):
         return not (self == other)
 
 
-class getComputeResource_result(object):
+class registerComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34327,7 +33967,7 @@ class getComputeResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -34351,9 +33991,8 @@ class getComputeResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34389,10 +34028,10 @@ class getComputeResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getComputeResource_result')
+        oprot.writeStructBegin('registerComputeResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34428,19 +34067,22 @@ class getComputeResource_result(object):
         return not (self == other)
 
 
-class getAllComputeResourceNames_args(object):
+class getComputeResource_args(object):
     """
     Attributes:
      - authzToken
+     - computeResourceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None,):
+    def __init__(self, authzToken=None, computeResourceId=None,):
         self.authzToken = authzToken
+        self.computeResourceId = computeResourceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -34457,6 +34099,11 @@ class getAllComputeResourceNames_args(object):
                     self.authzToken.read(iprot)
                 else:
                     iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -34466,17 +34113,23 @@ class getAllComputeResourceNames_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllComputeResourceNames_args')
+        oprot.writeStructBegin('getComputeResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
         return
 
     def __repr__(self):
@@ -34491,7 +34144,7 @@ class getAllComputeResourceNames_args(object):
         return not (self == other)
 
 
-class getAllComputeResourceNames_result(object):
+class getComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34502,7 +34155,7 @@ class getAllComputeResourceNames_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -34526,14 +34179,9 @@ class getAllComputeResourceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype193, _vtype194, _size192) = iprot.readMapBegin()
-                    for _i196 in range(_size192):
-                        _key197 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val198 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key197] = _val198
-                    iprot.readMapEnd()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34569,14 +34217,10 @@ class getAllComputeResourceNames_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllComputeResourceNames_result')
+        oprot.writeStructBegin('getComputeResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter199, viter200 in self.success.items():
-                oprot.writeString(kiter199.encode('utf-8') if sys.version_info[0] == 2 else kiter199)
-                oprot.writeString(viter200.encode('utf-8') if sys.version_info[0] == 2 else viter200)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34612,25 +34256,19 @@ class getAllComputeResourceNames_result(object):
         return not (self == other)
 
 
-class updateComputeResource_args(object):
+class getAllComputeResourceNames_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - computeResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'computeResourceDescription', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, computeResourceDescription=None,):
+    def __init__(self, authzToken=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.computeResourceDescription = computeResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -34647,17 +34285,6 @@ class updateComputeResource_args(object):
                     self.authzToken.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 2:
-                if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
-                    self.computeResourceDescription.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -34667,29 +34294,17 @@ class updateComputeResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateComputeResource_args')
+        oprot.writeStructBegin('getAllComputeResourceNames_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
-            oprot.writeFieldEnd()
-        if self.computeResourceDescription is not None:
-            oprot.writeFieldBegin('computeResourceDescription', TType.STRUCT, 3)
-            self.computeResourceDescription.write(oprot)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
-        if self.computeResourceDescription is None:
-            raise TProtocolException(message='Required field computeResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -34704,7 +34319,7 @@ class updateComputeResource_args(object):
         return not (self == other)
 
 
-class updateComputeResource_result(object):
+class getAllComputeResourceNames_result(object):
     """
     Attributes:
      - success
@@ -34715,7 +34330,7 @@ class updateComputeResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -34739,8 +34354,14 @@ class updateComputeResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.MAP:
+                    self.success = {}
+                    (_ktype193, _vtype194, _size192) = iprot.readMapBegin()
+                    for _i196 in range(_size192):
+                        _key197 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val198 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key197] = _val198
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34776,10 +34397,14 @@ class updateComputeResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateComputeResource_result')
+        oprot.writeStructBegin('getAllComputeResourceNames_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+            for kiter199, viter200 in self.success.items():
+                oprot.writeString(kiter199.encode('utf-8') if sys.version_info[0] == 2 else kiter199)
+                oprot.writeString(viter200.encode('utf-8') if sys.version_info[0] == 2 else viter200)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34815,22 +34440,25 @@ class updateComputeResource_result(object):
         return not (self == other)
 
 
-class deleteComputeResource_args(object):
+class updateComputeResource_args(object):
     """
     Attributes:
      - authzToken
      - computeResourceId
+     - computeResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'computeResourceDescription', (airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription, airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, computeResourceDescription=None,):
         self.authzToken = authzToken
         self.computeResourceId = computeResourceId
+        self.computeResourceDescription = computeResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -34852,6 +34480,12 @@ class deleteComputeResource_args(object):
                     self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
+                    self.computeResourceDescription.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -34861,7 +34495,7 @@ class deleteComputeResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteComputeResource_args')
+        oprot.writeStructBegin('updateComputeResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -34870,6 +34504,10 @@ class deleteComputeResource_args(object):
             oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
             oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
             oprot.writeFieldEnd()
+        if self.computeResourceDescription is not None:
+            oprot.writeFieldBegin('computeResourceDescription', TType.STRUCT, 3)
+            self.computeResourceDescription.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -34878,6 +34516,8 @@ class deleteComputeResource_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.computeResourceId is None:
             raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.computeResourceDescription is None:
+            raise TProtocolException(message='Required field computeResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -34892,7 +34532,7 @@ class deleteComputeResource_args(object):
         return not (self == other)
 
 
-class deleteComputeResource_result(object):
+class updateComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34964,7 +34604,7 @@ class deleteComputeResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteComputeResource_result')
+        oprot.writeStructBegin('updateComputeResource_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -35003,22 +34643,22 @@ class deleteComputeResource_result(object):
         return not (self == other)
 
 
-class registerStorageResource_args(object):
+class deleteComputeResource_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceDescription
+     - computeResourceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRUCT, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 2
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, storageResourceDescription=None,):
+    def __init__(self, authzToken=None, computeResourceId=None,):
         self.authzToken = authzToken
-        self.storageResourceDescription = storageResourceDescription
+        self.computeResourceId = computeResourceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35036,9 +34676,8 @@ class registerStorageResource_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 2:
-                if ftype == TType.STRUCT:
-                    self.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
-                    self.storageResourceDescription.read(iprot)
+                if ftype == TType.STRING:
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -35050,14 +34689,14 @@ class registerStorageResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerStorageResource_args')
+        oprot.writeStructBegin('deleteComputeResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.storageResourceDescription is not None:
-            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 2)
-            self.storageResourceDescription.write(oprot)
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -35065,8 +34704,8 @@ class registerStorageResource_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.storageResourceDescription is None:
-            raise TProtocolException(message='Required field storageResourceDescription is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
         return
 
     def __repr__(self):
@@ -35081,7 +34720,7 @@ class registerStorageResource_args(object):
         return not (self == other)
 
 
-class registerStorageResource_result(object):
+class deleteComputeResource_result(object):
     """
     Attributes:
      - success
@@ -35092,7 +34731,7 @@ class registerStorageResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -35116,8 +34755,8 @@ class registerStorageResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -35153,10 +34792,10 @@ class registerStorageResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('registerStorageResource_result')
+        oprot.writeStructBegin('deleteComputeResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -35192,22 +34831,22 @@ class registerStorageResource_result(object):
         return not (self == other)
 
 
-class getStorageResource_args(object):
+class registerStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceId
+     - storageResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
+        (2, TType.STRUCT, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, storageResourceId=None,):
+    def __init__(self, authzToken=None, storageResourceDescription=None,):
         self.authzToken = authzToken
-        self.storageResourceId = storageResourceId
+        self.storageResourceDescription = storageResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35225,8 +34864,9 @@ class getStorageResource_args(object):
                 else:
                     iprot.skip(ftype)
             elif fid == 2:
-                if ftype == TType.STRING:
-                    self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
+                    self.storageResourceDescription.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -35238,14 +34878,14 @@ class getStorageResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getStorageResource_args')
+        oprot.writeStructBegin('registerStorageResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.storageResourceId is not None:
-            oprot.writeFieldBegin('storageResourceId', TType.STRING, 2)
-            oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
+        if self.storageResourceDescription is not None:
+            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 2)
+            self.storageResourceDescription.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -35253,8 +34893,8 @@ class getStorageResource_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.storageResourceId is None:
-            raise TProtocolException(message='Required field storageResourceId is unset!')
+        if self.storageResourceDescription is None:
+            raise TProtocolException(message='Required field storageResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -35269,7 +34909,7 @@ class getStorageResource_args(object):
         return not (self == other)
 
 
-class getStorageResource_result(object):
+class registerStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35280,7 +34920,7 @@ class getStorageResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -35304,9 +34944,8 @@ class getStorageResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -35342,10 +34981,10 @@ class getStorageResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getStorageResource_result')
+        oprot.writeStructBegin('registerStorageResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -35381,19 +35020,22 @@ class getStorageResource_result(object):
         return not (self == other)
 
 
-class getAllStorageResourceNames_args(object):
+class getStorageResource_args(object):
     """
     Attributes:
      - authzToken
+     - storageResourceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
+        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None,):
+    def __init__(self, authzToken=None, storageResourceId=None,):
         self.authzToken = authzToken
+        self.storageResourceId = storageResourceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35410,6 +35052,11 @@ class getAllStorageResourceNames_args(object):
                     self.authzToken.read(iprot)
                 else:
                     iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -35419,17 +35066,23 @@ class getAllStorageResourceNames_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllStorageResourceNames_args')
+        oprot.writeStructBegin('getStorageResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
+        if self.storageResourceId is not None:
+            oprot.writeFieldBegin('storageResourceId', TType.STRING, 2)
+            oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
+        if self.storageResourceId is None:
+            raise TProtocolException(message='Required field storageResourceId is unset!')
         return
 
     def __repr__(self):
@@ -35444,7 +35097,7 @@ class getAllStorageResourceNames_args(object):
         return not (self == other)
 
 
-class getAllStorageResourceNames_result(object):
+class getStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35455,7 +35108,7 @@ class getAllStorageResourceNames_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -35479,14 +35132,9 @@ class getAllStorageResourceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype202, _vtype203, _size201) = iprot.readMapBegin()
-                    for _i205 in range(_size201):
-                        _key206 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val207 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key206] = _val207
-                    iprot.readMapEnd()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -35522,14 +35170,10 @@ class getAllStorageResourceNames_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getAllStorageResourceNames_result')
+        oprot.writeStructBegin('getStorageResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter208, viter209 in self.success.items():
-                oprot.writeString(kiter208.encode('utf-8') if sys.version_info[0] == 2 else kiter208)
-                oprot.writeString(viter209.encode('utf-8') if sys.version_info[0] == 2 else viter209)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -35565,25 +35209,19 @@ class getAllStorageResourceNames_result(object):
         return not (self == other)
 
 
-class updateStorageResource_args(object):
+class getAllStorageResourceNames_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceId
-     - storageResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, storageResourceId=None, storageResourceDescription=None,):
+    def __init__(self, authzToken=None,):
         self.authzToken = authzToken
-        self.storageResourceId = storageResourceId
-        self.storageResourceDescription = storageResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35600,17 +35238,6 @@ class updateStorageResource_args(object):
                     self.authzToken.read(iprot)
                 else:
                     iprot.skip(ftype)
-            elif fid == 2:
-                if ftype == TType.STRING:
-                    self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
-                    self.storageResourceDescription.read(iprot)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -35620,29 +35247,17 @@ class updateStorageResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateStorageResource_args')
+        oprot.writeStructBegin('getAllStorageResourceNames_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.storageResourceId is not None:
-            oprot.writeFieldBegin('storageResourceId', TType.STRING, 2)
-            oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
-            oprot.writeFieldEnd()
-        if self.storageResourceDescription is not None:
-            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 3)
-            self.storageResourceDescription.write(oprot)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.storageResourceId is None:
-            raise TProtocolException(message='Required field storageResourceId is unset!')
-        if self.storageResourceDescription is None:
-            raise TProtocolException(message='Required field storageResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -35657,7 +35272,7 @@ class updateStorageResource_args(object):
         return not (self == other)
 
 
-class updateStorageResource_result(object):
+class getAllStorageResourceNames_result(object):
     """
     Attributes:
      - success
@@ -35668,7 +35283,7 @@ class updateStorageResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -35692,8 +35307,14 @@ class updateStorageResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.MAP:
+                    self.success = {}
+                    (_ktype202, _vtype203, _size201) = iprot.readMapBegin()
+                    for _i205 in range(_size201):
+                        _key206 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val207 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key206] = _val207
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -35729,10 +35350,14 @@ class updateStorageResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateStorageResource_result')
+        oprot.writeStructBegin('getAllStorageResourceNames_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+            for kiter208, viter209 in self.success.items():
+                oprot.writeString(kiter208.encode('utf-8') if sys.version_info[0] == 2 else kiter208)
+                oprot.writeString(viter209.encode('utf-8') if sys.version_info[0] == 2 else viter209)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -35768,22 +35393,25 @@ class updateStorageResource_result(object):
         return not (self == other)
 
 
-class deleteStorageResource_args(object):
+class updateStorageResource_args(object):
     """
     Attributes:
      - authzToken
      - storageResourceId
+     - storageResourceDescription
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, storageResourceId=None,):
+    def __init__(self, authzToken=None, storageResourceId=None, storageResourceDescription=None,):
         self.authzToken = authzToken
         self.storageResourceId = storageResourceId
+        self.storageResourceDescription = storageResourceDescription
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35805,6 +35433,12 @@ class deleteStorageResource_args(object):
                     self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
+                    self.storageResourceDescription.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -35814,7 +35448,7 @@ class deleteStorageResource_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteStorageResource_args')
+        oprot.writeStructBegin('updateStorageResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -35823,6 +35457,10 @@ class deleteStorageResource_args(object):
             oprot.writeFieldBegin('storageResourceId', TType.STRING, 2)
             oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
             oprot.writeFieldEnd()
+        if self.storageResourceDescription is not None:
+            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 3)
+            self.storageResourceDescription.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -35831,6 +35469,8 @@ class deleteStorageResource_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.storageResourceId is None:
             raise TProtocolException(message='Required field storageResourceId is unset!')
+        if self.storageResourceDescription is None:
+            raise TProtocolException(message='Required field storageResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -35845,7 +35485,7 @@ class deleteStorageResource_args(object):
         return not (self == other)
 
 
-class deleteStorageResource_result(object):
+class updateStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35917,7 +35557,7 @@ class deleteStorageResource_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('deleteStorageResource_result')
+        oprot.writeStructBegin('updateStorageResource_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -35956,28 +35596,22 @@ class deleteStorageResource_result(object):
         return not (self == other)
 
 
-class addLocalSubmissionDetails_args(object):
+class deleteStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - priorityOrder
-     - localSubmission
+     - storageResourceId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
-        (4, TType.STRUCT, 'localSubmission', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 4
+        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, localSubmission=None,):
+    def __init__(self, authzToken=None, storageResourceId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        self.localSubmission = localSubmission
+        self.storageResourceId = storageResourceId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -35996,18 +35630,7 @@ class addLocalSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I32:
-                    self.priorityOrder = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.localSubmission = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
-                    self.localSubmission.read(iprot)
+                    self.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -36019,22 +35642,14 @@ class addLocalSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addLocalSubmissionDetails_args')
+        oprot.writeStructBegin('deleteStorageResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
-            oprot.writeFieldEnd()
-        if self.priorityOrder is not None:
-            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
-            oprot.writeI32(self.priorityOrder)
-            oprot.writeFieldEnd()
-        if self.localSubmission is not None:
-            oprot.writeFieldBegin('localSubmission', TType.STRUCT, 4)
-            self.localSubmission.write(oprot)
+        if self.storageResourceId is not None:
+            oprot.writeFieldBegin('storageResourceId', TType.STRING, 2)
+            oprot.writeString(self.storageResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.storageResourceId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -36042,12 +35657,8 @@ class addLocalSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
-        if self.priorityOrder is None:
-            raise TProtocolException(message='Required field priorityOrder is unset!')
-        if self.localSubmission is None:
-            raise TProtocolException(message='Required field localSubmission is unset!')
+        if self.storageResourceId is None:
+            raise TProtocolException(message='Required field storageResourceId is unset!')
         return
 
     def __repr__(self):
@@ -36062,7 +35673,7 @@ class addLocalSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addLocalSubmissionDetails_result(object):
+class deleteStorageResource_result(object):
     """
     Attributes:
      - success
@@ -36073,7 +35684,7 @@ class addLocalSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -36097,8 +35708,8 @@ class addLocalSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -36134,10 +35745,10 @@ class addLocalSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addLocalSubmissionDetails_result')
+        oprot.writeStructBegin('deleteStorageResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -36173,24 +35784,27 @@ class addLocalSubmissionDetails_result(object):
         return not (self == other)
 
 
-class updateLocalSubmissionDetails_args(object):
+class addLocalSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionInterfaceId
+     - computeResourceId
+     - priorityOrder
      - localSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'localSubmission', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
+        (4, TType.STRUCT, 'localSubmission', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, localSubmission=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, localSubmission=None,):
         self.authzToken = authzToken
-        self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
+        self.computeResourceId = computeResourceId
+        self.priorityOrder = priorityOrder
         self.localSubmission = localSubmission
 
     def read(self, iprot):
@@ -36210,10 +35824,15 @@ class updateLocalSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
                 if ftype == TType.STRUCT:
                     self.localSubmission = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
                     self.localSubmission.read(iprot)
@@ -36228,17 +35847,21 @@ class updateLocalSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateLocalSubmissionDetails_args')
+        oprot.writeStructBegin('addLocalSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionInterfaceId is not None:
-            oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionInterfaceId)
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
+            oprot.writeI32(self.priorityOrder)
             oprot.writeFieldEnd()
         if self.localSubmission is not None:
-            oprot.writeFieldBegin('localSubmission', TType.STRUCT, 3)
+            oprot.writeFieldBegin('localSubmission', TType.STRUCT, 4)
             self.localSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -36247,8 +35870,10 @@ class updateLocalSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionInterfaceId is None:
-            raise TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
         if self.localSubmission is None:
             raise TProtocolException(message='Required field localSubmission is unset!')
         return
@@ -36265,7 +35890,7 @@ class updateLocalSubmissionDetails_args(object):
         return not (self == other)
 
 
-class updateLocalSubmissionDetails_result(object):
+class addLocalSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -36276,7 +35901,7 @@ class updateLocalSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -36300,8 +35925,8 @@ class updateLocalSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -36337,10 +35962,10 @@ class updateLocalSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateLocalSubmissionDetails_result')
+        oprot.writeStructBegin('addLocalSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -36376,22 +36001,25 @@ class updateLocalSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getLocalJobSubmission_args(object):
+class updateLocalSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - jobSubmissionInterfaceId
+     - localSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'localSubmission', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, localSubmission=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
+        self.localSubmission = localSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -36410,7 +36038,13 @@ class getLocalJobSubmission_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.jobSubmissionInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.localSubmission = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
+                    self.localSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -36422,14 +36056,18 @@ class getLocalJobSubmission_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getLocalJobSubmission_args')
+        oprot.writeStructBegin('updateLocalSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionId is not None:
-            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
+        if self.jobSubmissionInterfaceId is not None:
+            oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionInterfaceId)
+            oprot.writeFieldEnd()
+        if self.localSubmission is not None:
+            oprot.writeFieldBegin('localSubmission', TType.STRUCT, 3)
+            self.localSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -36437,8 +36075,10 @@ class getLocalJobSubmission_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionId is None:
-            raise TProtocolException(message='Required field jobSubmissionId is unset!')
+        if self.jobSubmissionInterfaceId is None:
+            raise TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
+        if self.localSubmission is None:
+            raise TProtocolException(message='Required field localSubmission is unset!')
         return
 
     def __repr__(self):
@@ -36453,7 +36093,7 @@ class getLocalJobSubmission_args(object):
         return not (self == other)
 
 
-class getLocalJobSubmission_result(object):
+class updateLocalSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -36464,7 +36104,7 @@ class getLocalJobSubmission_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -36488,9 +36128,8 @@ class getLocalJobSubmission_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
-                    self.success.read(iprot)
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -36526,10 +36165,10 @@ class getLocalJobSubmission_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getLocalJobSubmission_result')
+        oprot.writeStructBegin('updateLocalSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -36565,28 +36204,22 @@ class getLocalJobSubmission_result(object):
         return not (self == other)
 
 
-class addSSHJobSubmissionDetails_args(object):
+class getLocalJobSubmission_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - priorityOrder
-     - sshJobSubmission
+     - jobSubmissionId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
-        (4, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 4
+        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, sshJobSubmission=None,):
+    def __init__(self, authzToken=None, jobSubmissionId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        self.sshJobSubmission = sshJobSubmission
+        self.jobSubmissionId = jobSubmissionId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -36605,18 +36238,7 @@ class addSSHJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I32:
-                    self.priorityOrder = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
-                    self.sshJobSubmission.read(iprot)
+                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -36628,22 +36250,14 @@ class addSSHJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addSSHJobSubmissionDetails_args')
+        oprot.writeStructBegin('getLocalJobSubmission_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
-            oprot.writeFieldEnd()
-        if self.priorityOrder is not None:
-            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
-            oprot.writeI32(self.priorityOrder)
-            oprot.writeFieldEnd()
-        if self.sshJobSubmission is not None:
-            oprot.writeFieldBegin('sshJobSubmission', TType.STRUCT, 4)
-            self.sshJobSubmission.write(oprot)
+        if self.jobSubmissionId is not None:
+            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -36651,12 +36265,8 @@ class addSSHJobSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
-        if self.priorityOrder is None:
-            raise TProtocolException(message='Required field priorityOrder is unset!')
-        if self.sshJobSubmission is None:
-            raise TProtocolException(message='Required field sshJobSubmission is unset!')
+        if self.jobSubmissionId is None:
+            raise TProtocolException(message='Required field jobSubmissionId is unset!')
         return
 
     def __repr__(self):
@@ -36671,7 +36281,7 @@ class addSSHJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addSSHJobSubmissionDetails_result(object):
+class getLocalJobSubmission_result(object):
     """
     Attributes:
      - success
@@ -36682,7 +36292,7 @@ class addSSHJobSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission, airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -36706,8 +36316,9 @@ class addSSHJobSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -36743,10 +36354,10 @@ class addSSHJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addSSHJobSubmissionDetails_result')
+        oprot.writeStructBegin('getLocalJobSubmission_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -36782,7 +36393,7 @@ class addSSHJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class addSSHForkJobSubmissionDetails_args(object):
+class addSSHJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
@@ -36845,7 +36456,7 @@ class addSSHForkJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addSSHForkJobSubmissionDetails_args')
+        oprot.writeStructBegin('addSSHJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -36888,7 +36499,7 @@ class addSSHForkJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addSSHForkJobSubmissionDetails_result(object):
+class addSSHJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -36960,7 +36571,7 @@ class addSSHForkJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addSSHForkJobSubmissionDetails_result')
+        oprot.writeStructBegin('addSSHJobSubmissionDetails_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRING, 0)
             oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
@@ -36999,22 +36610,28 @@ class addSSHForkJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getSSHJobSubmission_args(object):
+class addSSHForkJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - computeResourceId
+     - priorityOrder
+     - sshJobSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
+        (4, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, sshJobSubmission=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        self.computeResourceId = computeResourceId
+        self.priorityOrder = priorityOrder
+        self.sshJobSubmission = sshJobSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -37033,7 +36650,18 @@ class getSSHJobSubmission_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
+                    self.sshJobSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -37045,14 +36673,22 @@ class getSSHJobSubmission_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getSSHJobSubmission_args')
+        oprot.writeStructBegin('addSSHForkJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionId is not None:
-            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
+            oprot.writeI32(self.priorityOrder)
+            oprot.writeFieldEnd()
+        if self.sshJobSubmission is not None:
+            oprot.writeFieldBegin('sshJobSubmission', TType.STRUCT, 4)
+            self.sshJobSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -37060,8 +36696,12 @@ class getSSHJobSubmission_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionId is None:
-            raise TProtocolException(message='Required field jobSubmissionId is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
+        if self.sshJobSubmission is None:
+            raise TProtocolException(message='Required field sshJobSubmission is unset!')
         return
 
     def __repr__(self):
@@ -37076,7 +36716,7 @@ class getSSHJobSubmission_args(object):
         return not (self == other)
 
 
-class getSSHJobSubmission_result(object):
+class addSSHForkJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -37087,7 +36727,7 @@ class getSSHJobSubmission_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -37111,9 +36751,8 @@ class getSSHJobSubmission_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -37149,10 +36788,10 @@ class getSSHJobSubmission_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getSSHJobSubmission_result')
+        oprot.writeStructBegin('addSSHForkJobSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -37188,28 +36827,22 @@ class getSSHJobSubmission_result(object):
         return not (self == other)
 
 
-class addUNICOREJobSubmissionDetails_args(object):
+class getSSHJobSubmission_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - priorityOrder
-     - unicoreJobSubmission
+     - jobSubmissionId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
-        (4, TType.STRUCT, 'unicoreJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 4
+        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, unicoreJobSubmission=None,):
+    def __init__(self, authzToken=None, jobSubmissionId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        self.unicoreJobSubmission = unicoreJobSubmission
+        self.jobSubmissionId = jobSubmissionId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -37228,18 +36861,7 @@ class addUNICOREJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I32:
-                    self.priorityOrder = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.unicoreJobSubmission = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
-                    self.unicoreJobSubmission.read(iprot)
+                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -37251,22 +36873,14 @@ class addUNICOREJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addUNICOREJobSubmissionDetails_args')
+        oprot.writeStructBegin('getSSHJobSubmission_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
-            oprot.writeFieldEnd()
-        if self.priorityOrder is not None:
-            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
-            oprot.writeI32(self.priorityOrder)
-            oprot.writeFieldEnd()
-        if self.unicoreJobSubmission is not None:
-            oprot.writeFieldBegin('unicoreJobSubmission', TType.STRUCT, 4)
-            self.unicoreJobSubmission.write(oprot)
+        if self.jobSubmissionId is not None:
+            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -37274,12 +36888,8 @@ class addUNICOREJobSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
-        if self.priorityOrder is None:
-            raise TProtocolException(message='Required field priorityOrder is unset!')
-        if self.unicoreJobSubmission is None:
-            raise TProtocolException(message='Required field unicoreJobSubmission is unset!')
+        if self.jobSubmissionId is None:
+            raise TProtocolException(message='Required field jobSubmissionId is unset!')
         return
 
     def __repr__(self):
@@ -37294,7 +36904,7 @@ class addUNICOREJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addUNICOREJobSubmissionDetails_result(object):
+class getSSHJobSubmission_result(object):
     """
     Attributes:
      - success
@@ -37305,7 +36915,7 @@ class addUNICOREJobSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -37329,8 +36939,9 @@ class addUNICOREJobSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -37366,10 +36977,10 @@ class addUNICOREJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addUNICOREJobSubmissionDetails_result')
+        oprot.writeStructBegin('getSSHJobSubmission_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -37405,22 +37016,28 @@ class addUNICOREJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getUnicoreJobSubmission_args(object):
+class addUNICOREJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - computeResourceId
+     - priorityOrder
+     - unicoreJobSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
+        (4, TType.STRUCT, 'unicoreJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, unicoreJobSubmission=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        self.computeResourceId = computeResourceId
+        self.priorityOrder = priorityOrder
+        self.unicoreJobSubmission = unicoreJobSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -37439,7 +37056,18 @@ class getUnicoreJobSubmission_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.unicoreJobSubmission = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
+                    self.unicoreJobSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -37451,14 +37079,22 @@ class getUnicoreJobSubmission_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getUnicoreJobSubmission_args')
+        oprot.writeStructBegin('addUNICOREJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionId is not None:
-            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
+            oprot.writeI32(self.priorityOrder)
+            oprot.writeFieldEnd()
+        if self.unicoreJobSubmission is not None:
+            oprot.writeFieldBegin('unicoreJobSubmission', TType.STRUCT, 4)
+            self.unicoreJobSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -37466,8 +37102,12 @@ class getUnicoreJobSubmission_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionId is None:
-            raise TProtocolException(message='Required field jobSubmissionId is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
+        if self.unicoreJobSubmission is None:
+            raise TProtocolException(message='Required field unicoreJobSubmission is unset!')
         return
 
     def __repr__(self):
@@ -37482,7 +37122,7 @@ class getUnicoreJobSubmission_args(object):
         return not (self == other)
 
 
-class getUnicoreJobSubmission_result(object):
+class addUNICOREJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -37493,7 +37133,7 @@ class getUnicoreJobSubmission_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -37517,9 +37157,8 @@ class getUnicoreJobSubmission_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -37555,10 +37194,10 @@ class getUnicoreJobSubmission_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getUnicoreJobSubmission_result')
+        oprot.writeStructBegin('addUNICOREJobSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -37594,28 +37233,22 @@ class getUnicoreJobSubmission_result(object):
         return not (self == other)
 
 
-class addCloudJobSubmissionDetails_args(object):
+class getUnicoreJobSubmission_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - priorityOrder
-     - cloudSubmission
+     - jobSubmissionId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
-        (4, TType.STRUCT, 'cloudSubmission', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 4
+        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, cloudSubmission=None,):
+    def __init__(self, authzToken=None, jobSubmissionId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        self.cloudSubmission = cloudSubmission
+        self.jobSubmissionId = jobSubmissionId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -37634,18 +37267,7 @@ class addCloudJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.I32:
-                    self.priorityOrder = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.STRUCT:
-                    self.cloudSubmission = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
-                    self.cloudSubmission.read(iprot)
+                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -37657,22 +37279,14 @@ class addCloudJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addCloudJobSubmissionDetails_args')
+        oprot.writeStructBegin('getUnicoreJobSubmission_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.computeResourceId is not None:
-            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
-            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
-            oprot.writeFieldEnd()
-        if self.priorityOrder is not None:
-            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
-            oprot.writeI32(self.priorityOrder)
-            oprot.writeFieldEnd()
-        if self.cloudSubmission is not None:
-            oprot.writeFieldBegin('cloudSubmission', TType.STRUCT, 4)
-            self.cloudSubmission.write(oprot)
+        if self.jobSubmissionId is not None:
+            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -37680,12 +37294,8 @@ class addCloudJobSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.computeResourceId is None:
-            raise TProtocolException(message='Required field computeResourceId is unset!')
-        if self.priorityOrder is None:
-            raise TProtocolException(message='Required field priorityOrder is unset!')
-        if self.cloudSubmission is None:
-            raise TProtocolException(message='Required field cloudSubmission is unset!')
+        if self.jobSubmissionId is None:
+            raise TProtocolException(message='Required field jobSubmissionId is unset!')
         return
 
     def __repr__(self):
@@ -37700,7 +37310,7 @@ class addCloudJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addCloudJobSubmissionDetails_result(object):
+class getUnicoreJobSubmission_result(object):
     """
     Attributes:
      - success
@@ -37711,7 +37321,7 @@ class addCloudJobSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -37735,8 +37345,9 @@ class addCloudJobSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -37772,10 +37383,10 @@ class addCloudJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addCloudJobSubmissionDetails_result')
+        oprot.writeStructBegin('getUnicoreJobSubmission_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -37811,22 +37422,28 @@ class addCloudJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getCloudJobSubmission_args(object):
+class addCloudJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - computeResourceId
+     - priorityOrder
+     - cloudSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'computeResourceId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'priorityOrder', None, None, ),  # 3
+        (4, TType.STRUCT, 'cloudSubmission', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, priorityOrder=None, cloudSubmission=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        self.computeResourceId = computeResourceId
+        self.priorityOrder = priorityOrder
+        self.cloudSubmission = cloudSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -37845,7 +37462,18 @@ class getCloudJobSubmission_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.computeResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRUCT:
+                    self.cloudSubmission = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
+                    self.cloudSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -37857,14 +37485,22 @@ class getCloudJobSubmission_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getCloudJobSubmission_args')
+        oprot.writeStructBegin('addCloudJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionId is not None:
-            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
+        if self.computeResourceId is not None:
+            oprot.writeFieldBegin('computeResourceId', TType.STRING, 2)
+            oprot.writeString(self.computeResourceId.encode('utf-8') if sys.version_info[0] == 2 else self.computeResourceId)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
+            oprot.writeI32(self.priorityOrder)
+            oprot.writeFieldEnd()
+        if self.cloudSubmission is not None:
+            oprot.writeFieldBegin('cloudSubmission', TType.STRUCT, 4)
+            self.cloudSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -37872,8 +37508,12 @@ class getCloudJobSubmission_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionId is None:
-            raise TProtocolException(message='Required field jobSubmissionId is unset!')
+        if self.computeResourceId is None:
+            raise TProtocolException(message='Required field computeResourceId is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
+        if self.cloudSubmission is None:
+            raise TProtocolException(message='Required field cloudSubmission is unset!')
         return
 
     def __repr__(self):
@@ -37888,7 +37528,7 @@ class getCloudJobSubmission_args(object):
         return not (self == other)
 
 
-class getCloudJobSubmission_result(object):
+class addCloudJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -37899,7 +37539,7 @@ class getCloudJobSubmission_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -37923,9 +37563,8 @@ class getCloudJobSubmission_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
-                    self.success.read(iprot)
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -37961,10 +37600,10 @@ class getCloudJobSubmission_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getCloudJobSubmission_result')
+        oprot.writeStructBegin('addCloudJobSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -38000,25 +37639,22 @@ class getCloudJobSubmission_result(object):
         return not (self == other)
 
 
-class updateSSHJobSubmissionDetails_args(object):
+class getCloudJobSubmission_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionInterfaceId
-     - sshJobSubmission
+     - jobSubmissionId
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'jobSubmissionId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, sshJobSubmission=None,):
+    def __init__(self, authzToken=None, jobSubmissionId=None,):
         self.authzToken = authzToken
-        self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
-        self.sshJobSubmission = sshJobSubmission
+        self.jobSubmissionId = jobSubmissionId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -38037,13 +37673,7 @@ class updateSSHJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.jobSubmissionInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
-                    self.sshJobSubmission.read(iprot)
+                    self.jobSubmissionId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -38055,18 +37685,14 @@ class updateSSHJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateSSHJobSubmissionDetails_args')
+        oprot.writeStructBegin('getCloudJobSubmission_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.jobSubmissionInterfaceId is not None:
-            oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 2)
-            oprot.writeString(self.jobSubmissionInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionInterfaceId)
-            oprot.writeFieldEnd()
-        if self.sshJobSubmission is not None:
-            oprot.writeFieldBegin('sshJobSubmission', TType.STRUCT, 3)
-            self.sshJobSubmission.write(oprot)
+        if self.jobSubmissionId is not None:
+            oprot.writeFieldBegin('jobSubmissionId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -38074,10 +37700,8 @@ class updateSSHJobSubmissionDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.jobSubmissionInterfaceId is None:
-            raise TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
-        if self.sshJobSubmission is None:
-            raise TProtocolException(message='Required field sshJobSubmission is unset!')
+        if self.jobSubmissionId is None:
+            raise TProtocolException(message='Required field jobSubmissionId is unset!')
         return
 
     def __repr__(self):
@@ -38092,7 +37716,7 @@ class updateSSHJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class updateSSHJobSubmissionDetails_result(object):
+class getCloudJobSubmission_result(object):
     """
     Attributes:
      - success
@@ -38103,7 +37727,7 @@ class updateSSHJobSubmissionDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -38127,8 +37751,9 @@ class updateSSHJobSubmissionDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -38164,10 +37789,10 @@ class updateSSHJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateSSHJobSubmissionDetails_result')
+        oprot.writeStructBegin('getCloudJobSubmission_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -38203,7 +37828,7 @@ class updateSSHJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class updateCloudJobSubmissionDetails_args(object):
+class updateSSHJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
@@ -38215,7 +37840,7 @@ class updateCloudJobSubmissionDetails_args(object):
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 3
+        (3, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission, airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission.thrift_spec), None, ),  # 3
     )
 
     def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, sshJobSubmission=None,):
@@ -38245,7 +37870,7 @@ class updateCloudJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
+                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.SSHJobSubmission()
                     self.sshJobSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
@@ -38258,7 +37883,7 @@ class updateCloudJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateCloudJobSubmissionDetails_args')
+        oprot.writeStructBegin('updateSSHJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -38295,7 +37920,7 @@ class updateCloudJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class updateCloudJobSubmissionDetails_result(object):
+class updateSSHJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -38367,7 +37992,7 @@ class updateCloudJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateCloudJobSubmissionDetails_result')
+        oprot.writeStructBegin('updateSSHJobSubmissionDetails_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -38406,25 +38031,25 @@ class updateCloudJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class updateUnicoreJobSubmissionDetails_args(object):
+class updateCloudJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
      - jobSubmissionInterfaceId
-     - unicoreJobSubmission
+     - sshJobSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
         (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'unicoreJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 3
+        (3, TType.STRUCT, 'sshJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission, airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, unicoreJobSubmission=None,):
+    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, sshJobSubmission=None,):
         self.authzToken = authzToken
         self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
-        self.unicoreJobSubmission = unicoreJobSubmission
+        self.sshJobSubmission = sshJobSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -38448,8 +38073,8 @@ class updateUnicoreJobSubmissionDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.unicoreJobSubmission = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
-                    self.unicoreJobSubmission.read(iprot)
+                    self.sshJobSubmission = airavata.model.appcatalog.computeresource.ttypes.CloudJobSubmission()
+                    self.sshJobSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -38461,7 +38086,7 @@ class updateUnicoreJobSubmissionDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateUnicoreJobSubmissionDetails_args')
+        oprot.writeStructBegin('updateCloudJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -38470,9 +38095,9 @@ class updateUnicoreJobSubmissionDetails_args(object):
             oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 2)
             oprot.writeString(self.jobSubmissionInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionInterfaceId)
             oprot.writeFieldEnd()
-        if self.unicoreJobSubmission is not None:
-            oprot.writeFieldBegin('unicoreJobSubmission', TType.STRUCT, 3)
-            self.unicoreJobSubmission.write(oprot)
+        if self.sshJobSubmission is not None:
+            oprot.writeFieldBegin('sshJobSubmission', TType.STRUCT, 3)
+            self.sshJobSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -38482,8 +38107,8 @@ class updateUnicoreJobSubmissionDetails_args(object):
             raise TProtocolException(message='Required field authzToken is unset!')
         if self.jobSubmissionInterfaceId is None:
             raise TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
-        if self.unicoreJobSubmission is None:
-            raise TProtocolException(message='Required field unicoreJobSubmission is unset!')
+        if self.sshJobSubmission is None:
+            raise TProtocolException(message='Required field sshJobSubmission is unset!')
         return
 
     def __repr__(self):
@@ -38498,7 +38123,7 @@ class updateUnicoreJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class updateUnicoreJobSubmissionDetails_result(object):
+class updateCloudJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -38570,7 +38195,7 @@ class updateUnicoreJobSubmissionDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateUnicoreJobSubmissionDetails_result')
+        oprot.writeStructBegin('updateCloudJobSubmissionDetails_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -38609,31 +38234,25 @@ class updateUnicoreJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class addLocalDataMovementDetails_args(object):
+class updateUnicoreJobSubmissionDetails_args(object):
     """
     Attributes:
      - authzToken
-     - productUri
-     - dataMoveType
-     - priorityOrder
-     - localDataMovement
+     - jobSubmissionInterfaceId
+     - unicoreJobSubmission
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'productUri', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'dataMoveType', None, None, ),  # 3
-        (4, TType.I32, 'priorityOrder', None, None, ),  # 4
-        (5, TType.STRUCT, 'localDataMovement', (airavata.model.data.movement.ttypes.LOCALDataMovement, airavata.model.data.movement.ttypes.LOCALDataMovement.thrift_spec), None, ),  # 5
+        (2, TType.STRING, 'jobSubmissionInterfaceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'unicoreJobSubmission', (airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission, airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, productUri=None, dataMoveType=None, priorityOrder=None, localDataMovement=None,):
+    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, unicoreJobSubmission=None,):
         self.authzToken = authzToken
-        self.productUri = productUri
-        self.dataMoveType = dataMoveType
-        self.priorityOrder = priorityOrder
-        self.localDataMovement = localDataMovement
+        self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
+        self.unicoreJobSubmission = unicoreJobSubmission
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -38652,23 +38271,13 @@ class addLocalDataMovementDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.productUri = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.jobSubmissionInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
-                if ftype == TType.I32:
-                    self.dataMoveType = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.I32:
-                    self.priorityOrder = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 5:
                 if ftype == TType.STRUCT:
-                    self.localDataMovement = airavata.model.data.movement.ttypes.LOCALDataMovement()
-                    self.localDataMovement.read(iprot)
+                    self.unicoreJobSubmission = airavata.model.appcatalog.computeresource.ttypes.UnicoreJobSubmission()
+                    self.unicoreJobSubmission.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -38680,26 +38289,18 @@ class addLocalDataMovementDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addLocalDataMovementDetails_args')
+        oprot.writeStructBegin('updateUnicoreJobSubmissionDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.productUri is not None:
-            oprot.writeFieldBegin('productUri', TType.STRING, 2)
-            oprot.writeString(self.productUri.encode('utf-8') if sys.version_info[0] == 2 else self.productUri)
-            oprot.writeFieldEnd()
-        if self.dataMoveType is not None:
-            oprot.writeFieldBegin('dataMoveType', TType.I32, 3)
-            oprot.writeI32(self.dataMoveType)
-            oprot.writeFieldEnd()
-        if self.priorityOrder is not None:
-            oprot.writeFieldBegin('priorityOrder', TType.I32, 4)
-            oprot.writeI32(self.priorityOrder)
+        if self.jobSubmissionInterfaceId is not None:
+            oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 2)
+            oprot.writeString(self.jobSubmissionInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.jobSubmissionInterfaceId)
             oprot.writeFieldEnd()
-        if self.localDataMovement is not None:
-            oprot.writeFieldBegin('localDataMovement', TType.STRUCT, 5)
-            self.localDataMovement.write(oprot)
+        if self.unicoreJobSubmission is not None:
+            oprot.writeFieldBegin('unicoreJobSubmission', TType.STRUCT, 3)
+            self.unicoreJobSubmission.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -38707,14 +38308,10 @@ class addLocalDataMovementDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.productUri is None:
-            raise TProtocolException(message='Required field productUri is unset!')
-        if self.dataMoveType is None:
-            raise TProtocolException(message='Required field dataMoveType is unset!')
-        if self.priorityOrder is None:
-            raise TProtocolException(message='Required field priorityOrder is unset!')
-        if self.localDataMovement is None:
-            raise TProtocolException(message='Required field localDataMovement is unset!')
+        if self.jobSubmissionInterfaceId is None:
+            raise TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
+        if self.unicoreJobSubmission is None:
+            raise TProtocolException(message='Required field unicoreJobSubmission is unset!')
         return
 
     def __repr__(self):
@@ -38729,7 +38326,7 @@ class addLocalDataMovementDetails_args(object):
         return not (self == other)
 
 
-class addLocalDataMovementDetails_result(object):
+class updateUnicoreJobSubmissionDetails_result(object):
     """
     Attributes:
      - success
@@ -38740,7 +38337,7 @@ class addLocalDataMovementDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -38764,8 +38361,8 @@ class addLocalDataMovementDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRING:
-                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -38801,10 +38398,10 @@ class addLocalDataMovementDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('addLocalDataMovementDetails_result')
+        oprot.writeStructBegin('updateUnicoreJobSubmissionDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRING, 0)
-            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -38840,24 +38437,30 @@ class addLocalDataMovementDetails_result(object):
         return not (self == other)
 
 
-class updateLocalDataMovementDetails_args(object):
+class addLocalDataMovementDetails_args(object):
     """
     Attributes:
      - authzToken
-     - dataMovementInterfaceId
+     - productUri
+     - dataMoveType
+     - priorityOrder
      - localDataMovement
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'dataMovementInterfaceId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'localDataMovement', (airavata.model.data.movement.ttypes.LOCALDataMovement, airavata.model.data.movement.ttypes.LOCALDataMovement.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'productUri', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'dataMoveType', None, None, ),  # 3
+        (4, TType.I32, 'priorityOrder', None, None, ),  # 4
+        (5, TType.STRUCT, 'localDataMovement', (airavata.model.data.movement.ttypes.LOCALDataMovement, airavata.model.data.movement.ttypes.LOCALDataMovement.thrift_spec), None, ),  # 5
     )
 
-    def __init__(self, authzToken=None, dataMovementInterfaceId=None, localDataMovement=None,):
+    def __init__(self, authzToken=None, productUri=None, dataMoveType=None, priorityOrder=None, localDataMovement=None,):
         self.authzToken = authzToken
-        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.productUri = productUri
+        self.dataMoveType = dataMoveType
+        self.priorityOrder = priorityOrder
         self.localDataMovement = localDataMovement
 
     def read(self, iprot):
@@ -38877,10 +38480,20 @@ class updateLocalDataMovementDetails_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.productUri = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
+                if ftype == TType.I32:
+                    self.dataMoveType = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
                 if ftype == TType.STRUCT:
                     self.localDataMovement = airavata.model.data.movement.ttypes.LOCALDataMovement()
                     self.localDataMovement.read(iprot)
@@ -38895,17 +38508,25 @@ class updateLocalDataMovementDetails_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateLocalDataMovementDetails_args')
+        oprot.writeStructBegin('addLocalDataMovementDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.dataMovementInterfaceId is not None:
-            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 2)
-            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+        if self.productUri is not None:
+            oprot.writeFieldBegin('productUri', TType.STRING, 2)
+            oprot.writeString(self.productUri.encode('utf-8') if sys.version_info[0] == 2 else self.productUri)
+            oprot.writeFieldEnd()
+        if self.dataMoveType is not None:
+            oprot.writeFieldBegin('dataMoveType', TType.I32, 3)
+            oprot.writeI32(self.dataMoveType)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 4)
+            oprot.writeI32(self.priorityOrder)
             oprot.writeFieldEnd()
         if self.localDataMovement is not None:
-            oprot.writeFieldBegin('localDataMovement', TType.STRUCT, 3)
+            oprot.writeFieldBegin('localDataMovement', TType.STRUCT, 5)
             self.localDataMovement.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -38914,8 +38535,12 @@ class updateLocalDataMovementDetails_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.dataMovementInterfaceId is None:
-            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.productUri is None:
+            raise TProtocolException(message='Required field productUri is unset!')
+        if self.dataMoveType is None:
+            raise TProtocolException(message='Required field dataMoveType is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
         if self.localDataMovement is None:
             raise TProtocolException(message='Required field localDataMovement is unset!')
         return
@@ -38932,7 +38557,7 @@ class updateLocalDataMovementDetails_args(object):
         return not (self == other)
 
 
-class updateLocalDataMovementDetails_result(object):
+class addLocalDataMovementDetails_result(object):
     """
     Attributes:
      - success
@@ -38943,7 +38568,7 @@ class updateLocalDataMovementDetails_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, None, ),  # 0
+        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -38967,8 +38592,8 @@ class updateLocalDataMovementDetails_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.STRING:
+                    self.success = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -39004,10 +38629,10 @@ class updateLocalDataMovementDetails_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('updateLocalDataMovementDetails_result')
+        oprot.writeStructBegin('addLocalDataMovementDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
+            oprot.writeFieldBegin('success', TType.STRING, 0)
+            oprot.writeString(self.success.encode('utf-8') if sys.version_info[0] == 2 else self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -39043,22 +38668,25 @@ class updateLocalDataMovementDetails_result(object):
         return not (self == other)
 
 
-class getLocalDataMovement_args(object):
+class updateLocalDataMovementDetails_args(object):
     """
     Attributes:
      - authzToken
-     - dataMovementId
+     - dataMovementInterfaceId
+     - localDataMovement
     """
 
     thrift_spec = (
         None,  # 0
         (1, TType.STRUCT, 'authzToken', (airavata.model.security.ttypes.AuthzToken, airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ),  # 1
-        (2, TType.STRING, 'dataMovementId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'dataMovementInterfaceId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'localDataMovement', (airavata.model.data.movement.ttypes.LOCALDataMovement, airavata.model.data.movement.ttypes.LOCALDataMovement.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, dataMovementId=None,):
+    def __init__(self, authzToken=None, dataMovementInterfaceId=None, localDataMovement=None,):
         self.authzToken = authzToken
-        self.dataMovementId = dataMovementId
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.localDataMovement = localDataMovement
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -39077,7 +38705,13 @@ class getLocalDataMovement_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRING:
-                    self.dataMovementId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRUCT:
+                    self.localDataMovement = airavata.model.data.movement.ttypes.LOCALDataMovement()
+                    self.localDataMovement.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -39089,14 +38723,18 @@ class getLocalDataMovement_args(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getLocalDataMovement_args')
+        oprot.writeStructBegin('updateLocalDataMovementDetails_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
             oprot.writeFieldEnd()
-        if self.dataMovementId is not None:
-            oprot.writeFieldBegin('dataMovementId', TType.STRING, 2)
-            oprot.writeString(self.dataMovementId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementId)
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 2)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        if self.localDataMovement is not None:
+            oprot.writeFieldBegin('localDataMovement', TType.STRUCT, 3)
+            self.localDataMovement.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -39104,8 +38742,10 @@ class getLocalDataMovement_args(object):
     def validate(self):
         if self.authzToken is None:
             raise TProtocolException(message='Required field authzToken is unset!')
-        if self.dataMovementId is None:
-            raise TProtocolException(message='Required field dataMovementId is unset!')
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.localDataMovement is None:
+            raise TProtocolException(message='Required field localDataMovement is unset!')
         return
 
     def __repr__(self):
@@ -39120,7 +38760,7 @@ class getLocalDataMovement_args(object):
         return not (self == other)
 
 
-class getLocalDataMovement_result(object):
+class updateLocalDataMovementDetails_result(object):
     """
     Attributes:
      - success
@@ -39131,7 +38771,7 @@ class getLocalDataMovement_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.data.movement.ttypes.LOCALDataMovement, airavata.model.data.movement.ttypes.LOCALDataMovement.thrift_spec), None, ),  # 0
+        (0, TType.BOOL, 'success', None, None, ),  # 0
         (1, TType.STRUCT, 'ire', (airavata.api.error.ttypes.InvalidRequestException, airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ),  # 1
         (2, TType.STRUCT, 'ace', (airavata.api.error.ttypes.AiravataClientException, airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ),  # 2
         (3, TType.STRUCT, 'ase', (airavata.api.error.ttypes.AiravataSystemException, airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ),  # 3
@@ -39155,9 +38795,8 @@ class getLocalDataMovement_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.STRUCT:
-                    self.success = airavata.model.data.movement.ttypes.LOCALDataMovement()
-                    self.success.read(iprot)
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -39193,10 +38832,10 @@ class getLocalDataMovement_result(object):
         if oprot._fast_encode is not None and self.thrift_spec is not None:
             oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
             return
-        oprot.writeStructBegin('getLocalDataMovement_result')
+        oprot.writeStructBegin('updateLocalDataMovementDetails_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -39232,31 +38871,22 @@ class getLocalDataMovement_result(object):
         return not (self == other)
 
 
-class addSCPDataMovementDetails_args(object):
+class getLocalDataMovement_args(object):
     """
     Attributes:
      - authzToken
... 13347 lines suppressed ...


[airavata-django-portal] 02/03: AIRAVATA-2892 Replace user prof initialization with API call

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 16cd82145475888b57dc1db37113c3c258f2fd29
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Nov 21 11:31:14 2018 -0500

    AIRAVATA-2892 Replace user prof initialization with API call
---
 django_airavata/apps/workspace/signals.py | 59 +++----------------------------
 1 file changed, 5 insertions(+), 54 deletions(-)

diff --git a/django_airavata/apps/workspace/signals.py b/django_airavata/apps/workspace/signals.py
index d0c21cb..4eac959 100644
--- a/django_airavata/apps/workspace/signals.py
+++ b/django_airavata/apps/workspace/signals.py
@@ -1,69 +1,20 @@
 """Signal receivers for the workspace app."""
 
-import datetime
 import logging
 
-from django.conf import settings
 from django.contrib.auth.signals import user_logged_in
 from django.dispatch import receiver
 
-from airavata.model.user.ttypes import Status, UserProfile
-from airavata.model.workspace.ttypes import Project
 from django_airavata.apps.auth.utils import get_authz_token
-from django_airavata.utils import get_airavata_client, get_user_profile_client
+from django_airavata.utils import get_user_profile_client
 
 log = logging.getLogger(__name__)
 
 
 @receiver(user_logged_in)
-def create_user_profile_for_new_user(sender, request, user, **kwargs):
-    """Create basic User Profile for new user."""
-    # auth middleware hasn't run yet so authz_token attribute is not available
-    # on request, so need to create the authz_token manually
+def initialize_user_profile(sender, request, user, **kwargs):
+    """Initialize user profile in Airavata in case this is a new user."""
     authz_token = get_authz_token(request)
     with get_user_profile_client() as user_profile_client:
-        user_profile_exists = user_profile_client.doesUserExist(
-            authz_token, user.username, settings.GATEWAY_ID)
-        if not user_profile_exists:
-            log.debug("UserProfile doesn't exist for {username}, "
-                      "creating...".format(username=user.username))
-            new_user_profile = UserProfile()
-            new_user_profile.airavataInternalUserId = (user.username + "@" +
-                                                       settings.GATEWAY_ID)
-            new_user_profile.userId = user.username
-            new_user_profile.gatewayId = settings.GATEWAY_ID
-            new_user_profile.emails = [user.email]
-            new_user_profile.firstName = user.first_name
-            new_user_profile.lastName = user.last_name
-            unix_utcnow_ms = int(datetime.datetime.utcnow().timestamp() * 1000)
-            new_user_profile.creationTime = unix_utcnow_ms
-            new_user_profile.lastAccessTime = unix_utcnow_ms
-            new_user_profile.validUntil = -1
-            new_user_profile.State = Status.ACTIVE
-            user_profile_client.addUserProfile(authz_token, new_user_profile)
-            log.info("Created a new UserProfile for {username}".format(
-                username=user.username))
-
-
-@receiver(user_logged_in)
-def create_default_project_if_not_exists(sender, request, user, **kwargs):
-    """Create 'Default Project' for new user."""
-    # auth middleware hasn't run yet so authz_token attribute is not available
-    # on request, so need to create the authz_token manually
-    authz_token = get_authz_token(request)
-    with get_airavata_client() as airavata_client:
-        # Just retrieve the first project
-        projects = airavata_client.getUserProjects(
-            authz_token, settings.GATEWAY_ID, request.user.username, 1, 0)
-        if len(projects) == 0:
-            log.info("Creating default project for user {}".format(
-                user.username))
-            default_project = Project()
-            default_project.owner = request.user.username
-            default_project.name = "Default Project"
-            default_project.gatewayId = settings.GATEWAY_ID
-            default_project.description = ("This is the default project for "
-                                           "user {owner}".format(
-                                               owner=default_project.owner))
-            airavata_client.createProject(authz_token, settings.GATEWAY_ID,
-                                          default_project)
+        user_profile_client.initializeUserProfile(authz_token)
+        log.debug("initialized user profile for {}".format(user.username))


[airavata-django-portal] 03/03: Check for missing, non-required fields when deserializing

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 5e0538ed0ecbf45fe0532ebd4eaab7779ed4cd56
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Nov 21 12:30:21 2018 -0500

    Check for missing, non-required fields when deserializing
---
 .../apps/api/static/django_airavata_api/js/models/Experiment.js       | 1 +
 django_airavata/apps/api/thrift_utils.py                              | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
index 47a49c4..cdb0b22 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
@@ -65,6 +65,7 @@ const FIELDS = [
     type: ProcessModel,
     list: true,
   },
+  'workflow'
 ];
 
 export default class Experiment extends BaseModel {
diff --git a/django_airavata/apps/api/thrift_utils.py b/django_airavata/apps/api/thrift_utils.py
index 943e7d6..4766faf 100644
--- a/django_airavata/apps/api/thrift_utils.py
+++ b/django_airavata/apps/api/thrift_utils.py
@@ -137,7 +137,9 @@ def create_serializer_class(thrift_data_type, enable_date_time_conversion=False)
                             params[field_name] = serializer.to_representation(
                                 params[field_name])
                 elif isinstance(serializer, Serializer):
-                    params[field_name] = serializer.create(params[field_name])
+                    if field_name in params and params[field_name] is not None:
+                        params[field_name] = serializer.create(
+                            params[field_name])
             return params
 
         def create(self, validated_data):