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/01/18 16:32:40 UTC

[airavata] branch develop updated (c13c0c2 -> 0d77ff5)

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

machristie pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git.


    from c13c0c2  AIRAVATA-2608 Upgrade logback to latest
     new 766cbd8  AIRAVATA-2645 Add profile services to Python thrift stubs
     new 0d77ff5  AIRAVATA-2645 Generate Python thrift stubs

The 2 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:
 .../resources/lib/airavata/api/Airavata-remote     |    35 -
 .../main/resources/lib/airavata/api/Airavata.py    | 10106 ++++++++-----------
 .../api/sharing/SharingRegistryService-remote      |    35 +
 .../airavata/api/sharing/SharingRegistryService.py |  1695 +++-
 .../resources/lib/airavata/model/sharing/ttypes.py |    84 +
 .../resources/lib/airavata/model/user/ttypes.py    |   369 +-
 .../{model/messaging => service}/__init__.py       |     0
 .../workspace => service/profile}/__init__.py      |     0
 .../workspace => service/profile}/constants.py     |     0
 .../profile/groupmanager}/__init__.py              |     0
 .../groupmanager/cpi/GroupManagerService-remote    |   180 +
 .../groupmanager/cpi/GroupManagerService.py        |  2508 +++++
 .../service/profile/groupmanager/cpi/__init__.py   |     1 +
 .../profile/groupmanager/cpi}/constants.py         |     3 +-
 .../profile/groupmanager/cpi/error}/__init__.py    |     0
 .../profile/groupmanager/cpi/error}/constants.py   |     0
 .../profile/groupmanager/cpi/error/ttypes.py       |    78 +
 .../profile/groupmanager/cpi}/ttypes.py            |     5 +-
 .../messaging => service/profile/iam}/__init__.py  |     0
 .../profile/iam/admin}/__init__.py                 |     0
 .../profile/iam/admin/services}/__init__.py        |     0
 .../iam/admin/services/cpi/IamAdminServices-remote |   180 +
 .../iam/admin/services/cpi/IamAdminServices.py     |  2505 +++++
 .../profile/iam/admin/services/cpi/__init__.py     |     1 +
 .../profile/iam/admin/services/cpi}/constants.py   |     3 +-
 .../iam/admin/services/cpi/error}/__init__.py      |     0
 .../iam/admin/services/cpi/error}/constants.py     |     0
 .../profile/iam/admin/services/cpi/error/ttypes.py |    78 +
 .../profile/iam/admin/services/cpi}/ttypes.py      |     7 +-
 .../profile/tenant}/__init__.py                    |     0
 .../profile/tenant/cpi/TenantProfileService-remote |   166 +
 .../profile/tenant/cpi/TenantProfileService.py     |  1920 ++++
 .../service/profile/tenant/cpi/__init__.py         |     1 +
 .../profile/tenant/cpi}/constants.py               |     3 +-
 .../profile/tenant/cpi/error}/__init__.py          |     0
 .../profile/tenant/cpi/error}/constants.py         |     0
 .../service/profile/tenant/cpi/error/ttypes.py     |    78 +
 .../profile/tenant/cpi}/ttypes.py                  |     5 +-
 .../{api/sharing => service/profile}/ttypes.py     |     5 +-
 .../messaging => service/profile/user}/__init__.py |     0
 .../profile/user/cpi/UserProfileService-remote     |   152 +
 .../service/profile/user/cpi/UserProfileService.py |  1543 +++
 .../airavata/service/profile/user/cpi/__init__.py  |     1 +
 .../{api => service/profile/user/cpi}/constants.py |     3 +-
 .../profile/user/cpi/error}/__init__.py            |     0
 .../profile/user/cpi/error}/constants.py           |     0
 .../service/profile/user/cpi/error/ttypes.py       |    78 +
 .../sharing => service/profile/user/cpi}/ttypes.py |     5 +-
 .../generate-thrift-stubs.sh                       |     2 +
 .../group-manager/group-manager-cpi.thrift         |     1 +
 .../group-manager/group_manager_cpi_errors.thrift  |     1 +
 .../iam-admin-services-cpi.thrift                  |     1 +
 .../iam_admin_services_cpi_errors.thrift           |     1 +
 .../profile-tenant/profile-tenant-cpi.thrift       |     1 +
 .../profile_tenant_cpi_errors.thrift               |     1 +
 .../profile-user/profile-user-cpi.thrift           |     1 +
 .../profile-user/profile_user_cpi_errors.thrift    |     1 +
 57 files changed, 15806 insertions(+), 6037 deletions(-)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile}/constants.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/groupmanager}/__init__.py (100%)
 create mode 100755 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/groupmanager/cpi/GroupManagerService-remote
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/groupmanager/cpi/GroupManagerService.py
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/groupmanager/cpi/__init__.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api => service/profile/groupmanager/cpi}/constants.py (79%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/groupmanager/cpi/error}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/groupmanager/cpi/error}/constants.py (100%)
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/groupmanager/cpi/error/ttypes.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api/sharing => service/profile/groupmanager/cpi}/ttypes.py (67%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/iam}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/iam/admin}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/iam/admin/services}/__init__.py (100%)
 create mode 100755 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/iam/admin/services/cpi/IamAdminServices-remote
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/iam/admin/services/cpi/IamAdminServices.py
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/iam/admin/services/cpi/__init__.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api => service/profile/iam/admin/services/cpi}/constants.py (78%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/iam/admin/services/cpi/error}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/iam/admin/services/cpi/error}/constants.py (100%)
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/iam/admin/services/cpi/error/ttypes.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api/sharing => service/profile/iam/admin/services/cpi}/ttypes.py (57%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/tenant}/__init__.py (100%)
 create mode 100755 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/tenant/cpi/TenantProfileService-remote
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/tenant/cpi/TenantProfileService.py
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/tenant/cpi/__init__.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api => service/profile/tenant/cpi}/constants.py (79%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/tenant/cpi/error}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/tenant/cpi/error}/constants.py (100%)
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/tenant/cpi/error/ttypes.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api/sharing => service/profile/tenant/cpi}/ttypes.py (67%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api/sharing => service/profile}/ttypes.py (61%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/messaging => service/profile/user}/__init__.py (100%)
 create mode 100755 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/user/cpi/UserProfileService-remote
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/user/cpi/UserProfileService.py
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/user/cpi/__init__.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api => service/profile/user/cpi}/constants.py (80%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/user/cpi/error}/__init__.py (100%)
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{model/workspace => service/profile/user/cpi/error}/constants.py (100%)
 create mode 100644 airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/service/profile/user/cpi/error/ttypes.py
 copy airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/{api/sharing => service/profile/user/cpi}/ttypes.py (68%)

-- 
To stop receiving notification emails like this one, please contact
['"commits@airavata.apache.org" <co...@airavata.apache.org>'].

[airavata] 02/02: AIRAVATA-2645 Generate Python thrift stubs

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

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 0d77ff5e0a54af23c33b86096c8d0dd789d1e930
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu Jan 18 11:31:42 2018 -0500

    AIRAVATA-2645 Generate Python thrift stubs
---
 .../resources/lib/airavata/api/Airavata-remote     |    35 -
 .../main/resources/lib/airavata/api/Airavata.py    | 10106 ++++++++-----------
 .../api/sharing/SharingRegistryService-remote      |    35 +
 .../airavata/api/sharing/SharingRegistryService.py |  1695 +++-
 .../resources/lib/airavata/model/sharing/ttypes.py |    84 +
 .../resources/lib/airavata/model/user/ttypes.py    |   369 +-
 .../resources/lib/airavata/service/__init__.py     |     0
 .../lib/airavata/service/profile/__init__.py       |     1 +
 .../lib/airavata/service/profile/constants.py      |    12 +
 .../service/profile/groupmanager/__init__.py       |     0
 .../groupmanager/cpi/GroupManagerService-remote    |   180 +
 .../groupmanager/cpi/GroupManagerService.py        |  2508 +++++
 .../service/profile/groupmanager/cpi/__init__.py   |     1 +
 .../service/profile/groupmanager/cpi/constants.py  |    14 +
 .../profile/groupmanager/cpi/error/__init__.py     |     1 +
 .../profile/groupmanager/cpi/error/constants.py    |    12 +
 .../profile/groupmanager/cpi/error/ttypes.py       |    78 +
 .../service/profile/groupmanager/cpi/ttypes.py     |    17 +
 .../lib/airavata/service/profile/iam/__init__.py   |     0
 .../airavata/service/profile/iam/admin/__init__.py |     0
 .../service/profile/iam/admin/services/__init__.py |     0
 .../iam/admin/services/cpi/IamAdminServices-remote |   180 +
 .../iam/admin/services/cpi/IamAdminServices.py     |  2505 +++++
 .../profile/iam/admin/services/cpi/__init__.py     |     1 +
 .../profile/iam/admin/services/cpi/constants.py    |    14 +
 .../iam/admin/services/cpi/error/__init__.py       |     1 +
 .../iam/admin/services/cpi/error/constants.py      |    12 +
 .../profile/iam/admin/services/cpi/error/ttypes.py |    78 +
 .../profile/iam/admin/services/cpi/ttypes.py       |    19 +
 .../airavata/service/profile/tenant/__init__.py    |     0
 .../profile/tenant/cpi/TenantProfileService-remote |   166 +
 .../profile/tenant/cpi/TenantProfileService.py     |  1920 ++++
 .../service/profile/tenant/cpi/__init__.py         |     1 +
 .../service/profile/tenant/cpi/constants.py        |    14 +
 .../service/profile/tenant/cpi/error/__init__.py   |     1 +
 .../service/profile/tenant/cpi/error/constants.py  |    12 +
 .../service/profile/tenant/cpi/error/ttypes.py     |    78 +
 .../airavata/service/profile/tenant/cpi/ttypes.py  |    17 +
 .../lib/airavata/service/profile/ttypes.py         |    17 +
 .../lib/airavata/service/profile/user/__init__.py  |     0
 .../profile/user/cpi/UserProfileService-remote     |   152 +
 .../service/profile/user/cpi/UserProfileService.py |  1543 +++
 .../airavata/service/profile/user/cpi/__init__.py  |     1 +
 .../airavata/service/profile/user/cpi/constants.py |    14 +
 .../service/profile/user/cpi/error/__init__.py     |     1 +
 .../service/profile/user/cpi/error/constants.py    |    12 +
 .../service/profile/user/cpi/error/ttypes.py       |    78 +
 .../airavata/service/profile/user/cpi/ttypes.py    |    17 +
 48 files changed, 15974 insertions(+), 6028 deletions(-)

diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
index 419bfb4..0d3d470 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata-remote
@@ -191,11 +191,6 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
     print('  bool shareResourceWithUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType,  userPermissionList)')
     print('  bool revokeSharingOfResourceFromUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType,  userPermissionList)')
     print('   getAllAccessibleUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, ResourcePermissionType permissionType)')
-    print('  string createGroup(AuthzToken authzToken, GroupModel groupModel)')
-    print('  bool updateGroup(AuthzToken authzToken, GroupModel groupModel)')
-    print('  bool deleteGroup(AuthzToken authzToken, string groupId, string ownerId)')
-    print('  GroupModel getGroup(AuthzToken authzToken, string groupId)')
-    print('   getAllGroupsUserBelongs(AuthzToken authzToken, string userName)')
     print('')
     sys.exit(0)
 
@@ -1277,36 +1272,6 @@ elif cmd == 'getAllAccessibleUsers':
         sys.exit(1)
     pp.pprint(client.getAllAccessibleUsers(eval(args[0]), args[1], eval(args[2]), eval(args[3]),))
 
-elif cmd == 'createGroup':
-    if len(args) != 2:
-        print('createGroup requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.createGroup(eval(args[0]), eval(args[1]),))
-
-elif cmd == 'updateGroup':
-    if len(args) != 2:
-        print('updateGroup requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.updateGroup(eval(args[0]), eval(args[1]),))
-
-elif cmd == 'deleteGroup':
-    if len(args) != 3:
-        print('deleteGroup requires 3 args')
-        sys.exit(1)
-    pp.pprint(client.deleteGroup(eval(args[0]), args[1], args[2],))
-
-elif cmd == 'getGroup':
-    if len(args) != 2:
-        print('getGroup requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.getGroup(eval(args[0]), args[1],))
-
-elif cmd == 'getAllGroupsUserBelongs':
-    if len(args) != 2:
-        print('getAllGroupsUserBelongs requires 2 args')
-        sys.exit(1)
-    pp.pprint(client.getAllGroupsUserBelongs(eval(args[0]), args[1],))
-
 else:
     print('Unrecognized method %s' % cmd)
     sys.exit(1)
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
index cd8cae0..772a5a0 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/api/Airavata.py
@@ -3444,47 +3444,6 @@ class Iface(object):
         """
         pass
 
-    def createGroup(self, authzToken, groupModel):
-        """
-        Parameters:
-         - authzToken
-         - groupModel
-        """
-        pass
-
-    def updateGroup(self, authzToken, groupModel):
-        """
-        Parameters:
-         - authzToken
-         - groupModel
-        """
-        pass
-
-    def deleteGroup(self, authzToken, groupId, ownerId):
-        """
-        Parameters:
-         - authzToken
-         - groupId
-         - ownerId
-        """
-        pass
-
-    def getGroup(self, authzToken, groupId):
-        """
-        Parameters:
-         - authzToken
-         - groupId
-        """
-        pass
-
-    def getAllGroupsUserBelongs(self, authzToken, userName):
-        """
-        Parameters:
-         - authzToken
-         - userName
-        """
-        pass
-
 
 class Client(Iface):
     def __init__(self, iprot, oprot=None):
@@ -12565,213 +12524,6 @@ class Client(Iface):
             raise result.ae
         raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllAccessibleUsers failed: unknown result")
 
-    def createGroup(self, authzToken, groupModel):
-        """
-        Parameters:
-         - authzToken
-         - groupModel
-        """
-        self.send_createGroup(authzToken, groupModel)
-        return self.recv_createGroup()
-
-    def send_createGroup(self, authzToken, groupModel):
-        self._oprot.writeMessageBegin('createGroup', TMessageType.CALL, self._seqid)
-        args = createGroup_args()
-        args.authzToken = authzToken
-        args.groupModel = groupModel
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_createGroup(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = createGroup_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            return result.success
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        raise TApplicationException(TApplicationException.MISSING_RESULT, "createGroup failed: unknown result")
-
-    def updateGroup(self, authzToken, groupModel):
-        """
-        Parameters:
-         - authzToken
-         - groupModel
-        """
-        self.send_updateGroup(authzToken, groupModel)
-        return self.recv_updateGroup()
-
-    def send_updateGroup(self, authzToken, groupModel):
-        self._oprot.writeMessageBegin('updateGroup', TMessageType.CALL, self._seqid)
-        args = updateGroup_args()
-        args.authzToken = authzToken
-        args.groupModel = groupModel
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_updateGroup(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = updateGroup_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            return result.success
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGroup failed: unknown result")
-
-    def deleteGroup(self, authzToken, groupId, ownerId):
-        """
-        Parameters:
-         - authzToken
-         - groupId
-         - ownerId
-        """
-        self.send_deleteGroup(authzToken, groupId, ownerId)
-        return self.recv_deleteGroup()
-
-    def send_deleteGroup(self, authzToken, groupId, ownerId):
-        self._oprot.writeMessageBegin('deleteGroup', TMessageType.CALL, self._seqid)
-        args = deleteGroup_args()
-        args.authzToken = authzToken
-        args.groupId = groupId
-        args.ownerId = ownerId
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_deleteGroup(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = deleteGroup_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            return result.success
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGroup failed: unknown result")
-
-    def getGroup(self, authzToken, groupId):
-        """
-        Parameters:
-         - authzToken
-         - groupId
-        """
-        self.send_getGroup(authzToken, groupId)
-        return self.recv_getGroup()
-
-    def send_getGroup(self, authzToken, groupId):
-        self._oprot.writeMessageBegin('getGroup', TMessageType.CALL, self._seqid)
-        args = getGroup_args()
-        args.authzToken = authzToken
-        args.groupId = groupId
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_getGroup(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = getGroup_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            return result.success
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        raise TApplicationException(TApplicationException.MISSING_RESULT, "getGroup failed: unknown result")
-
-    def getAllGroupsUserBelongs(self, authzToken, userName):
-        """
-        Parameters:
-         - authzToken
-         - userName
-        """
-        self.send_getAllGroupsUserBelongs(authzToken, userName)
-        return self.recv_getAllGroupsUserBelongs()
-
-    def send_getAllGroupsUserBelongs(self, authzToken, userName):
-        self._oprot.writeMessageBegin('getAllGroupsUserBelongs', TMessageType.CALL, self._seqid)
-        args = getAllGroupsUserBelongs_args()
-        args.authzToken = authzToken
-        args.userName = userName
-        args.write(self._oprot)
-        self._oprot.writeMessageEnd()
-        self._oprot.trans.flush()
-
-    def recv_getAllGroupsUserBelongs(self):
-        iprot = self._iprot
-        (fname, mtype, rseqid) = iprot.readMessageBegin()
-        if mtype == TMessageType.EXCEPTION:
-            x = TApplicationException()
-            x.read(iprot)
-            iprot.readMessageEnd()
-            raise x
-        result = getAllGroupsUserBelongs_result()
-        result.read(iprot)
-        iprot.readMessageEnd()
-        if result.success is not None:
-            return result.success
-        if result.ire is not None:
-            raise result.ire
-        if result.ace is not None:
-            raise result.ace
-        if result.ase is not None:
-            raise result.ase
-        if result.ae is not None:
-            raise result.ae
-        raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGroupsUserBelongs failed: unknown result")
-
 
 class Processor(Iface, TProcessor):
     def __init__(self, handler):
@@ -12944,11 +12696,6 @@ class Processor(Iface, TProcessor):
         self._processMap["shareResourceWithUsers"] = Processor.process_shareResourceWithUsers
         self._processMap["revokeSharingOfResourceFromUsers"] = Processor.process_revokeSharingOfResourceFromUsers
         self._processMap["getAllAccessibleUsers"] = Processor.process_getAllAccessibleUsers
-        self._processMap["createGroup"] = Processor.process_createGroup
-        self._processMap["updateGroup"] = Processor.process_updateGroup
-        self._processMap["deleteGroup"] = Processor.process_deleteGroup
-        self._processMap["getGroup"] = Processor.process_getGroup
-        self._processMap["getAllGroupsUserBelongs"] = Processor.process_getAllGroupsUserBelongs
 
     def process(self, iprot, oprot):
         (name, type, seqid) = iprot.readMessageBegin()
@@ -18157,161 +17904,6 @@ class Processor(Iface, TProcessor):
         oprot.writeMessageEnd()
         oprot.trans.flush()
 
-    def process_createGroup(self, seqid, iprot, oprot):
-        args = createGroup_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = createGroup_result()
-        try:
-            result.success = self._handler.createGroup(args.authzToken, args.groupModel)
-            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("createGroup", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_updateGroup(self, seqid, iprot, oprot):
-        args = updateGroup_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = updateGroup_result()
-        try:
-            result.success = self._handler.updateGroup(args.authzToken, args.groupModel)
-            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("updateGroup", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_deleteGroup(self, seqid, iprot, oprot):
-        args = deleteGroup_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = deleteGroup_result()
-        try:
-            result.success = self._handler.deleteGroup(args.authzToken, args.groupId, args.ownerId)
-            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("deleteGroup", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_getGroup(self, seqid, iprot, oprot):
-        args = getGroup_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = getGroup_result()
-        try:
-            result.success = self._handler.getGroup(args.authzToken, args.groupId)
-            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("getGroup", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
-    def process_getAllGroupsUserBelongs(self, seqid, iprot, oprot):
-        args = getAllGroupsUserBelongs_args()
-        args.read(iprot)
-        iprot.readMessageEnd()
-        result = getAllGroupsUserBelongs_result()
-        try:
-            result.success = self._handler.getAllGroupsUserBelongs(args.authzToken, args.userName)
-            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("getAllGroupsUserBelongs", msg_type, seqid)
-        result.write(oprot)
-        oprot.writeMessageEnd()
-        oprot.trans.flush()
-
 # HELPER FUNCTIONS AND STRUCTURES
 
 
@@ -23001,1142 +22593,25 @@ class createProject_result(object):
         return not (self == other)
 
 
-class updateProject_args(object):
-    """
-    Attributes:
-     - authzToken
-     - projectId
-     - updatedProject
-    """
-
-    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.STRUCT, 'updatedProject', (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.thrift_spec), None, ),  # 3
-    )
-
-    def __init__(self, authzToken=None, projectId=None, updatedProject=None,):
-        self.authzToken = authzToken
-        self.projectId = projectId
-        self.updatedProject = updatedProject
-
-    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.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.STRUCT:
-                    self.updatedProject = airavata.model.workspace.ttypes.Project()
-                    self.updatedProject.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('updateProject_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)
-            oprot.writeFieldEnd()
-        if self.updatedProject is not None:
-            oprot.writeFieldBegin('updatedProject', TType.STRUCT, 3)
-            self.updatedProject.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.projectId is None:
-            raise TProtocolException(message='Required field projectId is unset!')
-        if self.updatedProject is None:
-            raise TProtocolException(message='Required field updatedProject 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 updateProject_result(object):
-    """
-    Attributes:
-     - ire
-     - ace
-     - ase
-     - pnfe
-     - ae
-    """
-
-    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
-    )
-
-    def __init__(self, ire=None, ace=None, ase=None, pnfe=None, ae=None,):
-        self.ire = ire
-        self.ace = ace
-        self.ase = ase
-        self.pnfe = pnfe
-        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 == 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.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:
-                    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('updateProject_result')
-        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.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)
-            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 getProject_args(object):
-    """
-    Attributes:
-     - authzToken
-     - projectId
-    """
-
-    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
-    )
-
-    def __init__(self, authzToken=None, projectId=None,):
-        self.authzToken = authzToken
-        self.projectId = projectId
-
-    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.projectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                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('getProject_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)
-            oprot.writeFieldEnd()
-        oprot.writeFieldStop()
-        oprot.writeStructEnd()
-
-    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!')
-        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 getProject_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - ace
-     - ase
-     - pnfe
-     - ae
-    """
-
-    thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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
-    )
-
-    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):
-        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.STRUCT:
-                    self.success = airavata.model.workspace.ttypes.Project()
-                    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)
-                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.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:
-                    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('getProject_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ire is not None:
-            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
-            self.ire.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
-            self.ace.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
-            self.ase.write(oprot)
-            oprot.writeFieldEnd()
-        if self.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)
-            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 deleteProject_args(object):
-    """
-    Attributes:
-     - authzToken
-     - projectId
-    """
-
-    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
-    )
-
-    def __init__(self, authzToken=None, projectId=None,):
-        self.authzToken = authzToken
-        self.projectId = projectId
-
-    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.projectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                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('deleteProject_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)
-            oprot.writeFieldEnd()
-        oprot.writeFieldStop()
-        oprot.writeStructEnd()
-
-    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!')
-        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 deleteProject_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - ace
-     - ase
-     - pnfe
-     - 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, '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
-    )
-
-    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):
-        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.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.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.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:
-                    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('deleteProject_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
-            oprot.writeFieldEnd()
-        if self.ire is not None:
-            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
-            self.ire.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
-            self.ace.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
-            self.ase.write(oprot)
-            oprot.writeFieldEnd()
-        if self.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)
-            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 getUserProjects_args(object):
-    """
-    Attributes:
-     - authzToken
-     - gatewayId
-     - 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.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, userName=None, limit=None, offset=None,):
-        self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        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:
-            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.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:
-                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('getUserProjects_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.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()
-
-    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 getUserProjects_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - ace
-     - ase
-     - ae
-    """
-
-    thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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 = []
-                    (_etype56, _size53) = iprot.readListBegin()
-                    for _i57 in range(_size53):
-                        _elem58 = airavata.model.workspace.ttypes.Project()
-                        _elem58.read(iprot)
-                        self.success.append(_elem58)
-                    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('getUserProjects_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter59 in self.success:
-                iter59.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 searchProjects_args(object):
-    """
-    Attributes:
-     - authzToken
-     - gatewayId
-     - userName
-     - filters
-     - 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.STRING, 'userName', 'UTF8', None, ),  # 3
-        (4, TType.MAP, 'filters', (TType.I32, None, TType.STRING, 'UTF8', False), None, ),  # 4
-        (5, TType.I32, 'limit', None, None, ),  # 5
-        (6, TType.I32, 'offset', None, None, ),  # 6
-    )
-
-    def __init__(self, authzToken=None, gatewayId=None, userName=None, filters=None, limit=None, offset=None,):
-        self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.userName = userName
-        self.filters = filters
-        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:
-            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.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 = {}
-                    (_ktype61, _vtype62, _size60) = iprot.readMapBegin()
-                    for _i64 in range(_size60):
-                        _key65 = iprot.readI32()
-                        _val66 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.filters[_key65] = _val66
-                    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('searchProjects_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 kiter67, viter68 in self.filters.items():
-                oprot.writeI32(kiter67)
-                oprot.writeString(viter68.encode('utf-8') if sys.version_info[0] == 2 else viter68)
-            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 searchProjects_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - ace
-     - ase
-     - ae
-    """
-
-    thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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 = []
-                    (_etype72, _size69) = iprot.readListBegin()
-                    for _i73 in range(_size69):
-                        _elem74 = airavata.model.workspace.ttypes.Project()
-                        _elem74.read(iprot)
-                        self.success.append(_elem74)
-                    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('searchProjects_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter75 in self.success:
-                iter75.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 searchExperiments_args(object):
+class updateProject_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - userName
-     - filters
-     - limit
-     - offset
+     - projectId
+     - updatedProject
     """
 
     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.MAP, 'filters', (TType.I32, None, TType.STRING, 'UTF8', False), None, ),  # 4
-        (5, TType.I32, 'limit', None, None, ),  # 5
-        (6, TType.I32, 'offset', None, None, ),  # 6
+        (2, TType.STRING, 'projectId', 'UTF8', None, ),  # 2
+        (3, TType.STRUCT, 'updatedProject', (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, userName=None, filters=None, limit=None, offset=None,):
+    def __init__(self, authzToken=None, projectId=None, updatedProject=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.userName = userName
-        self.filters = filters
-        self.limit = limit
-        self.offset = offset
+        self.projectId = projectId
+        self.updatedProject = updatedProject
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -24155,33 +22630,13 @@ class searchExperiments_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.MAP:
-                    self.filters = {}
-                    (_ktype77, _vtype78, _size76) = iprot.readMapBegin()
-                    for _i80 in range(_size76):
-                        _key81 = iprot.readI32()
-                        _val82 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.filters[_key81] = _val82
-                    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()
+                if ftype == TType.STRUCT:
+                    self.updatedProject = airavata.model.workspace.ttypes.Project()
+                    self.updatedProject.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -24193,34 +22648,18 @@ class searchExperiments_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('searchExperiments_args')
+        oprot.writeStructBegin('updateProject_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 kiter83, viter84 in self.filters.items():
-                oprot.writeI32(kiter83)
-                oprot.writeString(viter84.encode('utf-8') if sys.version_info[0] == 2 else viter84)
-            oprot.writeMapEnd()
-            oprot.writeFieldEnd()
-        if self.limit is not None:
-            oprot.writeFieldBegin('limit', TType.I32, 5)
-            oprot.writeI32(self.limit)
+        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.offset is not None:
-            oprot.writeFieldBegin('offset', TType.I32, 6)
-            oprot.writeI32(self.offset)
+        if self.updatedProject is not None:
+            oprot.writeFieldBegin('updatedProject', TType.STRUCT, 3)
+            self.updatedProject.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -24228,14 +22667,10 @@ class searchExperiments_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.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.projectId is None:
+            raise TProtocolException(message='Required field projectId is unset!')
+        if self.updatedProject is None:
+            raise TProtocolException(message='Required field updatedProject is unset!')
         return
 
     def __repr__(self):
@@ -24250,29 +22685,30 @@ class searchExperiments_args(object):
         return not (self == other)
 
 
-class searchExperiments_result(object):
+class updateProject_result(object):
     """
     Attributes:
-     - success
      - ire
      - ace
      - ase
+     - pnfe
      - ae
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.experiment.ttypes.ExperimentSummaryModel, airavata.model.experiment.ttypes.ExperimentSummaryModel.thrift_spec), False), 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
+        (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,):
-        self.success = success
+    def __init__(self, ire=None, ace=None, ase=None, pnfe=None, ae=None,):
         self.ire = ire
         self.ace = ace
         self.ase = ase
+        self.pnfe = pnfe
         self.ae = ae
 
     def read(self, iprot):
@@ -24284,18 +22720,7 @@ class searchExperiments_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype88, _size85) = iprot.readListBegin()
-                    for _i89 in range(_size85):
-                        _elem90 = airavata.model.experiment.ttypes.ExperimentSummaryModel()
-                        _elem90.read(iprot)
-                        self.success.append(_elem90)
-                    iprot.readListEnd()
-                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)
@@ -24315,6 +22740,12 @@ class searchExperiments_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:
@@ -24328,14 +22759,7 @@ class searchExperiments_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('searchExperiments_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter91 in self.success:
-                iter91.write(oprot)
-            oprot.writeListEnd()
-            oprot.writeFieldEnd()
+        oprot.writeStructBegin('updateProject_result')
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -24348,8 +22772,12 @@ class searchExperiments_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()
@@ -24370,37 +22798,22 @@ class searchExperiments_result(object):
         return not (self == other)
 
 
-class getExperimentStatistics_args(object):
+class getProject_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - fromTime
-     - toTime
-     - userName
-     - applicationName
-     - resourceHostName
+     - projectId
     """
 
     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
+        (2, TType.STRING, 'projectId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, fromTime=None, toTime=None, userName=None, applicationName=None, resourceHostName=None,):
+    def __init__(self, authzToken=None, projectId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.fromTime = fromTime
-        self.toTime = toTime
-        self.userName = userName
-        self.applicationName = applicationName
-        self.resourceHostName = resourceHostName
+        self.projectId = projectId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -24419,32 +22832,7 @@ class getExperimentStatistics_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.I64:
-                    self.fromTime = iprot.readI64()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                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()
+                    self.projectId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -24456,34 +22844,14 @@ 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('getProject_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.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.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)
+        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()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -24491,12 +22859,8 @@ class getExperimentStatistics_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.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.projectId is None:
+            raise TProtocolException(message='Required field projectId is unset!')
         return
 
     def __repr__(self):
@@ -24511,29 +22875,32 @@ class getExperimentStatistics_args(object):
         return not (self == other)
 
 
-class getExperimentStatistics_result(object):
+class getProject_result(object):
     """
     Attributes:
      - success
      - ire
      - ace
      - ase
+     - pnfe
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentStatistics, airavata.model.experiment.ttypes.ExperimentStatistics.thrift_spec), None, ),  # 0
+        (0, TType.STRUCT, 'success', (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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, '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):
@@ -24547,7 +22914,7 @@ class getExperimentStatistics_result(object):
                 break
             if fid == 0:
                 if ftype == TType.STRUCT:
-                    self.success = airavata.model.experiment.ttypes.ExperimentStatistics()
+                    self.success = airavata.model.workspace.ttypes.Project()
                     self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
@@ -24571,6 +22938,12 @@ class getExperimentStatistics_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:
@@ -24584,7 +22957,7 @@ 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('getProject_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -24601,8 +22974,12 @@ class getExperimentStatistics_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()
@@ -24623,28 +23000,22 @@ class getExperimentStatistics_result(object):
         return not (self == other)
 
 
-class getExperimentsInProject_args(object):
+class deleteProject_args(object):
     """
     Attributes:
      - authzToken
      - projectId
-     - 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, 'projectId', 'UTF8', None, ),  # 2
-        (3, TType.I32, 'limit', None, None, ),  # 3
-        (4, TType.I32, 'offset', None, None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, projectId=None, limit=None, offset=None,):
+    def __init__(self, authzToken=None, projectId=None,):
         self.authzToken = authzToken
         self.projectId = projectId
-        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:
@@ -24666,16 +23037,6 @@ class getExperimentsInProject_args(object):
                     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.I32:
-                    self.limit = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 4:
-                if ftype == TType.I32:
-                    self.offset = iprot.readI32()
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -24685,7 +23046,7 @@ 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('deleteProject_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -24694,14 +23055,6 @@ class getExperimentsInProject_args(object):
             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, 3)
-            oprot.writeI32(self.limit)
-            oprot.writeFieldEnd()
-        if self.offset is not None:
-            oprot.writeFieldBegin('offset', TType.I32, 4)
-            oprot.writeI32(self.offset)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -24710,10 +23063,6 @@ class getExperimentsInProject_args(object):
             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!')
         return
 
     def __repr__(self):
@@ -24728,7 +23077,7 @@ class getExperimentsInProject_args(object):
         return not (self == other)
 
 
-class getExperimentsInProject_result(object):
+class deleteProject_result(object):
     """
     Attributes:
      - success
@@ -24740,7 +23089,7 @@ class getExperimentsInProject_result(object):
     """
 
     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.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
@@ -24766,14 +23115,8 @@ class getExperimentsInProject_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype95, _size92) = iprot.readListBegin()
-                    for _i96 in range(_size92):
-                        _elem97 = airavata.model.experiment.ttypes.ExperimentModel()
-                        _elem97.read(iprot)
-                        self.success.append(_elem97)
-                    iprot.readListEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -24815,13 +23158,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('deleteProject_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter98 in self.success:
-                iter98.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)
@@ -24861,7 +23201,7 @@ class getExperimentsInProject_result(object):
         return not (self == other)
 
 
-class getUserExperiments_args(object):
+class getUserProjects_args(object):
     """
     Attributes:
      - authzToken
@@ -24931,7 +23271,7 @@ 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('getUserProjects_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -24980,7 +23320,7 @@ class getUserExperiments_args(object):
         return not (self == other)
 
 
-class getUserExperiments_result(object):
+class getUserProjects_result(object):
     """
     Attributes:
      - success
@@ -24991,7 +23331,7 @@ class getUserExperiments_result(object):
     """
 
     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.LIST, 'success', (TType.STRUCT, (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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
@@ -25017,11 +23357,11 @@ class getUserExperiments_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype102, _size99) = iprot.readListBegin()
-                    for _i103 in range(_size99):
-                        _elem104 = airavata.model.experiment.ttypes.ExperimentModel()
-                        _elem104.read(iprot)
-                        self.success.append(_elem104)
+                    (_etype56, _size53) = iprot.readListBegin()
+                    for _i57 in range(_size53):
+                        _elem58 = airavata.model.workspace.ttypes.Project()
+                        _elem58.read(iprot)
+                        self.success.append(_elem58)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -25058,12 +23398,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('getUserProjects_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter105 in self.success:
-                iter105.write(oprot)
+            for iter59 in self.success:
+                iter59.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -25100,25 +23440,34 @@ class getUserExperiments_result(object):
         return not (self == other)
 
 
-class createExperiment_args(object):
+class searchProjects_args(object):
     """
     Attributes:
      - authzToken
      - gatewayId
-     - experiment
+     - userName
+     - filters
+     - 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.MAP, 'filters', (TType.I32, None, TType.STRING, 'UTF8', False), None, ),  # 4
+        (5, TType.I32, 'limit', None, None, ),  # 5
+        (6, TType.I32, 'offset', None, None, ),  # 6
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, experiment=None,):
+    def __init__(self, authzToken=None, gatewayId=None, userName=None, filters=None, limit=None, offset=None,):
         self.authzToken = authzToken
         self.gatewayId = gatewayId
-        self.experiment = experiment
+        self.userName = userName
+        self.filters = filters
+        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:
@@ -25141,9 +23490,29 @@ 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.MAP:
+                    self.filters = {}
+                    (_ktype61, _vtype62, _size60) = iprot.readMapBegin()
+                    for _i64 in range(_size60):
+                        _key65 = iprot.readI32()
+                        _val66 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.filters[_key65] = _val66
+                    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:
@@ -25155,7 +23524,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('searchProjects_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -25164,9 +23533,25 @@ 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.filters is not None:
+            oprot.writeFieldBegin('filters', TType.MAP, 4)
+            oprot.writeMapBegin(TType.I32, TType.STRING, len(self.filters))
+            for kiter67, viter68 in self.filters.items():
+                oprot.writeI32(kiter67)
+                oprot.writeString(viter68.encode('utf-8') if sys.version_info[0] == 2 else viter68)
+            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()
@@ -25176,8 +23561,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):
@@ -25192,7 +23581,7 @@ class createExperiment_args(object):
         return not (self == other)
 
 
-class createExperiment_result(object):
+class searchProjects_result(object):
     """
     Attributes:
      - success
@@ -25203,7 +23592,7 @@ class createExperiment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', None, ),  # 0
+        (0, TType.LIST, 'success', (TType.STRUCT, (airavata.model.workspace.ttypes.Project, airavata.model.workspace.ttypes.Project.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
@@ -25227,8 +23616,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 = []
+                    (_etype72, _size69) = iprot.readListBegin()
+                    for _i73 in range(_size69):
+                        _elem74 = airavata.model.workspace.ttypes.Project()
+                        _elem74.read(iprot)
+                        self.success.append(_elem74)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25264,10 +23659,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('searchProjects_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 iter75 in self.success:
+                iter75.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -25303,22 +23701,34 @@ class createExperiment_result(object):
         return not (self == other)
 
 
-class deleteExperiment_args(object):
+class searchExperiments_args(object):
     """
     Attributes:
      - authzToken
-     - experimentId
+     - gatewayId
+     - userName
+     - filters
+     - 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, 'experimentId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'userName', 'UTF8', None, ),  # 3
+        (4, TType.MAP, 'filters', (TType.I32, None, TType.STRING, 'UTF8', False), None, ),  # 4
+        (5, TType.I32, 'limit', None, None, ),  # 5
+        (6, TType.I32, 'offset', None, None, ),  # 6
     )
 
-    def __init__(self, authzToken=None, experimentId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, userName=None, filters=None, limit=None, offset=None,):
         self.authzToken = authzToken
-        self.experimentId = experimentId
+        self.gatewayId = gatewayId
+        self.userName = userName
+        self.filters = filters
+        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:
@@ -25337,7 +23747,33 @@ 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.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 = {}
+                    (_ktype77, _vtype78, _size76) = iprot.readMapBegin()
+                    for _i80 in range(_size76):
+                        _key81 = iprot.readI32()
+                        _val82 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.filters[_key81] = _val82
+                    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:
@@ -25349,14 +23785,34 @@ 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('searchExperiments_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.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 kiter83, viter84 in self.filters.items():
+                oprot.writeI32(kiter83)
+                oprot.writeString(viter84.encode('utf-8') if sys.version_info[0] == 2 else viter84)
+            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()
@@ -25364,8 +23820,14 @@ 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.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):
@@ -25380,7 +23842,7 @@ class deleteExperiment_args(object):
         return not (self == other)
 
 
-class deleteExperiment_result(object):
+class searchExperiments_result(object):
     """
     Attributes:
      - success
@@ -25391,7 +23853,7 @@ class deleteExperiment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -25415,8 +23877,14 @@ class deleteExperiment_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype88, _size85) = iprot.readListBegin()
+                    for _i89 in range(_size85):
+                        _elem90 = airavata.model.experiment.ttypes.ExperimentSummaryModel()
+                        _elem90.read(iprot)
+                        self.success.append(_elem90)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25452,10 +23920,13 @@ 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('searchExperiments_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 iter91 in self.success:
+                iter91.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -25491,22 +23962,37 @@ class deleteExperiment_result(object):
         return not (self == other)
 
 
-class getExperiment_args(object):
+class getExperimentStatistics_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
+     - 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, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (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, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, fromTime=None, toTime=None, userName=None, applicationName=None, resourceHostName=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
+        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:
@@ -25525,7 +24011,32 @@ 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.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()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                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:
@@ -25537,14 +24048,34 @@ 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('getExperimentStatistics_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.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.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.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()
@@ -25552,8 +24083,12 @@ 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.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):
@@ -25568,30 +24103,27 @@ class getExperiment_args(object):
         return not (self == other)
 
 
-class getExperiment_result(object):
+class getExperimentStatistics_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.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, '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
@@ -25607,7 +24139,7 @@ class getExperiment_result(object):
                 break
             if fid == 0:
                 if ftype == TType.STRUCT:
-                    self.success = airavata.model.experiment.ttypes.ExperimentModel()
+                    self.success = airavata.model.experiment.ttypes.ExperimentStatistics()
                     self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
@@ -25619,23 +24151,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)
@@ -25650,7 +24176,7 @@ 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('getExperimentStatistics_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -25659,20 +24185,16 @@ class getExperiment_result(object):
             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()
@@ -25693,22 +24215,28 @@ class getExperiment_result(object):
         return not (self == other)
 
 
-class getExperimentByAdmin_args(object):
+class getExperimentsInProject_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
+     - projectId
+     - 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, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (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, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, projectId=None, limit=None, offset=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
+        self.projectId = projectId
+        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:
@@ -25727,7 +24255,17 @@ class getExperimentByAdmin_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.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.I32:
+                    self.limit = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.I32:
+                    self.offset = iprot.readI32()
                 else:
                     iprot.skip(ftype)
             else:
@@ -25739,14 +24277,22 @@ 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('getExperimentsInProject_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.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, 3)
+            oprot.writeI32(self.limit)
+            oprot.writeFieldEnd()
+        if self.offset is not None:
+            oprot.writeFieldBegin('offset', TType.I32, 4)
+            oprot.writeI32(self.offset)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -25754,8 +24300,12 @@ class getExperimentByAdmin_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.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!')
         return
 
     def __repr__(self):
@@ -25770,32 +24320,32 @@ class getExperimentByAdmin_args(object):
         return not (self == other)
 
 
-class getExperimentByAdmin_result(object):
+class getExperimentsInProject_result(object):
     """
     Attributes:
      - success
      - ire
-     - enf
      - ace
      - ase
+     - pnfe
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.experiment.ttypes.ExperimentModel, airavata.model.experiment.ttypes.ExperimentModel.thrift_spec), 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, '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
+        (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
     )
 
-    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, pnfe=None, ae=None,):
         self.success = success
         self.ire = ire
-        self.enf = enf
         self.ace = ace
         self.ase = ase
+        self.pnfe = pnfe
         self.ae = ae
 
     def read(self, iprot):
@@ -25808,9 +24358,14 @@ class getExperimentByAdmin_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.LIST:
+                    self.success = []
+                    (_etype95, _size92) = iprot.readListBegin()
+                    for _i96 in range(_size92):
+                        _elem97 = airavata.model.experiment.ttypes.ExperimentModel()
+                        _elem97.read(iprot)
+                        self.success.append(_elem97)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -25821,20 +24376,20 @@ class getExperimentByAdmin_result(object):
                     iprot.skip(ftype)
             elif fid == 2:
                 if ftype == TType.STRUCT:
-                    self.enf = airavata.api.error.ttypes.ExperimentNotFoundException()
-                    self.enf.read(iprot)
+                    self.ace = airavata.api.error.ttypes.AiravataClientException()
+                    self.ace.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.ace = airavata.api.error.ttypes.AiravataClientException()
-                    self.ace.read(iprot)
+                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
+                    self.ase.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 4:
                 if ftype == TType.STRUCT:
-                    self.ase = airavata.api.error.ttypes.AiravataSystemException()
-                    self.ase.read(iprot)
+                    self.pnfe = airavata.api.error.ttypes.ProjectNotFoundException()
+                    self.pnfe.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 5:
@@ -25852,27 +24407,30 @@ 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('getExperimentsInProject_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 iter98 in self.success:
+                iter98.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.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.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)
             self.ae.write(oprot)
@@ -25895,22 +24453,31 @@ class getExperimentByAdmin_result(object):
         return not (self == other)
 
 
-class getDetailedExperimentTree_args(object):
+class getUserExperiments_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
+     - gatewayId
+     - 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, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (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
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, userName=None, limit=None, offset=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
+        self.gatewayId = gatewayId
+        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:
@@ -25929,7 +24496,22 @@ class getDetailedExperimentTree_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.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.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:
@@ -25941,14 +24523,26 @@ 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('getUserExperiments_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.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.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()
@@ -25956,8 +24550,14 @@ class getDetailedExperimentTree_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.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):
@@ -25972,30 +24572,27 @@ class getDetailedExperimentTree_args(object):
         return not (self == other)
 
 
-class getDetailedExperimentTree_result(object):
+class getUserExperiments_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.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, '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
@@ -26010,9 +24607,14 @@ class getDetailedExperimentTree_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.LIST:
+                    self.success = []
+                    (_etype102, _size99) = iprot.readListBegin()
+                    for _i103 in range(_size99):
+                        _elem104 = airavata.model.experiment.ttypes.ExperimentModel()
+                        _elem104.read(iprot)
+                        self.success.append(_elem104)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -26023,23 +24625,17 @@ class getDetailedExperimentTree_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)
@@ -26054,29 +24650,28 @@ 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('getUserExperiments_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 iter105 in self.success:
+                iter105.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.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()
@@ -26097,24 +24692,24 @@ class getDetailedExperimentTree_result(object):
         return not (self == other)
 
 
-class updateExperiment_args(object):
+class createExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
+     - 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, 'airavataExperimentId', '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, airavataExperimentId=None, experiment=None,):
+    def __init__(self, authzToken=None, gatewayId=None, experiment=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
+        self.gatewayId = gatewayId
         self.experiment = experiment
 
     def read(self, iprot):
@@ -26134,7 +24729,7 @@ class updateExperiment_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.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             elif fid == 3:
@@ -26152,14 +24747,14 @@ 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('createExperiment_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.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)
@@ -26171,8 +24766,8 @@ class updateExperiment_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.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
@@ -26189,28 +24784,27 @@ class updateExperiment_args(object):
         return not (self == other)
 
 
-class updateExperiment_result(object):
+class createExperiment_result(object):
     """
     Attributes:
+     - success
      - ire
-     - enf
      - ace
      - ase
      - ae
     """
 
     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
+        (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, 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
@@ -26224,7 +24818,12 @@ class updateExperiment_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)
@@ -26232,23 +24831,17 @@ class updateExperiment_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)
@@ -26263,25 +24856,25 @@ 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('createExperiment_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)
             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()
@@ -26302,25 +24895,22 @@ class updateExperiment_result(object):
         return not (self == other)
 
 
-class updateExperimentConfiguration_args(object):
+class deleteExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - airavataExperimentId
-     - userConfiguration
+     - 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
-        (3, TType.STRUCT, 'userConfiguration', (airavata.model.experiment.ttypes.UserConfigurationDataModel, airavata.model.experiment.ttypes.UserConfigurationDataModel.thrift_spec), None, ),  # 3
+        (2, TType.STRING, 'experimentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None, userConfiguration=None,):
+    def __init__(self, authzToken=None, experimentId=None,):
         self.authzToken = authzToken
-        self.airavataExperimentId = airavataExperimentId
-        self.userConfiguration = userConfiguration
+        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:
@@ -26339,13 +24929,7 @@ class updateExperimentConfiguration_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()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.userConfiguration = airavata.model.experiment.ttypes.UserConfigurationDataModel()
-                    self.userConfiguration.read(iprot)
+                    self.experimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -26357,18 +24941,14 @@ 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('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)
-            oprot.writeFieldEnd()
-        if self.userConfiguration is not None:
-            oprot.writeFieldBegin('userConfiguration', TType.STRUCT, 3)
-            self.userConfiguration.write(oprot)
+        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()
@@ -26376,10 +24956,8 @@ class updateExperimentConfiguration_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.userConfiguration is None:
-            raise TProtocolException(message='Required field userConfiguration is unset!')
+        if self.experimentId is None:
+            raise TProtocolException(message='Required field experimentId is unset!')
         return
 
     def __repr__(self):
@@ -26394,18 +24972,29 @@ class updateExperimentConfiguration_args(object):
         return not (self == other)
 
 
-class updateExperimentConfiguration_result(object):
+class deleteExperiment_result(object):
     """
     Attributes:
+     - success
+     - ire
+     - 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
+        (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
+        (4, TType.STRUCT, 'ae', (airavata.api.error.ttypes.AuthorizationException, airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ),  # 4
     )
 
-    def __init__(self, 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.ae = ae
 
     def read(self, iprot):
@@ -26417,7 +25006,30 @@ class updateExperimentConfiguration_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)
+                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)
@@ -26432,9 +25044,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('deleteExperiment_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.BOOL, 0)
+            oprot.writeBool(self.success)
+            oprot.writeFieldEnd()
+        if self.ire is not None:
+            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+            self.ire.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ace is not None:
+            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+            self.ace.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ase is not None:
+            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+            self.ase.write(oprot)
+            oprot.writeFieldEnd()
         if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
             self.ae.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
@@ -26455,25 +25083,22 @@ class updateExperimentConfiguration_result(object):
         return not (self == other)
 
 
-class updateResourceScheduleing_args(object):
+class getExperiment_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, resourceScheduling=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=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:
@@ -26495,12 +25120,6 @@ class updateResourceScheduleing_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()
@@ -26510,7 +25129,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('getExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26519,10 +25138,6 @@ 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)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -26531,8 +25146,6 @@ 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!')
         return
 
     def __repr__(self):
@@ -26547,18 +25160,32 @@ class updateResourceScheduleing_args(object):
         return not (self == other)
 
 
-class updateResourceScheduleing_result(object):
+class getExperiment_result(object):
     """
     Attributes:
+     - success
+     - 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
+        (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
+        (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, 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
 
     def read(self, iprot):
@@ -26570,7 +25197,37 @@ class updateResourceScheduleing_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)
+                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)
@@ -26585,9 +25242,29 @@ 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('getExperiment_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.STRUCT, 0)
+            self.success.write(oprot)
+            oprot.writeFieldEnd()
+        if self.ire is not None:
+            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+            self.ire.write(oprot)
+            oprot.writeFieldEnd()
+        if self.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()
@@ -26608,7 +25285,7 @@ class updateResourceScheduleing_result(object):
         return not (self == other)
 
 
-class validateExperiment_args(object):
+class getExperimentByAdmin_args(object):
     """
     Attributes:
      - authzToken
@@ -26654,7 +25331,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('getExperimentByAdmin_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26685,7 +25362,7 @@ class validateExperiment_args(object):
         return not (self == other)
 
 
-class validateExperiment_result(object):
+class getExperimentByAdmin_result(object):
     """
     Attributes:
      - success
@@ -26697,7 +25374,7 @@ class validateExperiment_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -26723,8 +25400,9 @@ class validateExperiment_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.experiment.ttypes.ExperimentModel()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -26766,10 +25444,10 @@ 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')
+        oprot.writeStructBegin('getExperimentByAdmin_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)
@@ -26809,25 +25487,22 @@ class validateExperiment_result(object):
         return not (self == other)
 
 
-class launchExperiment_args(object):
+class getDetailedExperimentTree_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:
@@ -26849,11 +25524,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()
@@ -26863,7 +25533,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('getDetailedExperimentTree_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -26872,10 +25542,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()
 
@@ -26884,8 +25550,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):
@@ -26900,9 +25564,10 @@ class launchExperiment_args(object):
         return not (self == other)
 
 
-class launchExperiment_result(object):
+class getDetailedExperimentTree_result(object):
     """
     Attributes:
+     - success
      - ire
      - enf
      - ace
@@ -26911,7 +25576,7 @@ class launchExperiment_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
@@ -26919,7 +25584,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
@@ -26935,7 +25601,13 @@ class launchExperiment_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)
@@ -26974,7 +25646,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('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)
@@ -27013,22 +25689,25 @@ class launchExperiment_result(object):
         return not (self == other)
 
 
-class getExperimentStatus_args(object):
+class updateExperiment_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,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, experiment=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:
@@ -27050,6 +25729,12 @@ 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.STRUCT:
+                    self.experiment = airavata.model.experiment.ttypes.ExperimentModel()
+                    self.experiment.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -27059,7 +25744,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('updateExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27068,6 +25753,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.experiment is not None:
+            oprot.writeFieldBegin('experiment', TType.STRUCT, 3)
+            self.experiment.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -27076,6 +25765,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.experiment is None:
+            raise TProtocolException(message='Required field experiment is unset!')
         return
 
     def __repr__(self):
@@ -27090,10 +25781,9 @@ class getExperimentStatus_args(object):
         return not (self == other)
 
 
-class getExperimentStatus_result(object):
+class updateExperiment_result(object):
     """
     Attributes:
-     - success
      - ire
      - enf
      - ace
@@ -27102,7 +25792,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
@@ -27110,8 +25800,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
@@ -27127,13 +25816,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)
@@ -27172,11 +25855,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('updateExperiment_result')
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -27215,22 +25894,25 @@ class getExperimentStatus_result(object):
         return not (self == other)
 
 
-class getExperimentOutputs_args(object):
+class updateExperimentConfiguration_args(object):
     """
     Attributes:
      - authzToken
      - airavataExperimentId
+     - 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, 'userConfiguration', (airavata.model.experiment.ttypes.UserConfigurationDataModel, airavata.model.experiment.ttypes.UserConfigurationDataModel.thrift_spec), None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, airavataExperimentId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, userConfiguration=None,):
         self.authzToken = authzToken
         self.airavataExperimentId = airavataExperimentId
+        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:
@@ -27252,6 +25934,12 @@ class getExperimentOutputs_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.userConfiguration = airavata.model.experiment.ttypes.UserConfigurationDataModel()
+                    self.userConfiguration.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -27261,7 +25949,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('updateExperimentConfiguration_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27270,6 +25958,10 @@ class getExperimentOutputs_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)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -27278,6 +25970,8 @@ class getExperimentOutputs_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!')
         return
 
     def __repr__(self):
@@ -27292,32 +25986,18 @@ class getExperimentOutputs_args(object):
         return not (self == other)
 
 
-class getExperimentOutputs_result(object):
+class updateExperimentConfiguration_result(object):
     """
     Attributes:
-     - success
-     - ire
-     - enf
-     - ace
-     - ase
      - ae
     """
 
     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
-        (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):
@@ -27329,42 +26009,7 @@ class getExperimentOutputs_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype109, _size106) = iprot.readListBegin()
-                    for _i110 in range(_size106):
-                        _elem111 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem111.read(iprot)
-                        self.success.append(_elem111)
-                    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.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)
@@ -27379,32 +26024,9 @@ 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')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter112 in self.success:
-                iter112.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.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('updateExperimentConfiguration_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()
@@ -27425,22 +26047,25 @@ class getExperimentOutputs_result(object):
         return not (self == other)
 
 
-class getIntermediateOutputs_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:
@@ -27462,6 +26087,12 @@ class getIntermediateOutputs_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()
@@ -27471,7 +26102,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('updateResourceScheduleing_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27480,6 +26111,10 @@ class getIntermediateOutputs_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()
 
@@ -27488,6 +26123,8 @@ class getIntermediateOutputs_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):
@@ -27502,32 +26139,18 @@ class getIntermediateOutputs_args(object):
         return not (self == other)
 
 
-class getIntermediateOutputs_result(object):
+class updateResourceScheduleing_result(object):
     """
     Attributes:
-     - success
-     - ire
-     - enf
-     - ace
-     - ase
      - ae
     """
 
     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
-        (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):
@@ -27539,42 +26162,7 @@ class getIntermediateOutputs_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype116, _size113) = iprot.readListBegin()
-                    for _i117 in range(_size113):
-                        _elem118 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem118.read(iprot)
-                        self.success.append(_elem118)
-                    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.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)
@@ -27589,32 +26177,9 @@ 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')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter119 in self.success:
-                iter119.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.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()
@@ -27635,7 +26200,7 @@ class getIntermediateOutputs_result(object):
         return not (self == other)
 
 
-class getJobStatuses_args(object):
+class validateExperiment_args(object):
     """
     Attributes:
      - authzToken
@@ -27681,7 +26246,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('validateExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27712,7 +26277,7 @@ class getJobStatuses_args(object):
         return not (self == other)
 
 
-class getJobStatuses_result(object):
+class validateExperiment_result(object):
     """
     Attributes:
      - success
@@ -27724,7 +26289,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.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
@@ -27750,15 +26315,8 @@ class getJobStatuses_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype121, _vtype122, _size120) = iprot.readMapBegin()
-                    for _i124 in range(_size120):
-                        _key125 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val126 = airavata.model.status.ttypes.JobStatus()
-                        _val126.read(iprot)
-                        self.success[_key125] = _val126
-                    iprot.readMapEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -27800,14 +26358,10 @@ 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('validateExperiment_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
-            for kiter127, viter128 in self.success.items():
-                oprot.writeString(kiter127.encode('utf-8') if sys.version_info[0] == 2 else kiter127)
-                viter128.write(oprot)
-            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)
@@ -27847,22 +26401,25 @@ class getJobStatuses_result(object):
         return not (self == other)
 
 
-class getJobDetails_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:
@@ -27884,6 +26441,11 @@ class getJobDetails_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()
@@ -27893,7 +26455,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('launchExperiment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -27902,6 +26464,10 @@ class getJobDetails_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()
 
@@ -27910,6 +26476,8 @@ class getJobDetails_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):
@@ -27924,10 +26492,9 @@ class getJobDetails_args(object):
         return not (self == other)
 
 
-class getJobDetails_result(object):
+class launchExperiment_result(object):
     """
     Attributes:
-     - success
      - ire
      - enf
      - ace
@@ -27936,7 +26503,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
+        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
@@ -27944,8 +26511,7 @@ class getJobDetails_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
@@ -27961,18 +26527,7 @@ class getJobDetails_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype132, _size129) = iprot.readListBegin()
-                    for _i133 in range(_size129):
-                        _elem134 = airavata.model.job.ttypes.JobModel()
-                        _elem134.read(iprot)
-                        self.success.append(_elem134)
-                    iprot.readListEnd()
-                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)
@@ -28011,14 +26566,7 @@ 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')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter135 in self.success:
-                iter135.write(oprot)
-            oprot.writeListEnd()
-            oprot.writeFieldEnd()
+        oprot.writeStructBegin('launchExperiment_result')
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -28057,28 +26605,22 @@ class getJobDetails_result(object):
         return not (self == other)
 
 
-class cloneExperiment_args(object):
+class getExperimentStatus_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:
@@ -28097,17 +26639,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:
@@ -28119,22 +26651,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('getExperimentStatus_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()
@@ -28142,6 +26666,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):
@@ -28156,7 +26682,7 @@ class cloneExperiment_args(object):
         return not (self == other)
 
 
-class cloneExperiment_result(object):
+class getExperimentStatus_result(object):
     """
     Attributes:
      - success
@@ -28165,27 +26691,24 @@ class cloneExperiment_result(object):
      - ace
      - ase
      - ae
-     - pnfe
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', 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
         (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:
@@ -28197,8 +26720,9 @@ 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.STRUCT:
+                    self.success = airavata.model.status.ttypes.ExperimentStatus()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28231,12 +26755,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()
@@ -28246,10 +26764,10 @@ 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('getExperimentStatus_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)
@@ -28271,10 +26789,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()
 
@@ -28293,28 +26807,22 @@ class cloneExperiment_result(object):
         return not (self == other)
 
 
-class cloneExperimentByAdmin_args(object):
+class getExperimentOutputs_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:
@@ -28333,17 +26841,7 @@ class cloneExperimentByAdmin_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:
@@ -28355,22 +26853,14 @@ 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('getExperimentOutputs_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()
@@ -28378,6 +26868,8 @@ class cloneExperimentByAdmin_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):
@@ -28392,7 +26884,7 @@ class cloneExperimentByAdmin_args(object):
         return not (self == other)
 
 
-class cloneExperimentByAdmin_result(object):
+class getExperimentOutputs_result(object):
     """
     Attributes:
      - success
@@ -28401,27 +26893,24 @@ class cloneExperimentByAdmin_result(object):
      - ace
      - ase
      - ae
-     - pnfe
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', 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
         (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:
@@ -28433,8 +26922,14 @@ class cloneExperimentByAdmin_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 = []
+                    (_etype109, _size106) = iprot.readListBegin()
+                    for _i110 in range(_size106):
+                        _elem111 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem111.read(iprot)
+                        self.success.append(_elem111)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28467,12 +26962,6 @@ class cloneExperimentByAdmin_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()
@@ -28482,10 +26971,13 @@ 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('getExperimentOutputs_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 iter112 in self.success:
+                iter112.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -28507,10 +26999,6 @@ class cloneExperimentByAdmin_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()
 
@@ -28529,25 +27017,22 @@ class cloneExperimentByAdmin_result(object):
         return not (self == other)
 
 
-class terminateExperiment_args(object):
+class getIntermediateOutputs_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:
@@ -28569,11 +27054,6 @@ class terminateExperiment_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()
@@ -28583,7 +27063,7 @@ 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('getIntermediateOutputs_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -28592,16 +27072,14 @@ class terminateExperiment_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()
 
     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):
@@ -28616,9 +27094,10 @@ class terminateExperiment_args(object):
         return not (self == other)
 
 
-class terminateExperiment_result(object):
+class getIntermediateOutputs_result(object):
     """
     Attributes:
+     - success
      - ire
      - enf
      - ace
@@ -28627,7 +27106,7 @@ class terminateExperiment_result(object):
     """
 
     thrift_spec = (
-        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
@@ -28635,7 +27114,8 @@ class terminateExperiment_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
@@ -28651,7 +27131,18 @@ class terminateExperiment_result(object):
             (fname, ftype, fid) = iprot.readFieldBegin()
             if ftype == TType.STOP:
                 break
-            if fid == 1:
+            if fid == 0:
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype116, _size113) = iprot.readListBegin()
+                    for _i117 in range(_size113):
+                        _elem118 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem118.read(iprot)
+                        self.success.append(_elem118)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -28690,7 +27181,14 @@ 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('getIntermediateOutputs_result')
+        if self.success is not None:
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter119 in self.success:
+                iter119.write(oprot)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
             self.ire.write(oprot)
@@ -28729,25 +27227,22 @@ class terminateExperiment_result(object):
         return not (self == other)
 
 
-class registerApplicationModule_args(object):
+class getJobStatuses_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
-     - applicationModule
+     - 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, '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
     )
 
-    def __init__(self, authzToken=None, gatewayId=None, applicationModule=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
-        self.applicationModule = applicationModule
+        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:
@@ -28766,13 +27261,7 @@ 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()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                    self.applicationModule.read(iprot)
+                    self.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -28784,18 +27273,14 @@ 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('getJobStatuses_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.applicationModule is not None:
-            oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
-            self.applicationModule.write(oprot)
+        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()
@@ -28803,10 +27288,8 @@ class registerApplicationModule_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.applicationModule is None:
-            raise TProtocolException(message='Required field applicationModule is unset!')
+        if self.airavataExperimentId is None:
+            raise TProtocolException(message='Required field airavataExperimentId is unset!')
         return
 
     def __repr__(self):
@@ -28821,27 +27304,30 @@ class registerApplicationModule_args(object):
         return not (self == other)
 
 
-class registerApplicationModule_result(object):
+class getJobStatuses_result(object):
     """
     Attributes:
      - success
      - ire
+     - enf
      - ace
      - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', 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, '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,):
+    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
@@ -28856,8 +27342,15 @@ class registerApplicationModule_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 = {}
+                    (_ktype121, _vtype122, _size120) = iprot.readMapBegin()
+                    for _i124 in range(_size120):
+                        _key125 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val126 = airavata.model.status.ttypes.JobStatus()
+                        _val126.read(iprot)
+                        self.success[_key125] = _val126
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -28868,17 +27361,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)
@@ -28893,25 +27392,33 @@ 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')
+        oprot.writeStructBegin('getJobStatuses_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.STRUCT, len(self.success))
+            for kiter127, viter128 in self.success.items():
+                oprot.writeString(kiter127.encode('utf-8') if sys.version_info[0] == 2 else kiter127)
+                viter128.write(oprot)
+            oprot.writeMapEnd()
             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, 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()
@@ -28932,22 +27439,22 @@ class registerApplicationModule_result(object):
         return not (self == other)
 
 
-class getApplicationModule_args(object):
+class getJobDetails_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
+     - 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, 'appModuleId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, appModuleId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
+        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:
@@ -28966,7 +27473,7 @@ 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.airavataExperimentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -28978,14 +27485,14 @@ 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('getJobDetails_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.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()
@@ -28993,8 +27500,8 @@ 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.airavataExperimentId is None:
+            raise TProtocolException(message='Required field airavataExperimentId is unset!')
         return
 
     def __repr__(self):
@@ -29009,27 +27516,30 @@ class getApplicationModule_args(object):
         return not (self == other)
 
 
-class getApplicationModule_result(object):
+class getJobDetails_result(object):
     """
     Attributes:
      - success
      - ire
+     - enf
      - ace
      - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.STRUCT, 'success', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), 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, '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,):
+    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
@@ -29044,9 +27554,14 @@ 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.LIST:
+                    self.success = []
+                    (_etype132, _size129) = iprot.readListBegin()
+                    for _i133 in range(_size129):
+                        _elem134 = airavata.model.job.ttypes.JobModel()
+                        _elem134.read(iprot)
+                        self.success.append(_elem134)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -29057,17 +27572,23 @@ class getApplicationModule_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)
@@ -29082,25 +27603,32 @@ 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('getJobDetails_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 iter135 in self.success:
+                iter135.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.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()
@@ -29121,25 +27649,28 @@ class getApplicationModule_result(object):
         return not (self == other)
 
 
-class updateApplicationModule_args(object):
+class cloneExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
-     - applicationModule
+     - 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, 'appModuleId', '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, 'existingExperimentID', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'newExperimentName', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'newExperimentProjectId', 'UTF8', None, ),  # 4
     )
 
-    def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+    def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None, newExperimentProjectId=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
-        self.applicationModule = applicationModule
+        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:
@@ -29158,13 +27689,17 @@ class updateApplicationModule_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.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.STRUCT:
-                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                    self.applicationModule.read(iprot)
+                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()
                 else:
                     iprot.skip(ftype)
             else:
@@ -29176,18 +27711,22 @@ 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('cloneExperiment_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.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.applicationModule is not None:
-            oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
-            self.applicationModule.write(oprot)
+        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()
@@ -29195,10 +27734,6 @@ class updateApplicationModule_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.applicationModule is None:
-            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29213,30 +27748,36 @@ class updateApplicationModule_args(object):
         return not (self == other)
 
 
-class updateApplicationModule_result(object):
+class cloneExperiment_result(object):
     """
     Attributes:
      - success
      - ire
+     - enf
      - ace
      - ase
      - ae
+     - pnfe
     """
 
     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
-        (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
+        (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, 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:
@@ -29248,8 +27789,8 @@ class updateApplicationModule_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:
@@ -29260,22 +27801,34 @@ class updateApplicationModule_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)
                 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()
@@ -29285,27 +27838,35 @@ 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('cloneExperiment_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)
             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()
+        if self.pnfe is not None:
+            oprot.writeFieldBegin('pnfe', TType.STRUCT, 6)
+            self.pnfe.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -29324,22 +27885,28 @@ class updateApplicationModule_result(object):
         return not (self == other)
 
 
-class getAllAppModules_args(object):
+class cloneExperimentByAdmin_args(object):
     """
     Attributes:
      - authzToken
-     - 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, 'gatewayId', 'UTF8', None, ),  # 2
+        (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, gatewayId=None,):
+    def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None, newExperimentProjectId=None,):
         self.authzToken = authzToken
-        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:
@@ -29358,7 +27925,17 @@ 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.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()
                 else:
                     iprot.skip(ftype)
             else:
@@ -29370,14 +27947,22 @@ 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('cloneExperimentByAdmin_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.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)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -29385,8 +27970,6 @@ 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!')
         return
 
     def __repr__(self):
@@ -29401,30 +27984,36 @@ class getAllAppModules_args(object):
         return not (self == other)
 
 
-class getAllAppModules_result(object):
+class cloneExperimentByAdmin_result(object):
     """
     Attributes:
      - success
      - ire
+     - enf
      - ace
      - ase
      - ae
+     - pnfe
     """
 
     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.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
-        (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
+        (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, 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:
@@ -29436,14 +28025,8 @@ class getAllAppModules_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype139, _size136) = iprot.readListBegin()
-                    for _i140 in range(_size136):
-                        _elem141 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-                        _elem141.read(iprot)
-                        self.success.append(_elem141)
-                    iprot.readListEnd()
+                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:
@@ -29454,22 +28037,34 @@ class getAllAppModules_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)
                 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()
@@ -29479,30 +28074,35 @@ 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('cloneExperimentByAdmin_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter142 in self.success:
-                iter142.write(oprot)
-            oprot.writeListEnd()
+            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)
             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()
+        if self.pnfe is not None:
+            oprot.writeFieldBegin('pnfe', TType.STRUCT, 6)
+            self.pnfe.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -29521,22 +28121,25 @@ class getAllAppModules_result(object):
         return not (self == other)
 
 
-class deleteApplicationModule_args(object):
+class terminateExperiment_args(object):
     """
     Attributes:
      - authzToken
-     - appModuleId
+     - 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, 'appModuleId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'airavataExperimentId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
     )
 
-    def __init__(self, authzToken=None, appModuleId=None,):
+    def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
         self.authzToken = authzToken
-        self.appModuleId = appModuleId
+        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:
@@ -29555,7 +28158,12 @@ 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.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:
@@ -29567,14 +28175,18 @@ 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('terminateExperiment_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.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, 3)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -29582,8 +28194,6 @@ 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!')
         return
 
     def __repr__(self):
@@ -29598,27 +28208,28 @@ class deleteApplicationModule_args(object):
         return not (self == other)
 
 
-class deleteApplicationModule_result(object):
+class terminateExperiment_result(object):
     """
     Attributes:
-     - success
      - ire
+     - enf
      - ace
      - ase
      - ae
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -29632,12 +28243,7 @@ class deleteApplicationModule_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 fid == 1:
                 if ftype == TType.STRUCT:
                     self.ire = airavata.api.error.ttypes.InvalidRequestException()
                     self.ire.read(iprot)
@@ -29645,17 +28251,23 @@ class deleteApplicationModule_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)
@@ -29670,25 +28282,25 @@ 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')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(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()
@@ -29709,25 +28321,25 @@ class deleteApplicationModule_result(object):
         return not (self == other)
 
 
-class registerApplicationDeployment_args(object):
+class registerApplicationModule_args(object):
     """
     Attributes:
      - authzToken
      - gatewayId
-     - applicationDeployment
+     - 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, 'applicationDeployment', (airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ),  # 3
+        (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, applicationDeployment=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationModule=None,):
         self.authzToken = authzToken
         self.gatewayId = gatewayId
-        self.applicationDeployment = applicationDeployment
+        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:
@@ -29751,8 +28363,8 @@ class registerApplicationDeployment_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                    self.applicationDeployment.read(iprot)
+                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                    self.applicationModule.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -29764,7 +28376,7 @@ 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('registerApplicationModule_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -29773,9 +28385,9 @@ class registerApplicationDeployment_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.applicationDeployment is not None:
-            oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
-            self.applicationDeployment.write(oprot)
+        if self.applicationModule is not None:
+            oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+            self.applicationModule.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -29785,8 +28397,8 @@ class registerApplicationDeployment_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.applicationDeployment is None:
-            raise TProtocolException(message='Required field applicationDeployment is unset!')
+        if self.applicationModule is None:
+            raise TProtocolException(message='Required field applicationModule is unset!')
         return
 
     def __repr__(self):
@@ -29801,7 +28413,7 @@ class registerApplicationDeployment_args(object):
         return not (self == other)
 
 
-class registerApplicationDeployment_result(object):
+class registerApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -29873,7 +28485,7 @@ 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('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)
@@ -29912,22 +28524,22 @@ class registerApplicationDeployment_result(object):
         return not (self == other)
 
 
-class getApplicationDeployment_args(object):
+class getApplicationModule_args(object):
     """
     Attributes:
      - authzToken
-     - appDeploymentId
+     - 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, 'appDeploymentId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, appDeploymentId=None,):
+    def __init__(self, authzToken=None, appModuleId=None,):
         self.authzToken = authzToken
-        self.appDeploymentId = appDeploymentId
+        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:
@@ -29946,7 +28558,7 @@ 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.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -29958,14 +28570,14 @@ 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('getApplicationModule_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.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()
@@ -29973,8 +28585,8 @@ 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.appModuleId is None:
+            raise TProtocolException(message='Required field appModuleId is unset!')
         return
 
     def __repr__(self):
@@ -29989,7 +28601,7 @@ class getApplicationDeployment_args(object):
         return not (self == other)
 
 
-class getApplicationDeployment_result(object):
+class getApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -30000,7 +28612,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.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
@@ -30025,7 +28637,7 @@ class getApplicationDeployment_result(object):
                 break
             if fid == 0:
                 if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.success = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
                     self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
@@ -30062,7 +28674,7 @@ 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('getApplicationModule_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -30101,25 +28713,25 @@ class getApplicationDeployment_result(object):
         return not (self == other)
 
 
-class updateApplicationDeployment_args(object):
+class updateApplicationModule_args(object):
     """
     Attributes:
      - authzToken
-     - appDeploymentId
-     - applicationDeployment
+     - 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, 'appDeploymentId', '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
+        (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, appDeploymentId=None, applicationDeployment=None,):
+    def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
         self.authzToken = authzToken
-        self.appDeploymentId = appDeploymentId
-        self.applicationDeployment = applicationDeployment
+        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:
@@ -30138,13 +28750,13 @@ class updateApplicationDeployment_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.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.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                    self.applicationDeployment.read(iprot)
+                    self.applicationModule = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                    self.applicationModule.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -30156,208 +28768,18 @@ 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('updateApplicationModule_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)
-            oprot.writeFieldEnd()
-        if self.applicationDeployment is not None:
-            oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
-            self.applicationDeployment.write(oprot)
-            oprot.writeFieldEnd()
-        oprot.writeFieldStop()
-        oprot.writeStructEnd()
-
-    def validate(self):
-        if self.authzToken is None:
-            raise 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):
-        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 updateApplicationDeployment_result(object):
-    """
-    Attributes:
-     - success
-     - ire
-     - 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, '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.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.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('updateApplicationDeployment_result')
-        if self.success is not None:
-            oprot.writeFieldBegin('success', TType.BOOL, 0)
-            oprot.writeBool(self.success)
-            oprot.writeFieldEnd()
-        if self.ire is not None:
-            oprot.writeFieldBegin('ire', TType.STRUCT, 1)
-            self.ire.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ace is not None:
-            oprot.writeFieldBegin('ace', TType.STRUCT, 2)
-            self.ace.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ase is not None:
-            oprot.writeFieldBegin('ase', TType.STRUCT, 3)
-            self.ase.write(oprot)
-            oprot.writeFieldEnd()
-        if self.ae is not None:
-            oprot.writeFieldBegin('ae', TType.STRUCT, 4)
-            self.ae.write(oprot)
-            oprot.writeFieldEnd()
-        oprot.writeFieldStop()
-        oprot.writeStructEnd()
-
-    def validate(self):
-        return
-
-    def __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 deleteApplicationDeployment_args(object):
-    """
-    Attributes:
-     - authzToken
-     - 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, 'appDeploymentId', 'UTF8', None, ),  # 2
-    )
-
-    def __init__(self, authzToken=None, appDeploymentId=None,):
-        self.authzToken = authzToken
-        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:
-            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.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                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('deleteApplicationDeployment_args')
-        if self.authzToken is not None:
-            oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
-            self.authzToken.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()
-        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.applicationModule is not None:
+            oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+            self.applicationModule.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -30365,8 +28787,10 @@ class deleteApplicationDeployment_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.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):
@@ -30381,7 +28805,7 @@ class deleteApplicationDeployment_args(object):
         return not (self == other)
 
 
-class deleteApplicationDeployment_result(object):
+class updateApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -30453,7 +28877,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('updateApplicationModule_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -30492,7 +28916,7 @@ class deleteApplicationDeployment_result(object):
         return not (self == other)
 
 
-class getAllApplicationDeployments_args(object):
+class getAllAppModules_args(object):
     """
     Attributes:
      - authzToken
@@ -30538,7 +28962,7 @@ 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('getAllAppModules_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -30569,7 +28993,7 @@ class getAllApplicationDeployments_args(object):
         return not (self == other)
 
 
-class getAllApplicationDeployments_result(object):
+class getAllAppModules_result(object):
     """
     Attributes:
      - success
@@ -30580,7 +29004,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.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
@@ -30606,11 +29030,11 @@ class getAllApplicationDeployments_result(object):
             if fid == 0:
                 if ftype == TType.LIST:
                     self.success = []
-                    (_etype146, _size143) = iprot.readListBegin()
-                    for _i147 in range(_size143):
-                        _elem148 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-                        _elem148.read(iprot)
-                        self.success.append(_elem148)
+                    (_etype139, _size136) = iprot.readListBegin()
+                    for _i140 in range(_size136):
+                        _elem141 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+                        _elem141.read(iprot)
+                        self.success.append(_elem141)
                     iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
@@ -30647,12 +29071,12 @@ 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('getAllAppModules_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.LIST, 0)
             oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter149 in self.success:
-                iter149.write(oprot)
+            for iter142 in self.success:
+                iter142.write(oprot)
             oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
@@ -30689,7 +29113,7 @@ class getAllApplicationDeployments_result(object):
         return not (self == other)
 
 
-class getAppModuleDeployedResources_args(object):
+class deleteApplicationModule_args(object):
     """
     Attributes:
      - authzToken
@@ -30735,7 +29159,7 @@ 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('deleteApplicationModule_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -30766,7 +29190,7 @@ class getAppModuleDeployedResources_args(object):
         return not (self == other)
 
 
-class getAppModuleDeployedResources_result(object):
+class deleteApplicationModule_result(object):
     """
     Attributes:
      - success
@@ -30777,7 +29201,7 @@ class getAppModuleDeployedResources_result(object):
     """
 
     thrift_spec = (
-        (0, TType.LIST, 'success', (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
@@ -30801,13 +29225,8 @@ class getAppModuleDeployedResources_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype153, _size150) = iprot.readListBegin()
-                    for _i154 in range(_size150):
-                        _elem155 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success.append(_elem155)
-                    iprot.readListEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -30843,13 +29262,10 @@ 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('deleteApplicationModule_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRING, len(self.success))
-            for iter156 in self.success:
-                oprot.writeString(iter156.encode('utf-8') if sys.version_info[0] == 2 else iter156)
-            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)
@@ -30885,25 +29301,25 @@ class getAppModuleDeployedResources_result(object):
         return not (self == other)
 
 
-class registerApplicationInterface_args(object):
+class registerApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
      - gatewayId
-     - applicationInterface
+     - 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, 'gatewayId', 'UTF8', None, ),  # 2
-        (3, TType.STRUCT, 'applicationInterface', (airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ),  # 3
+        (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, gatewayId=None, applicationInterface=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
         self.authzToken = authzToken
         self.gatewayId = gatewayId
-        self.applicationInterface = applicationInterface
+        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:
@@ -30927,8 +29343,8 @@ class registerApplicationInterface_args(object):
                     iprot.skip(ftype)
             elif fid == 3:
                 if ftype == TType.STRUCT:
-                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                    self.applicationInterface.read(iprot)
+                    self.applicationDeployment = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.applicationDeployment.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -30940,7 +29356,7 @@ 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('registerApplicationDeployment_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -30949,9 +29365,9 @@ class registerApplicationInterface_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.applicationInterface is not None:
-            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
-            self.applicationInterface.write(oprot)
+        if self.applicationDeployment is not None:
+            oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+            self.applicationDeployment.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -30961,8 +29377,8 @@ class registerApplicationInterface_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.applicationInterface is None:
-            raise TProtocolException(message='Required field applicationInterface is unset!')
+        if self.applicationDeployment is None:
+            raise TProtocolException(message='Required field applicationDeployment is unset!')
         return
 
     def __repr__(self):
@@ -30977,7 +29393,7 @@ class registerApplicationInterface_args(object):
         return not (self == other)
 
 
-class registerApplicationInterface_result(object):
+class registerApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31049,7 +29465,7 @@ 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('registerApplicationDeployment_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)
@@ -31088,28 +29504,22 @@ class registerApplicationInterface_result(object):
         return not (self == other)
 
 
-class cloneApplicationInterface_args(object):
+class getApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
-     - existingAppInterfaceID
-     - newApplicationName
-     - 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, 'existingAppInterfaceID', 'UTF8', None, ),  # 2
-        (3, TType.STRING, 'newApplicationName', 'UTF8', None, ),  # 3
-        (4, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 4
+        (2, TType.STRING, 'appDeploymentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, existingAppInterfaceID=None, newApplicationName=None, gatewayId=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None,):
         self.authzToken = authzToken
-        self.existingAppInterfaceID = existingAppInterfaceID
-        self.newApplicationName = newApplicationName
-        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:
@@ -31128,17 +29538,7 @@ 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()
-                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()
+                    self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -31150,22 +29550,14 @@ 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('getApplicationDeployment_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.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()
@@ -31173,6 +29565,8 @@ class cloneApplicationInterface_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!')
         return
 
     def __repr__(self):
@@ -31187,7 +29581,7 @@ class cloneApplicationInterface_args(object):
         return not (self == other)
 
 
-class cloneApplicationInterface_result(object):
+class getApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31198,7 +29592,7 @@ class cloneApplicationInterface_result(object):
     """
 
     thrift_spec = (
-        (0, TType.STRING, 'success', 'UTF8', 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
@@ -31222,8 +29616,9 @@ class cloneApplicationInterface_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.appdeployment.ttypes.ApplicationDeploymentDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -31259,10 +29654,10 @@ 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('getApplicationDeployment_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)
@@ -31298,22 +29693,25 @@ class cloneApplicationInterface_result(object):
         return not (self == other)
 
 
-class getApplicationInterface_args(object):
+class updateApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
-     - appInterfaceId
+     - 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, 'appInterfaceId', 'UTF8', None, ),  # 2
+        (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, appInterfaceId=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None, applicationDeployment=None,):
         self.authzToken = authzToken
-        self.appInterfaceId = appInterfaceId
+        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:
@@ -31332,7 +29730,13 @@ 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.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:
@@ -31344,14 +29748,18 @@ 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('updateApplicationDeployment_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.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()
+        if self.applicationDeployment is not None:
+            oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+            self.applicationDeployment.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -31359,8 +29767,10 @@ 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!')
+        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):
@@ -31375,7 +29785,7 @@ class getApplicationInterface_args(object):
         return not (self == other)
 
 
-class getApplicationInterface_result(object):
+class updateApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31386,7 +29796,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.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
@@ -31410,9 +29820,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.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -31448,10 +29857,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('updateApplicationDeployment_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)
@@ -31487,25 +29896,22 @@ class getApplicationInterface_result(object):
         return not (self == other)
 
 
-class updateApplicationInterface_args(object):
+class deleteApplicationDeployment_args(object):
     """
     Attributes:
      - authzToken
-     - appInterfaceId
-     - applicationInterface
+     - 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, 'appInterfaceId', '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, 'appDeploymentId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, appInterfaceId=None, applicationInterface=None,):
+    def __init__(self, authzToken=None, appDeploymentId=None,):
         self.authzToken = authzToken
-        self.appInterfaceId = appInterfaceId
-        self.applicationInterface = applicationInterface
+        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:
@@ -31524,13 +29930,7 @@ class updateApplicationInterface_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()
-                else:
-                    iprot.skip(ftype)
-            elif fid == 3:
-                if ftype == TType.STRUCT:
-                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                    self.applicationInterface.read(iprot)
+                    self.appDeploymentId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -31542,18 +29942,14 @@ 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('deleteApplicationDeployment_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)
-            oprot.writeFieldEnd()
-        if self.applicationInterface is not None:
-            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
-            self.applicationInterface.write(oprot)
+        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()
@@ -31561,10 +29957,8 @@ class updateApplicationInterface_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.applicationInterface is None:
-            raise TProtocolException(message='Required field applicationInterface is unset!')
+        if self.appDeploymentId is None:
+            raise TProtocolException(message='Required field appDeploymentId is unset!')
         return
 
     def __repr__(self):
@@ -31579,7 +29973,7 @@ class updateApplicationInterface_args(object):
         return not (self == other)
 
 
-class updateApplicationInterface_result(object):
+class deleteApplicationDeployment_result(object):
     """
     Attributes:
      - success
@@ -31651,7 +30045,7 @@ 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('deleteApplicationDeployment_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -31690,22 +30084,22 @@ class updateApplicationInterface_result(object):
         return not (self == other)
 
 
-class deleteApplicationInterface_args(object):
+class getAllApplicationDeployments_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:
@@ -31724,7 +30118,7 @@ class deleteApplicationInterface_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:
@@ -31736,14 +30130,14 @@ 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('getAllApplicationDeployments_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()
@@ -31751,8 +30145,8 @@ class deleteApplicationInterface_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):
@@ -31767,7 +30161,7 @@ class deleteApplicationInterface_args(object):
         return not (self == other)
 
 
-class deleteApplicationInterface_result(object):
+class getAllApplicationDeployments_result(object):
     """
     Attributes:
      - success
@@ -31778,7 +30172,7 @@ class deleteApplicationInterface_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -31802,8 +30196,14 @@ class deleteApplicationInterface_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype146, _size143) = iprot.readListBegin()
+                    for _i147 in range(_size143):
+                        _elem148 = airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+                        _elem148.read(iprot)
+                        self.success.append(_elem148)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -31839,10 +30239,13 @@ 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('getAllApplicationDeployments_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 iter149 in self.success:
+                iter149.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -31878,22 +30281,22 @@ class deleteApplicationInterface_result(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaceNames_args(object):
+class getAppModuleDeployedResources_args(object):
     """
     Attributes:
      - authzToken
-     - gatewayId
+     - 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
+        (2, TType.STRING, 'appModuleId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, gatewayId=None,):
+    def __init__(self, authzToken=None, appModuleId=None,):
         self.authzToken = authzToken
-        self.gatewayId = gatewayId
+        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:
@@ -31912,7 +30315,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.appModuleId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -31924,14 +30327,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('getAppModuleDeployedResources_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()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -31939,8 +30342,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.appModuleId is None:
+            raise TProtocolException(message='Required field appModuleId is unset!')
         return
 
     def __repr__(self):
@@ -31955,7 +30358,7 @@ class getAllApplicationInterfaceNames_args(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaceNames_result(object):
+class getAppModuleDeployedResources_result(object):
     """
     Attributes:
      - success
@@ -31966,7 +30369,7 @@ class getAllApplicationInterfaceNames_result(object):
     """
 
     thrift_spec = (
-        (0, TType.MAP, 'success', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', 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
@@ -31990,14 +30393,13 @@ class getAllApplicationInterfaceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype158, _vtype159, _size157) = iprot.readMapBegin()
-                    for _i161 in range(_size157):
-                        _key162 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val163 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key162] = _val163
-                    iprot.readMapEnd()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype153, _size150) = iprot.readListBegin()
+                    for _i154 in range(_size150):
+                        _elem155 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success.append(_elem155)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32033,14 +30435,13 @@ 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('getAppModuleDeployedResources_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter164, viter165 in self.success.items():
-                oprot.writeString(kiter164.encode('utf-8') if sys.version_info[0] == 2 else kiter164)
-                oprot.writeString(viter165.encode('utf-8') if sys.version_info[0] == 2 else viter165)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRING, len(self.success))
+            for iter156 in self.success:
+                oprot.writeString(iter156.encode('utf-8') if sys.version_info[0] == 2 else iter156)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -32076,22 +30477,25 @@ class getAllApplicationInterfaceNames_result(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaces_args(object):
+class registerApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
      - 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, '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, gatewayId=None,):
+    def __init__(self, authzToken=None, gatewayId=None, applicationInterface=None,):
         self.authzToken = authzToken
         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:
@@ -32113,6 +30517,12 @@ class getAllApplicationInterfaces_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.STRUCT:
+                    self.applicationInterface = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                    self.applicationInterface.read(iprot)
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -32122,7 +30532,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('registerApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -32131,6 +30541,10 @@ class getAllApplicationInterfaces_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.applicationInterface is not None:
+            oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
+            self.applicationInterface.write(oprot)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -32139,6 +30553,8 @@ class getAllApplicationInterfaces_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.applicationInterface is None:
+            raise TProtocolException(message='Required field applicationInterface is unset!')
         return
 
     def __repr__(self):
@@ -32153,7 +30569,7 @@ class getAllApplicationInterfaces_args(object):
         return not (self == other)
 
 
-class getAllApplicationInterfaces_result(object):
+class registerApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32164,7 +30580,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.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
@@ -32188,14 +30604,8 @@ class getAllApplicationInterfaces_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype169, _size166) = iprot.readListBegin()
-                    for _i170 in range(_size166):
-                        _elem171 = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
-                        _elem171.read(iprot)
-                        self.success.append(_elem171)
-                    iprot.readListEnd()
+                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:
@@ -32231,13 +30641,10 @@ 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('registerApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter172 in self.success:
-                iter172.write(oprot)
-            oprot.writeListEnd()
+            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)
@@ -32273,22 +30680,28 @@ class getAllApplicationInterfaces_result(object):
         return not (self == other)
 
 
-class getApplicationInputs_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:
@@ -32307,7 +30720,17 @@ 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.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:
@@ -32319,14 +30742,22 @@ 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('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()
@@ -32334,8 +30765,6 @@ 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!')
         return
 
     def __repr__(self):
@@ -32350,7 +30779,7 @@ class getApplicationInputs_args(object):
         return not (self == other)
 
 
-class getApplicationInputs_result(object):
+class cloneApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32361,7 +30790,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.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
@@ -32385,14 +30814,8 @@ class getApplicationInputs_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype176, _size173) = iprot.readListBegin()
-                    for _i177 in range(_size173):
-                        _elem178 = airavata.model.application.io.ttypes.InputDataObjectType()
-                        _elem178.read(iprot)
-                        self.success.append(_elem178)
-                    iprot.readListEnd()
+                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:
@@ -32428,13 +30851,10 @@ 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('cloneApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter179 in self.success:
-                iter179.write(oprot)
-            oprot.writeListEnd()
+            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)
@@ -32470,7 +30890,7 @@ class getApplicationInputs_result(object):
         return not (self == other)
 
 
-class getApplicationOutputs_args(object):
+class getApplicationInterface_args(object):
     """
     Attributes:
      - authzToken
@@ -32516,7 +30936,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('getApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -32547,7 +30967,7 @@ class getApplicationOutputs_args(object):
         return not (self == other)
 
 
-class getApplicationOutputs_result(object):
+class getApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32558,7 +30978,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.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
@@ -32582,14 +31002,9 @@ class getApplicationOutputs_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.LIST:
-                    self.success = []
-                    (_etype183, _size180) = iprot.readListBegin()
-                    for _i184 in range(_size180):
-                        _elem185 = airavata.model.application.io.ttypes.OutputDataObjectType()
-                        _elem185.read(iprot)
-                        self.success.append(_elem185)
-                    iprot.readListEnd()
+                if ftype == TType.STRUCT:
+                    self.success = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                    self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32625,13 +31040,10 @@ 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('getApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.LIST, 0)
-            oprot.writeListBegin(TType.STRUCT, len(self.success))
-            for iter186 in self.success:
-                iter186.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)
@@ -32667,22 +31079,25 @@ class getApplicationOutputs_result(object):
         return not (self == other)
 
 
-class getAvailableAppInterfaceComputeResources_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:
@@ -32704,6 +31119,12 @@ class getAvailableAppInterfaceComputeResources_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()
@@ -32713,7 +31134,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('updateApplicationInterface_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -32722,6 +31143,10 @@ class getAvailableAppInterfaceComputeResources_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()
 
@@ -32730,6 +31155,8 @@ class getAvailableAppInterfaceComputeResources_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):
@@ -32744,7 +31171,7 @@ class getAvailableAppInterfaceComputeResources_args(object):
         return not (self == other)
 
 
-class getAvailableAppInterfaceComputeResources_result(object):
+class updateApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32755,7 +31182,7 @@ class getAvailableAppInterfaceComputeResources_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
@@ -32779,14 +31206,8 @@ class getAvailableAppInterfaceComputeResources_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype188, _vtype189, _size187) = iprot.readMapBegin()
-                    for _i191 in range(_size187):
-                        _key192 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val193 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key192] = _val193
-                    iprot.readMapEnd()
+                if ftype == TType.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -32822,14 +31243,10 @@ 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('updateApplicationInterface_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter194, viter195 in self.success.items():
-                oprot.writeString(kiter194.encode('utf-8') if sys.version_info[0] == 2 else kiter194)
-                oprot.writeString(viter195.encode('utf-8') if sys.version_info[0] == 2 else viter195)
-            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)
@@ -32865,22 +31282,22 @@ class getAvailableAppInterfaceComputeResources_result(object):
         return not (self == other)
 
 
-class registerComputeResource_args(object):
+class deleteApplicationInterface_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:
@@ -32898,9 +31315,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:
@@ -32912,14 +31328,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('deleteApplicationInterface_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()
@@ -32927,8 +31343,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):
@@ -32943,7 +31359,7 @@ class registerComputeResource_args(object):
         return not (self == other)
 
 
-class registerComputeResource_result(object):
+class deleteApplicationInterface_result(object):
     """
     Attributes:
      - success
@@ -32954,7 +31370,7 @@ class registerComputeResource_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
@@ -32978,8 +31394,8 @@ 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.BOOL:
+                    self.success = iprot.readBool()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33015,10 +31431,10 @@ 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('deleteApplicationInterface_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)
@@ -33054,22 +31470,22 @@ class registerComputeResource_result(object):
         return not (self == other)
 
 
-class getComputeResource_args(object):
+class getAllApplicationInterfaceNames_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
+     - 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, 'computeResourceId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None,):
+    def __init__(self, authzToken=None, gatewayId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
+        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:
@@ -33088,7 +31504,7 @@ class getComputeResource_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()
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33100,14 +31516,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('getAllApplicationInterfaceNames_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.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()
@@ -33115,8 +31531,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.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
         return
 
     def __repr__(self):
@@ -33131,7 +31547,7 @@ class getComputeResource_args(object):
         return not (self == other)
 
 
-class getComputeResource_result(object):
+class getAllApplicationInterfaceNames_result(object):
     """
     Attributes:
      - success
@@ -33142,7 +31558,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.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
@@ -33166,9 +31582,14 @@ 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.MAP:
+                    self.success = {}
+                    (_ktype158, _vtype159, _size157) = iprot.readMapBegin()
+                    for _i161 in range(_size157):
+                        _key162 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val163 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key162] = _val163
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33204,10 +31625,14 @@ 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('getAllApplicationInterfaceNames_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.STRUCT, 0)
-            self.success.write(oprot)
+            oprot.writeFieldBegin('success', TType.MAP, 0)
+            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
+            for kiter164, viter165 in self.success.items():
+                oprot.writeString(kiter164.encode('utf-8') if sys.version_info[0] == 2 else kiter164)
+                oprot.writeString(viter165.encode('utf-8') if sys.version_info[0] == 2 else viter165)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33243,19 +31668,22 @@ class getComputeResource_result(object):
         return not (self == other)
 
 
-class getAllComputeResourceNames_args(object):
+class getAllApplicationInterfaces_args(object):
     """
     Attributes:
      - authzToken
+     - 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, 'gatewayId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None,):
+    def __init__(self, authzToken=None, gatewayId=None,):
         self.authzToken = authzToken
+        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:
@@ -33272,6 +31700,11 @@ class getAllComputeResourceNames_args(object):
                     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)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -33281,17 +31714,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('getAllApplicationInterfaces_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()
         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!')
         return
 
     def __repr__(self):
@@ -33306,7 +31745,7 @@ class getAllComputeResourceNames_args(object):
         return not (self == other)
 
 
-class getAllComputeResourceNames_result(object):
+class getAllApplicationInterfaces_result(object):
     """
     Attributes:
      - success
@@ -33317,7 +31756,7 @@ class getAllComputeResourceNames_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.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
@@ -33341,14 +31780,14 @@ class getAllComputeResourceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype197, _vtype198, _size196) = iprot.readMapBegin()
-                    for _i200 in range(_size196):
-                        _key201 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val202 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key201] = _val202
-                    iprot.readMapEnd()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype169, _size166) = iprot.readListBegin()
+                    for _i170 in range(_size166):
+                        _elem171 = airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+                        _elem171.read(iprot)
+                        self.success.append(_elem171)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33384,14 +31823,13 @@ 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('getAllApplicationInterfaces_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter203, viter204 in self.success.items():
-                oprot.writeString(kiter203.encode('utf-8') if sys.version_info[0] == 2 else kiter203)
-                oprot.writeString(viter204.encode('utf-8') if sys.version_info[0] == 2 else viter204)
-            oprot.writeMapEnd()
+            oprot.writeFieldBegin('success', TType.LIST, 0)
+            oprot.writeListBegin(TType.STRUCT, len(self.success))
+            for iter172 in self.success:
+                iter172.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33427,25 +31865,22 @@ class getAllComputeResourceNames_result(object):
         return not (self == other)
 
 
-class updateComputeResource_args(object):
+class getApplicationInputs_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - 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.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
+        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None, computeResourceDescription=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        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:
@@ -33464,13 +31899,7 @@ class updateComputeResource_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.STRUCT:
-                    self.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
-                    self.computeResourceDescription.read(iprot)
+                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33482,18 +31911,14 @@ 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('getApplicationInputs_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)
+        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()
@@ -33501,10 +31926,8 @@ class updateComputeResource_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!')
+        if self.appInterfaceId is None:
+            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -33519,7 +31942,7 @@ class updateComputeResource_args(object):
         return not (self == other)
 
 
-class updateComputeResource_result(object):
+class getApplicationInputs_result(object):
     """
     Attributes:
      - success
@@ -33530,7 +31953,7 @@ class updateComputeResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -33554,8 +31977,14 @@ class updateComputeResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype176, _size173) = iprot.readListBegin()
+                    for _i177 in range(_size173):
+                        _elem178 = airavata.model.application.io.ttypes.InputDataObjectType()
+                        _elem178.read(iprot)
+                        self.success.append(_elem178)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33591,10 +32020,13 @@ 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('getApplicationInputs_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 iter179 in self.success:
+                iter179.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33630,22 +32062,22 @@ class updateComputeResource_result(object):
         return not (self == other)
 
 
-class deleteComputeResource_args(object):
+class getApplicationOutputs_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
+     - 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, 'computeResourceId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, computeResourceId=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
+        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:
@@ -33664,7 +32096,7 @@ class deleteComputeResource_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()
+                    self.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33676,14 +32108,14 @@ 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('getApplicationOutputs_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.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()
@@ -33691,8 +32123,8 @@ class deleteComputeResource_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.appInterfaceId is None:
+            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -33707,7 +32139,7 @@ class deleteComputeResource_args(object):
         return not (self == other)
 
 
-class deleteComputeResource_result(object):
+class getApplicationOutputs_result(object):
     """
     Attributes:
      - success
@@ -33718,7 +32150,7 @@ class deleteComputeResource_result(object):
     """
 
     thrift_spec = (
-        (0, TType.BOOL, 'success', None, 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
@@ -33742,8 +32174,14 @@ class deleteComputeResource_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.BOOL:
-                    self.success = iprot.readBool()
+                if ftype == TType.LIST:
+                    self.success = []
+                    (_etype183, _size180) = iprot.readListBegin()
+                    for _i184 in range(_size180):
+                        _elem185 = airavata.model.application.io.ttypes.OutputDataObjectType()
+                        _elem185.read(iprot)
+                        self.success.append(_elem185)
+                    iprot.readListEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33779,10 +32217,13 @@ 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('getApplicationOutputs_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 iter186 in self.success:
+                iter186.write(oprot)
+            oprot.writeListEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -33818,22 +32259,22 @@ class deleteComputeResource_result(object):
         return not (self == other)
 
 
-class registerStorageResource_args(object):
+class getAvailableAppInterfaceComputeResources_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceDescription
+     - 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, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 2
+        (2, TType.STRING, 'appInterfaceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, storageResourceDescription=None,):
+    def __init__(self, authzToken=None, appInterfaceId=None,):
         self.authzToken = authzToken
-        self.storageResourceDescription = storageResourceDescription
+        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:
@@ -33851,9 +32292,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.appInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -33865,14 +32305,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('getAvailableAppInterfaceComputeResources_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.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()
@@ -33880,8 +32320,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.appInterfaceId is None:
+            raise TProtocolException(message='Required field appInterfaceId is unset!')
         return
 
     def __repr__(self):
@@ -33896,7 +32336,7 @@ class registerStorageResource_args(object):
         return not (self == other)
 
 
-class registerStorageResource_result(object):
+class getAvailableAppInterfaceComputeResources_result(object):
     """
     Attributes:
      - success
@@ -33907,7 +32347,7 @@ class registerStorageResource_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
@@ -33931,8 +32371,14 @@ 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.MAP:
+                    self.success = {}
+                    (_ktype188, _vtype189, _size187) = iprot.readMapBegin()
+                    for _i191 in range(_size187):
+                        _key192 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val193 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key192] = _val193
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -33968,10 +32414,14 @@ 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('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 kiter194, viter195 in self.success.items():
+                oprot.writeString(kiter194.encode('utf-8') if sys.version_info[0] == 2 else kiter194)
+                oprot.writeString(viter195.encode('utf-8') if sys.version_info[0] == 2 else viter195)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34007,22 +32457,22 @@ class registerStorageResource_result(object):
         return not (self == other)
 
 
-class getStorageResource_args(object):
+class registerComputeResource_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceId
+     - 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, 'storageResourceId', '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, storageResourceId=None,):
+    def __init__(self, authzToken=None, computeResourceDescription=None,):
         self.authzToken = authzToken
-        self.storageResourceId = storageResourceId
+        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:
@@ -34040,8 +32490,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.computeResourceDescription = airavata.model.appcatalog.computeresource.ttypes.ComputeResourceDescription()
+                    self.computeResourceDescription.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -34053,14 +32504,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('registerComputeResource_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.computeResourceDescription is not None:
+            oprot.writeFieldBegin('computeResourceDescription', TType.STRUCT, 2)
+            self.computeResourceDescription.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -34068,8 +32519,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.computeResourceDescription is None:
+            raise TProtocolException(message='Required field computeResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -34084,7 +32535,7 @@ class getStorageResource_args(object):
         return not (self == other)
 
 
-class getStorageResource_result(object):
+class registerComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34095,7 +32546,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
@@ -34119,9 +32570,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:
@@ -34157,10 +32607,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('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)
@@ -34196,19 +32646,22 @@ class getStorageResource_result(object):
         return not (self == other)
 
 
-class getAllStorageResourceNames_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:
@@ -34225,6 +32678,11 @@ class getAllStorageResourceNames_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()
@@ -34234,17 +32692,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('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):
@@ -34259,7 +32723,7 @@ class getAllStorageResourceNames_args(object):
         return not (self == other)
 
 
-class getAllStorageResourceNames_result(object):
+class getComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34270,7 +32734,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.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
@@ -34294,14 +32758,9 @@ class getAllStorageResourceNames_result(object):
             if ftype == TType.STOP:
                 break
             if fid == 0:
-                if ftype == TType.MAP:
-                    self.success = {}
-                    (_ktype206, _vtype207, _size205) = iprot.readMapBegin()
-                    for _i209 in range(_size205):
-                        _key210 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        _val211 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
-                        self.success[_key210] = _val211
-                    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:
@@ -34337,14 +32796,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('getComputeResource_result')
         if self.success is not None:
-            oprot.writeFieldBegin('success', TType.MAP, 0)
-            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-            for kiter212, viter213 in self.success.items():
-                oprot.writeString(kiter212.encode('utf-8') if sys.version_info[0] == 2 else kiter212)
-                oprot.writeString(viter213.encode('utf-8') if sys.version_info[0] == 2 else viter213)
-            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)
@@ -34380,25 +32835,19 @@ class getAllStorageResourceNames_result(object):
         return not (self == other)
 
 
-class updateStorageResource_args(object):
+class getAllComputeResourceNames_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:
@@ -34415,17 +32864,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()
@@ -34435,29 +32873,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('getAllComputeResourceNames_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):
@@ -34472,7 +32898,7 @@ class updateStorageResource_args(object):
         return not (self == other)
 
 
-class updateStorageResource_result(object):
+class getAllComputeResourceNames_result(object):
     """
     Attributes:
      - success
@@ -34483,7 +32909,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
@@ -34507,8 +32933,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 = {}
+                    (_ktype197, _vtype198, _size196) = iprot.readMapBegin()
+                    for _i200 in range(_size196):
+                        _key201 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val202 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key201] = _val202
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -34544,10 +32976,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('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 kiter203, viter204 in self.success.items():
+                oprot.writeString(kiter203.encode('utf-8') if sys.version_info[0] == 2 else kiter203)
+                oprot.writeString(viter204.encode('utf-8') if sys.version_info[0] == 2 else viter204)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -34583,22 +33019,25 @@ class updateStorageResource_result(object):
         return not (self == other)
 
 
-class deleteStorageResource_args(object):
+class updateComputeResource_args(object):
     """
     Attributes:
      - authzToken
-     - storageResourceId
+     - 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, 'storageResourceId', 'UTF8', None, ),  # 2
+        (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, storageResourceId=None,):
+    def __init__(self, authzToken=None, computeResourceId=None, computeResourceDescription=None,):
         self.authzToken = authzToken
-        self.storageResourceId = storageResourceId
+        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:
@@ -34617,7 +33056,13 @@ class deleteStorageResource_args(object):
                     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()
+                    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:
@@ -34629,14 +33074,18 @@ 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('updateComputeResource_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.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()
@@ -34644,8 +33093,10 @@ class deleteStorageResource_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.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):
@@ -34660,7 +33111,7 @@ class deleteStorageResource_args(object):
         return not (self == other)
 
 
-class deleteStorageResource_result(object):
+class updateComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34732,7 +33183,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('updateComputeResource_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.BOOL, 0)
             oprot.writeBool(self.success)
@@ -34771,28 +33222,22 @@ class deleteStorageResource_result(object):
         return not (self == other)
 
 
-class addLocalSubmissionDetails_args(object):
+class deleteComputeResource_args(object):
     """
     Attributes:
      - authzToken
      - 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, '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, computeResourceId=None, priorityOrder=None, localSubmission=None,):
+    def __init__(self, authzToken=None, computeResourceId=None,):
         self.authzToken = authzToken
         self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        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:
@@ -34814,17 +33259,6 @@ class addLocalSubmissionDetails_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.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)
-                else:
-                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -34834,7 +33268,7 @@ 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('deleteComputeResource_args')
         if self.authzToken is not None:
             oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
             self.authzToken.write(oprot)
@@ -34843,14 +33277,6 @@ class addLocalSubmissionDetails_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.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)
-            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
@@ -34859,10 +33285,6 @@ class addLocalSubmissionDetails_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.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
 
     def __repr__(self):
@@ -34877,7 +33299,7 @@ class addLocalSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addLocalSubmissionDetails_result(object):
+class deleteComputeResource_result(object):
     """
     Attributes:
      - success
@@ -34888,7 +33310,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
@@ -34912,8 +33334,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:
@@ -34949,10 +33371,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('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)
@@ -34988,25 +33410,22 @@ class addLocalSubmissionDetails_result(object):
         return not (self == other)
 
 
-class updateLocalSubmissionDetails_args(object):
+class registerStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionInterfaceId
-     - localSubmission
+     - 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, '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.STRUCT, 'storageResourceDescription', (airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription, airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription.thrift_spec), None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, jobSubmissionInterfaceId=None, localSubmission=None,):
+    def __init__(self, authzToken=None, storageResourceDescription=None,):
         self.authzToken = authzToken
-        self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
-        self.localSubmission = localSubmission
+        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:
@@ -35024,14 +33443,9 @@ class updateLocalSubmissionDetails_args(object):
                 else:
                     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.localSubmission = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
-                    self.localSubmission.read(iprot)
+                    self.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
+                    self.storageResourceDescription.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -35043,18 +33457,14 @@ 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('registerStorageResource_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.localSubmission is not None:
-            oprot.writeFieldBegin('localSubmission', TType.STRUCT, 3)
-            self.localSubmission.write(oprot)
+        if self.storageResourceDescription is not None:
+            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 2)
+            self.storageResourceDescription.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -35062,10 +33472,8 @@ 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.localSubmission is None:
-            raise TProtocolException(message='Required field localSubmission is unset!')
+        if self.storageResourceDescription is None:
+            raise TProtocolException(message='Required field storageResourceDescription is unset!')
         return
 
     def __repr__(self):
@@ -35080,7 +33488,7 @@ class updateLocalSubmissionDetails_args(object):
         return not (self == other)
 
 
-class updateLocalSubmissionDetails_result(object):
+class registerStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35091,7 +33499,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
@@ -35115,8 +33523,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:
@@ -35152,10 +33560,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('registerStorageResource_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)
@@ -35191,22 +33599,22 @@ class updateLocalSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getLocalJobSubmission_args(object):
+class getStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - 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, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, storageResourceId=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        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:
@@ -35225,7 +33633,7 @@ 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.storageResourceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                 else:
                     iprot.skip(ftype)
             else:
@@ -35237,14 +33645,14 @@ 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('getStorageResource_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.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()
@@ -35252,8 +33660,8 @@ 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.storageResourceId is None:
+            raise TProtocolException(message='Required field storageResourceId is unset!')
         return
 
     def __repr__(self):
@@ -35268,7 +33676,7 @@ class getLocalJobSubmission_args(object):
         return not (self == other)
 
 
-class getLocalJobSubmission_result(object):
+class getStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35279,7 +33687,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.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
@@ -35304,7 +33712,7 @@ class getLocalJobSubmission_result(object):
                 break
             if fid == 0:
                 if ftype == TType.STRUCT:
-                    self.success = airavata.model.appcatalog.computeresource.ttypes.LOCALSubmission()
+                    self.success = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
                     self.success.read(iprot)
                 else:
                     iprot.skip(ftype)
@@ -35341,7 +33749,7 @@ 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('getStorageResource_result')
         if self.success is not None:
             oprot.writeFieldBegin('success', TType.STRUCT, 0)
             self.success.write(oprot)
@@ -35380,28 +33788,19 @@ class getLocalJobSubmission_result(object):
         return not (self == other)
 
 
-class addSSHJobSubmissionDetails_args(object):
+class getAllStorageResourceNames_args(object):
     """
     Attributes:
      - authzToken
-     - 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, '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, computeResourceId=None, priorityOrder=None, sshJobSubmission=None,):
+    def __init__(self, authzToken=None,):
         self.authzToken = authzToken
-        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:
@@ -35418,22 +33817,6 @@ class addSSHJobSubmissionDetails_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.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:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -35443,35 +33826,17 @@ 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('getAllStorageResourceNames_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)
-            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.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):
@@ -35486,7 +33851,7 @@ class addSSHJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addSSHJobSubmissionDetails_result(object):
+class getAllStorageResourceNames_result(object):
     """
     Attributes:
      - success
@@ -35497,7 +33862,7 @@ class addSSHJobSubmissionDetails_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
@@ -35521,8 +33886,14 @@ 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.MAP:
+                    self.success = {}
+                    (_ktype206, _vtype207, _size205) = iprot.readMapBegin()
+                    for _i209 in range(_size205):
+                        _key210 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        _val211 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.success[_key210] = _val211
+                    iprot.readMapEnd()
                 else:
                     iprot.skip(ftype)
             elif fid == 1:
@@ -35558,10 +33929,14 @@ 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('getAllStorageResourceNames_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 kiter212, viter213 in self.success.items():
+                oprot.writeString(kiter212.encode('utf-8') if sys.version_info[0] == 2 else kiter212)
+                oprot.writeString(viter213.encode('utf-8') if sys.version_info[0] == 2 else viter213)
+            oprot.writeMapEnd()
             oprot.writeFieldEnd()
         if self.ire is not None:
             oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -35597,28 +33972,25 @@ class addSSHJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class addSSHForkJobSubmissionDetails_args(object):
+class updateStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - computeResourceId
-     - priorityOrder
-     - sshJobSubmission
+     - 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, '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, '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, computeResourceId=None, priorityOrder=None, sshJobSubmission=None,):
+    def __init__(self, authzToken=None, storageResourceId=None, storageResourceDescription=None,):
         self.authzToken = authzToken
-        self.computeResourceId = computeResourceId
-        self.priorityOrder = priorityOrder
-        self.sshJobSubmission = sshJobSubmission
+        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:
@@ -35637,18 +34009,13 @@ class addSSHForkJobSubmissionDetails_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()
+                    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.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.storageResourceDescription = airavata.model.appcatalog.storageresource.ttypes.StorageResourceDescription()
+                    self.storageResourceDescription.read(iprot)
                 else:
                     iprot.skip(ftype)
             else:
@@ -35660,22 +34027,18 @@ 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('updateStorageResource_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)
+        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.sshJobSubmission is not None:
-            oprot.writeFieldBegin('sshJobSubmission', TType.STRUCT, 4)
-            self.sshJobSubmission.write(oprot)
+        if self.storageResourceDescription is not None:
+            oprot.writeFieldBegin('storageResourceDescription', TType.STRUCT, 3)
+            self.storageResourceDescription.write(oprot)
             oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
@@ -35683,12 +34046,10 @@ class addSSHForkJobSubmissionDetails_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.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):
@@ -35703,7 +34064,7 @@ class addSSHForkJobSubmissionDetails_args(object):
         return not (self == other)
 
 
-class addSSHForkJobSubmissionDetails_result(object):
+class updateStorageResource_result(object):
     """
     Attributes:
      - success
@@ -35714,7 +34075,7 @@ class addSSHForkJobSubmissionDetails_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
@@ -35738,8 +34099,8 @@ class addSSHForkJobSubmissionDetails_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:
@@ -35775,10 +34136,10 @@ 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('updateStorageResource_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)
@@ -35814,22 +34175,22 @@ class addSSHForkJobSubmissionDetails_result(object):
         return not (self == other)
 
 
-class getSSHJobSubmission_args(object):
+class deleteStorageResource_args(object):
     """
     Attributes:
      - authzToken
-     - jobSubmissionId
+     - 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, 'jobSubmissionId', 'UTF8', None, ),  # 2
+        (2, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 2
     )
 
-    def __init__(self, authzToken=None, jobSubmissionId=None,):
+    def __init__(self, authzToken=None, storageResourceId=None,):
         self.authzToken = authzToken
-        self.jobSubmissionId = jobSubmissionId
+        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:
@@ -35848,7 +34209,7 @@ class getSSHJobSubmission_args(object):
                     iprot.skip(ftype)
             elif fid == 2:
... 23487 lines suppressed ...

-- 
To stop receiving notification emails like this one, please contact
"commits@airavata.apache.org" <co...@airavata.apache.org>.

[airavata] 01/02: AIRAVATA-2645 Add profile services to Python thrift stubs

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

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 766cbd82cdb9362944778957f6f095a474605c42
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu Jan 18 11:30:37 2018 -0500

    AIRAVATA-2645 Add profile services to Python thrift stubs
---
 thrift-interface-descriptions/generate-thrift-stubs.sh                  | 2 ++
 .../service-cpis/profile-service/group-manager/group-manager-cpi.thrift | 1 +
 .../profile-service/group-manager/group_manager_cpi_errors.thrift       | 1 +
 .../profile-service/iam-admin-services/iam-admin-services-cpi.thrift    | 1 +
 .../iam-admin-services/iam_admin_services_cpi_errors.thrift             | 1 +
 .../profile-service/profile-tenant/profile-tenant-cpi.thrift            | 1 +
 .../profile-service/profile-tenant/profile_tenant_cpi_errors.thrift     | 1 +
 .../service-cpis/profile-service/profile-user/profile-user-cpi.thrift   | 1 +
 .../profile-service/profile-user/profile_user_cpi_errors.thrift         | 1 +
 9 files changed, 10 insertions(+)

diff --git a/thrift-interface-descriptions/generate-thrift-stubs.sh b/thrift-interface-descriptions/generate-thrift-stubs.sh
index c3ec132..54ce13e 100755
--- a/thrift-interface-descriptions/generate-thrift-stubs.sh
+++ b/thrift-interface-descriptions/generate-thrift-stubs.sh
@@ -291,6 +291,8 @@ generate_python_stubs() {
 
     $THRIFT_EXEC ${THRIFT_ARGS} --gen py ${SHARING_API_THRIFT_FILE}  || fail unable to generate Python thrift classes
 
+    $THRIFT_EXEC ${THRIFT_ARGS} --gen py ${PROFILE_SERVICE_THRIFT_FILE} || fail unable to generate Python thrift classes
+
     # For the generated CPP classes add the ASF V2 License header
     #add_license_header #PYTHON_GEN_DIR
 
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group-manager-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group-manager-cpi.thrift
index b8b304c..5455ded 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group-manager-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group-manager-cpi.thrift
@@ -30,6 +30,7 @@ include "group_manager_cpi_errors.thrift"
 
 namespace java org.apache.airavata.service.profile.groupmanager.cpi
 namespace php Airavata.Service.Profile.Groupmanager.CPI
+namespace py airavata.service.profile.groupmanager.cpi
 
 const string GROUP_MANAGER_CPI_VERSION = "0.17"
 const string GROUP_MANAGER_CPI_NAME = "GroupManagerService"
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group_manager_cpi_errors.thrift b/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group_manager_cpi_errors.thrift
index ff67622..538eca7 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group_manager_cpi_errors.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/group-manager/group_manager_cpi_errors.thrift
@@ -26,6 +26,7 @@
 
 namespace java org.apache.airavata.service.profile.groupmanager.cpi.exception
 namespace php Airavata.Service.Profile.Groupmanager.CPI.Error
+namespace py airavata.service.profile.groupmanager.cpi.error
 
 exception GroupManagerServiceException {
   1: required string message
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
index d75847a..f1659d2 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
@@ -32,6 +32,7 @@ include "iam_admin_services_cpi_errors.thrift"
 
 namespace java org.apache.airavata.service.profile.iam.admin.services.cpi
 namespace php Airavata.Service.Iam.Admin.Services.CPI
+namespace py airavata.service.profile.iam.admin.services.cpi
 
 const string IAM_ADMIN_SERVICES_CPI_VERSION = "0.17"
 const string IAM_ADMIN_SERVICES_CPI_NAME = "IamAdminServices"
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam_admin_services_cpi_errors.thrift b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam_admin_services_cpi_errors.thrift
index e64f596c..f59553c 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam_admin_services_cpi_errors.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam_admin_services_cpi_errors.thrift
@@ -26,6 +26,7 @@
 
 namespace java org.apache.airavata.service.profile.iam.admin.services.cpi.exception
 namespace php Airavata.Service.Iam.Admin.Services.CPI.Error
+namespace py airavata.service.profile.iam.admin.services.cpi.error
 
 exception IamAdminServicesException {
   1: required string message
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile-tenant-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile-tenant-cpi.thrift
index b328e8b..c7e457d 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile-tenant-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile-tenant-cpi.thrift
@@ -30,6 +30,7 @@ include "profile_tenant_cpi_errors.thrift"
 
 namespace java org.apache.airavata.service.profile.tenant.cpi
 namespace php Airavata.Service.Profile.Tenant.CPI
+namespace py airavata.service.profile.tenant.cpi
 
 const string TENANT_PROFILE_CPI_VERSION = "0.17"
 const string TENANT_PROFILE_CPI_NAME = "TenantProfileService"
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile_tenant_cpi_errors.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile_tenant_cpi_errors.thrift
index 5c75b69..0714962 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile_tenant_cpi_errors.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-tenant/profile_tenant_cpi_errors.thrift
@@ -26,6 +26,7 @@
 
 namespace java org.apache.airavata.service.profile.tenant.cpi.exception
 namespace php Airavata.Service.Profile.Tenant.CPI.Error
+namespace py airavata.service.profile.tenant.cpi.error
 
 exception TenantProfileServiceException {
   1: required string message
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
index e9cf94a..b5dbb49 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
@@ -31,6 +31,7 @@ include "profile_user_cpi_errors.thrift"
 
 namespace java org.apache.airavata.service.profile.user.cpi
 namespace php Airavata.Service.Profile.User.CPI
+namespace py airavata.service.profile.user.cpi
 
 const string USER_PROFILE_CPI_VERSION = "0.17"
 const string USER_PROFILE_CPI_NAME = "UserProfileService"
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile_user_cpi_errors.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile_user_cpi_errors.thrift
index 049144c..317a81d 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile_user_cpi_errors.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile_user_cpi_errors.thrift
@@ -26,6 +26,7 @@
 
 namespace java org.apache.airavata.service.profile.user.cpi.exception
 namespace php Airavata.Service.Profile.User.CPI.Error
+namespace py airavata.service.profile.user.cpi.error
 
 exception UserProfileServiceException {
   1: required string message

-- 
To stop receiving notification emails like this one, please contact
"commits@airavata.apache.org" <co...@airavata.apache.org>.