You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2025/02/26 17:24:08 UTC

(airavata) 12/14: cleanup airavata_sdk wrappers, error-handling in airavata_experiments

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

lahirujayathilake pushed a commit to branch cybershuttle-dev
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 71470664456325448f3e6a0af0c4cbc2664aaf82
Author: yasith <ya...@icloud.com>
AuthorDate: Sat Feb 22 15:47:04 2025 -0600

    cleanup airavata_sdk wrappers, error-handling in airavata_experiments
---
 .../airavata_experiments/airavata.py               |    5 +-
 .../airavata_sdk/clients/api_server_client.py      | 7212 +-------------------
 .../clients/credential_store_client.py             |   25 +-
 .../airavata_sdk/clients/file_handling_client.py   |    9 +-
 .../airavata_sdk/clients/group_manager_client.py   |  197 +-
 .../airavata_sdk/clients/iam_admin_client.py       |  216 +-
 .../airavata_sdk/clients/keycloak_token_fetcher.py |   19 +-
 .../clients/sftp_file_handling_client.py           |   13 +-
 .../clients/sharing_registry_client.py             |  895 +--
 .../airavata_sdk/clients/tenant_profile_client.py  |  105 +-
 .../airavata_sdk/clients/user_profile_client.py    |  115 +-
 .../clients/utils/api_server_client_util.py        |    9 +-
 .../clients/utils/data_model_creation_util.py      |   18 +-
 .../airavata_sdk/transport/utils.py                |   42 +-
 14 files changed, 394 insertions(+), 8486 deletions(-)

diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_experiments/airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_experiments/airavata.py
index ab0c273d17..a45dd4fb65 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_experiments/airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_experiments/airavata.py
@@ -625,6 +625,7 @@ class AiravataOperator:
     # configure experiment inputs
     experiment_inputs = []
     for exp_input in self.api_server_client.get_application_inputs(self.airavata_token, app_interface_id):  # type: ignore
+      assert exp_input.type is not None
       if exp_input.type < 3 and exp_input.name in data_inputs:
         value = data_inputs[exp_input.name]
         if exp_input.type == 0:
@@ -632,7 +633,9 @@ class AiravataOperator:
         else:
           exp_input.value = repr(value)
       elif exp_input.type == 3 and exp_input.name in file_refs:
-        exp_input.value = file_refs[exp_input.name]
+        ref = file_refs[exp_input.name]
+        assert isinstance(ref, str)
+        exp_input.value = ref
       elif exp_input.type == 4 and exp_input.name in file_refs:
         exp_input.value = ','.join(file_refs[exp_input.name])
       experiment_inputs.append(exp_input)
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/api_server_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/api_server_client.py
index 1534cf1cbc..7ec09f7186 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/api_server_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/api_server_client.py
@@ -14,14 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import APIServerSettings
+from airavata.api.Airavata import Client
 from airavata_sdk.transport import utils
-
-from airavata.api.error.ttypes import InvalidRequestException, AiravataClientException, AiravataSystemException, \
-    AuthorizationException
+from airavata_sdk.transport.settings import APIServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -35,7013 +33,203 @@ class APIServerClient(object):
             self._load_settings(configuration_file_location)
         elif api_server_settings is not None:
             self.api_server_settings = api_server_settings
-        self.api_server_client_pool = utils.initialize_api_client_pool(self.api_server_settings.API_SERVER_HOST,
-                                                                       self.api_server_settings.API_SERVER_PORT,
-                                                                       self.api_server_settings.API_SERVER_SECURE)
-
-    def is_user_exists(self, authz_token, gateway_id, user_name):
-        """
-        :param authz_token:
-        :param gateway_id:
-        :param user_name:
-        :return: true/false
-        """
-        try:
-            return self.api_server_client_pool.isUserExists(authz_token, gateway_id, user_name)
-        except InvalidRequestException:
-            logger.exception("Error occurred in is_user_exists, probably due to invalid parameters ")
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in is_user_exists, probably due to  client misconfiguration ")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in is_user_exists, probably due to server side error ")
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in is_user_exists, probably due to invalid authz token ")
-            raise
-
-    def add_gateway(self, authz_token, gateway):
-        """
-        :param authz_token:
-        :param gateway:
-        :return: gatewayId
-        """
-        try:
-            return self.api_server_client_pool.addGateway(authz_token, gateway)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_gateway, probably due to invalid parameters ")
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in add_gateway, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_gateway, probably due to server side error ",
-                             )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in add_gateway, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_users_in_gateway(self, authz_token, gateway_id):
-        """
-        :param authz_token:
-        :param gateway_id:
-        :return:
-        """
-        try:
-            return self.api_server_client_pool.getAllUsersInGateway(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_users_in_gateway, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_all_users_in_gateway, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_users_in_gateway, probably due to server side error ",
-                             )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_users_in_gateway, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_gateway(self, authz_token, gateway_id, updated_gateway):
-        """
-        update  the gateway with gateway_id with provided information
-        :param authz_token:
-        :param gateway_id:
-        :param updated_gateway:
-        :return:
-        """
-        try:
-            return self.api_server_client_pool.updateGateway(authz_token, gateway_id, updated_gateway)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_gateway, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_gateway, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_gateway, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_gateway, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_gateway(self, authz_token, gateway_id):
-        """
-        return gateway provided by the gateway_id
-        :param authz_token:
-        :param gateway_id:
-        :param updated_gateway:
-        :return: gateway
-        """
-        try:
-            return self.api_server_client_pool.getGateway(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_gateway, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_gateway, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_gateway, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_gateway, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_gateway(self, authz_token, gateway_id):
-        """
-        delete the given gateway
-        :param authz_token:
-        :param gateway_id:
-        :return: true/false
-        """
-        try:
-            return self.api_server_client_pool.deleteGateway(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_gateway, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in delete_gateway, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_gateway, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_gateway, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_gateways(self, authz_token):
-        """
-        get all gateways
-        :param authz_token:
-        :return: gateways
-        """
-        try:
-            return self.api_server_client_pool.getAllGateways(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_gateways, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_all_gateways, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_gateways, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_gateways, probably due to invalid authz token ",
-                             )
-            raise
-
-    def is_gateway_exist(self, authz_token, gateway_id):
-        """
-        return gateway exists
-        :param authz_token:
-        :param gateway_id:
-        :return: true/false
-        """
-        try:
-            return self.api_server_client_pool.isGatewayExist(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in is_gateway_exist, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in is_gateway_exist, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in is_gateway_exist, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in is_gateway_exist, probably due to invalid authz token ")
-            raise
-
-    def create_notification(self, authz_token, notification):
-        """
-        create notification
-        :param authz_token:
-        :param notification:
-        :return: notification id
-        """
-        try:
-            return self.api_server_client_pool.createNotification(authz_token, notification)
-        except InvalidRequestException:
-            logger.exception("Error occurred in create_notification, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in create_notification, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in create_notification, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in create_notification, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_notification(self, authz_token, notification):
-        """
-        update notification
-        :param authz_token:
-        :param notification:
-        :return: true /false
-        """
-        try:
-            return self.api_server_client_pool.updateNotification(authz_token, notification)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_notification, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_notification, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_notification, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_notification, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_notification(self, authz_token, gateway_id, notification_id):
-        """
-        delete notification
-        :param authz_token:
-        :param gateway_id:
-        :param notification_id:
-        :return: true/false
-        """
-        try:
-            return self.api_server_client_pool.deleteNotification(authz_token, gateway_id, notification_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_notification, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in delete_notification, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_notification, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_notification, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_notification(self, authz_token, gateway_id, notification_id):
-        """
-        get notification
-        :param authz_token:
-        :param gateway_id:
-        :param notification_id:
-        :return: notification
-        """
-        try:
-            return self.api_server_client_pool.getNotification(authz_token, gateway_id, notification_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_notification, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_notification, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_notification, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_notification, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_notifications(self, authz_token, gateway_id):
-        """
-        get all notifications
-        :param authz_token:
-        :param gateway_id:
-        :param notification_id:
-        :return: notifications
-        """
-        try:
-            return self.api_server_client_pool.getAllNotifications(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_notifications, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_all_notifications, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_notifications, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_notifications, probably due to invalid authz token ",
-                             )
-            raise
-
-    def generate_and_register_ssh_keys(self, authz_token, description):
-        """
-        Generate and Register SSH Key Pair with Airavata Credential Store.
-
-        @param description
-           The description field for a credential type, all type of credential can have a description.
-
-        @return airavataCredStoreToken
-          An SSH Key pair is generated and stored in the credential store and associated with users or community account
-          belonging to a Gateway.
-
-
-
-        Parameters:
-         - authz_token
-         - description
-        """
-        try:
-            return self.api_server_client_pool.generateAndRegisterSSHKeys(authz_token, description)
-        except InvalidRequestException:
-            logger.exception("Error occurred in generate_and_register_ssh_keys, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in generate_and_register_ssh_keys, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in generate_and_register_ssh_keys, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in generate_and_register_ssh_keys, probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_pwd_credential(self, authz_token, login_user_name, password, description):
-        """
-        Generate and Register Username PWD Pair with Airavata Credential Store.
-
-        @param loginUserName
-
-        @param password
-
-        @return airavataCredStoreToken
-          An SSH Key pair is generated and stored in the credential store and associated with users or community account
-          belonging to a Gateway.
-        Parameters:
-         :param description:
-         :param authz_token:
-         :param login_user_name:
-         :param authz_token:
-        """
-        try:
-            return self.api_server_client_pool.registerPwdCredential(authz_token, login_user_name, password,
-                                                                     description)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_pwd_credential, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in register_pwd_credential, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_pwd_credential, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_pwd_credential, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_credential_summary(self, authz_token, token_id):
-        """
-        get credential summary
-        Parameters:
-         - authz_token
-         - tokenId
-        """
-        try:
-            return self.api_server_client_pool.getCredentialSummary(authz_token, token_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_credential_summary, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_credential_summary, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_credential_summary, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_credential_summary, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_credential_summaries(self, authz_token, type):
-        """
-        Parameters:
-         - authz_token
-         - type
-        """
-        try:
-            return self.api_server_client_pool.getAllCredentialSummaries(authz_token, type)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_credential_summaries, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_credential_summaries, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_credential_summaries, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_credential_summaries, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_ssh_pub_key(self, authz_token, airavata_cred_store_token):
-        """
-        Parameters:
-         - authz_token
-         - airavataCredStoreToken
-        """
-        try:
-            return self.api_server_client_pool.delete_ssh_pub_key(authz_token, airavata_cred_store_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_ssh_pub_key, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in delete_ssh_pub_key, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_ssh_pub_key, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_ssh_pub_key, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_pwd_credential(self, authz_token, airavata_cred_store_token):
-        """
-        Parameters:
-         - authz_token
-         - airavataCredStoreToken
-        """
-        try:
-            return self.api_server_client_pool.deletePWDCredential(authz_token, airavata_cred_store_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_pwd_credential, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in delete_pwd_credential, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_pwd_credential, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_pwd_credential, probably due to invalid authz token ",
-                             )
-            raise
-
-    def create_project(self, authz_token, gateway_id, project):
-        """
-
-        Creates a Project with basic metadata.
-           A Project is a container of experiments.
-
-        @param gatewayId
-           The identifier for the requested gateway.
-
-        @param Project
-           The Project Object described in the workspace_model.
-
-
-
-        Parameters:
-         - authz_token
-         - gatewayId
-         - project
-        """
-        try:
-            return self.api_server_client_pool.createProject(authz_token, gateway_id, project)
-        except InvalidRequestException:
-            logger.exception("Error occurred in create_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in create_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in create_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in create_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_project(self, authz_token, project_id, updated_project):
-        """
-
-        Update an Existing Project
-
-        @param projectId
-           The projectId of the project needed an update.
-
-        @return void
-           Currently this does not return any value.
-
-
-
-        Parameters:
-         - authz_token
-         - projectId
-         - updatedProject
-        """
-        try:
-            return self.api_server_client_pool.updateProject(authz_token, project_id, updated_project)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_project(self, authz_token, project_id):
-        """
-
-        Get a Project by ID
-           This method is to obtain a project by providing a projectId.
-
-        @param projectId
-           projectId of the project you require.
-
-        @return project
-           project data model will be returned.
-
-
-
-        Parameters:
-         - authz_token
-         - projectId
-        """
-        try:
-            return self.api_server_client_pool.getProject(authz_token, project_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_project(self, authz_token, project_id):
-        """
-
-        Delete a Project
-           This method is used to delete an existing Project.
-
-        @param projectId
-           projectId of the project you want to delete.
-
-        @return boolean
-           Boolean identifier for the success or failure of the deletion operation.
-
-           NOTE: This method is not used within gateways connected with Airavata.
-
-
-
-        Parameters:
-         - authz_token
-         - projectId
-        """
-        try:
-            return self.api_server_client_pool.deleteProject(authz_token, project_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_user_projects(self, authz_token, gateway_id, user_name, limit, offset):
-        """
-
-        Get All User Projects
-        Get all Project for the user with pagination. Results will be ordered based on creation time DESC.
-
-        @param gateway_id
-           The identifier for the requested gateway.
-
-        @param user_name
-           The identifier of the user.
-
-        @param limit
-           The amount results to be fetched.
-
-        @param offset
-           The starting point of the results to be fetched.
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - userName
-         - limit
-         - offset
-        """
-        try:
-            return self.api_server_client_pool.getUserProjects(authz_token, gateway_id, user_name, limit, offset)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def search_projects(self, authz_token, gateway_id, user_name, filters, limit, offset):
-        """
-
-        Search User Projects
-        Search and get all Projects for user by project description or/and project name  with pagination.
-        Results will be ordered based on creation time DESC.
-
-        @param gatewayId
-           The unique identifier of the gateway making the request.
-
-        @param userName
-           The identifier of the user.
-
-        @param filters
-           Map of multiple filter criteria. Currenlt search filters includes Project Name and Project Description
-
-        @param limit
-           The amount results to be fetched.
-
-        @param offset
-           The starting point of the results to be fetched.
-
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - user_name
-         - filters
-         - limit
-         - offset
-        """
-        try:
-            return self.api_server_client_pool.searchProjects(authz_token, gateway_id, user_name, filters, limit,
-                                                              offset)
-        except InvalidRequestException:
-            logger.exception("Error occurred in search_projects, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in search_projects, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in search_projects, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in search_projects, probably due to invalid authz token ",
-                             )
-            raise
-
-    def search_experiments(self, authz_token, gateway_id, user_name, filters, limit, offset):
-        """
-        Search Experiments.
-        Search Experiments by using multiple filter criteria with pagination. Results will be sorted based on creation time DESC.
-
-        @param gatewayId
-              Identifier of the requested gateway.
-
-        @param userName
-              Username of the user requesting the search function.
-
-        @param filters
-              Map of multiple filter criteria. Currenlt search filters includes Experiment Name, Description, Application, etc....
-
-        @param limit
-              Amount of results to be fetched.
-
-        @param offset
-              The starting point of the results to be fetched.
-
-        @return ExperimentSummaryModel
-           List of experiments for the given search filter. Here only the Experiment summary will be returned.
-
-
-
-        Parameters:
-         - authz_token
-         - gatewayId
-         - userName
-         - filters
-         - limit
-         - offset
-        """
-        try:
-            return self.api_server_client_pool.searchExperiments(authz_token, gateway_id, user_name, filters, limit,
-                                                                 offset)
-        except InvalidRequestException:
-            logger.exception("Error occurred in search_experiments, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in search_experiments, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in search_experiments, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in search_experiments, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiment_statistics(self, authz_token, gateway_id, from_time, to_time, user_name, application_name,
-                                  resource_host_name):
-        """
-
-        Get Experiment Statistics
-        Get Experiment Statisitics for a given gateway for a specific time period. This feature is available only for admins of a particular gateway. Gateway admin access is managed by the user roles.
-
-        @param gateway_id
-              Unique identifier of the gateway making the request to fetch statistics.
-
-        @param from_time
-              Starting date time.
-
-        @param to_time
-              Ending data time.
-
-        @param user_name
-              Gateway username substring with which to further filter statistics.
-
-        @param application_name
-              Application id substring with which to further filter statistics.
-
-        @param resource_host_name
-              Hostname id substring with which to further filter statistics.
-
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - from_time
-         - to_time
-         - user_name
-         - application_name
-         - resource_host_name
-        """
-        try:
-            return self.api_server_client_pool.getExperimentStatistics(authz_token, gateway_id, from_time, to_time,
-                                                                       user_name, application_name, resource_host_name)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiment_statistics, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiment_statistics, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiment_statistics, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiment_statistics, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiments_in_project(self, authz_token, project_id, limit, offset):
-        """
-
-        Get All Experiments of the Project
-        Get Experiments within project with pagination. Results will be sorted based on creation time DESC.
-
-        @param project_id
-              Uniqie identifier of the project.
-
-        @param limit
-              Amount of results to be fetched.
-
-        @param offset
-              The starting point of the results to be fetched.
-
-
-
-        Parameters:
-         - authz_token
-         - project_id
-         - limit
-         - offset
-        """
-        try:
-            return self.api_server_client_pool.getExperimentsInProject(authz_token, project_id, limit, offset)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiments_in_project, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiments_in_project, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiments_in_project, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiments_in_project, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_user_experiments(self, authz_token, gateway_id, user_name, limit, offset):
-        """
-
-        Get All Experiments of the User
-        Get experiments by user with pagination. Results will be sorted based on creation time DESC.
-
-        @param gatewayId
-              Identifier of the requesting gateway.
-
-        @param userName
-              Username of the requested end user.
-
-        @param limit
-              Amount of results to be fetched.
-
-        @param offset
-              The starting point of the results to be fetched.
-
-
-
-        Parameters:
-         - authz_token
-         - gatewayId
-         - userName
-         - limit
-         - offset
-        """
-        try:
-            return self.api_server_client_pool.getUserExperiments(authz_token, gateway_id, user_name, limit, offset)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_user_experiments, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_user_experiments, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_user_experiments, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_user_experiments, probably due to invalid authz token ",
-                             )
-            raise
-
-    def create_experiment(self, authz_token, gateway_id, experiment):
-        """
-          *
-          * Create New Experiment
-          * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
-          *   but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client
-          *   has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
-          *   registering the experiment in a persistent store.
-          *
-          * @param gatewayId
-          *    The unique ID of the gateway where the experiment is been created.
-          *
-          * @param ExperimentModel
-          *    The create experiment will require the basic experiment metadata like the name and description, intended user,
-          *      the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment
-          *      the ExperimentMetadata is a required field.
-          *
-          * @return
-          *   The server-side generated.airavata.registry.core.experiment.globally unique identifier.
-          *
-          * @throws org.apache.airavata.model.error.InvalidRequestException
-          *    For any incorrect forming of the request itself.
-          *
-          * @throws org.apache.airavata.model.error.AiravataClientException
-          *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-          *
-          *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-          *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-          *         gateway registration steps and retry this request.
-          *
-          *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-          *         For now this is a place holder.
-          *
-          *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-          *         is implemented, the authorization will be more substantial.
-          *
-          * @throws org.apache.airavata.model.error.AiravataSystemException
-          *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-          *       rather an Airavata Administrator will be notified to take corrective action.
-          *
-        *
-
-        Parameters:
-         - authz_token
-         - gatewayId
-         - experiment
-        """
-        try:
-            return self.api_server_client_pool.createExperiment(authz_token, gateway_id, experiment)
-        except InvalidRequestException:
-            logger.exception("Error occurred in create_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in create_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in create_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in create_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_experiment(self, authz_token, experiment_id):
-        """
-
-        Delete an Experiment
-        If the experiment is not already launched experiment can be deleted.
-
-        @param authz_token
-
-        @param experiment_id
-            Experiment ID of the experimnet you want to delete.
-
-        @return boolean
-            Identifier for the success or failure of the deletion operation.
-
-
-
-        Parameters:
-         - authz_token
-         - experimentId
-        """
-        try:
-            return self.api_server_client_pool.deleteExperiment(authz_token, experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in create_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in create_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in create_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in create_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiment(self, authz_token, airavata_experiment_id):
-        """
-          *
-          * Get Experiment
-          * Fetch previously created experiment metadata.
-          *
-          * @param airavataExperimentId
-          *    The unique identifier of the requested experiment. This ID is returned during the create experiment step.
-          *
-          * @return ExperimentModel
-          *   This method will return the previously stored experiment metadata.
-          *
-          * @throws org.apache.airavata.model.error.InvalidRequestException
-          *    For any incorrect forming of the request itself.
-          *
-          * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-          *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-          *
-          * @throws org.apache.airavata.model.error.AiravataClientException
-          *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-          *
-          *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-          *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-          *         gateway registration steps and retry this request.
-          *
-          *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-          *         For now this is a place holder.
-          *
-          *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-          *         is implemented, the authorization will be more substantial.
-          *
-          * @throws org.apache.airavata.model.error.AiravataSystemException
-          *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-          *       rather an Airavata Administrator will be notified to take corrective action.
-          *
-        *
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-        """
-        try:
-            return self.api_server_client_pool.getExperiment(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiment_by_admin(self, authz_token, airavata_experiment_id):
-        """
-          *
-          * Get Experiment by an admin user
-          *
-          * Used by an admin user to fetch previously created experiment metadata.
-          *
-          * @param airavataExperimentId
-          *    The unique identifier of the requested experiment. This ID is returned during the create experiment step.
-          *
-          * @return ExperimentModel
-          *   This method will return the previously stored experiment metadata.
-          *
-          * @throws org.apache.airavata.model.error.InvalidRequestException
-          *    For any incorrect forming of the request itself.
-          *
-          * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-          *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-          *
-          * @throws org.apache.airavata.model.error.AiravataClientException
-          *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-          *
-          *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-          *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-          *         gateway registration steps and retry this request.
-          *
-          *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-          *         For now this is a place holder.
-          *
-          *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-          *         is implemented, the authorization will be more substantial.
-          *
-          * @throws org.apache.airavata.model.error.AiravataSystemException
-          *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-          *       rather an Airavata Administrator will be notified to take corrective action.
-          *
-        *
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-        """
-        try:
-            return self.api_server_client_pool.get_experiment_by_admin(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiment_by_admin, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiment_by_admin, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiment_by_admin, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiment_by_admin, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_detailed_experiment_tree(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Complete Experiment Details
-        Fetch the completed nested tree structue of previously created experiment metadata which includes processes ->
-        tasks -> jobs information.
-
-        @param airavataExperimentId
-           The identifier for the requested experiment. This is returned during the create experiment step.
-
-        @return ExperimentModel
-          This method will return the previously stored experiment metadata including application input parameters, computational resource scheduling
-          information, special input output handling and additional quality of service parameters.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-        """
-        try:
-            return self.api_server_client_pool.getDetailedExperimentTree(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_detailed_experiment_tree, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_experiment(self, authz_token, airavata_experiment_id, experiment):
-        """
-
-        Update a Previously Created Experiment
-        Configure the CREATED experiment with required inputs, scheduling and other quality of service parameters. This method only updates the experiment object within the registry.
-        The experiment has to be launched to make it actionable by the server.
-
-        @param airavataExperimentId
-           The identifier for the requested experiment. This is returned during the create experiment step.
-
-        @param ExperimentModel
-           The configuration information of the experiment with application input parameters, computational resource scheduling
-             information, special input output handling and additional quality of service parameters.
-
-        @return
-          This method call does not have a return value.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-         - experiment
-        """
-        try:
-            return self.api_server_client_pool.updateExperiment(authz_token, airavata_experiment_id, experiment)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_detailed_experiment_tree, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_experiment_configuration(self, authz_token, airavata_experiment_id, user_configuration):
-        """
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-         - user_configuration
-        """
-        try:
-            return self.api_server_client_pool.updateExperimentConfiguration(authz_token, airavata_experiment_id,
-                                                                             user_configuration)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_detailed_experiment_tree, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_detailed_experiment_tree, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_resource_scheduling(self, authz_token, airavata_experiment_id, resource_scheduling):
-        """
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-         - resource_scheduling
-        """
-        try:
-            return self.api_server_client_pool.updateResourceScheduleing(authz_token, airavata_experiment_id,
-                                                                         resource_scheduling)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to invalid authz token ",
-                             )
-            raise
-
-    def validate_experiment(self, authz_token, airavata_experiment_id):
-        """
-         *
-         * Validate experiment configuration.
-         * A true in general indicates, the experiment is ready to be launched.
-         *
-         * @param airavataExperimentId
-         *    Unique identifier of the experiment (Experimnent ID) of the experiment which need to be validated.
-         *
-         * @return boolean
-         *      Identifier for the success or failure of the validation operation.
-         *
-        *
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-        """
-        try:
-            return self.api_server_client_pool.validateExperiment(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_resource_scheduling, probably due to invalid authz token ",
-                             )
-            raise
-
-    def launch_experiment(self, authz_token, airavata_experiment_id, gateway_id):
-        """
-
-        Launch a Previously Created & Configured Experiment.
-        Airavata Server will then start processing the request and appropriate notifications and intermediate and output data will be subsequently available for this experiment.
-
-        @gateway_id
-           ID of the gateway which will launch the experiment.
-
-        @param airavata_experiment_id
-           The identifier for the requested experiment. This is returned during the create experiment step.
-
-        @return
-          This method call does not have a return value.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.launchExperiment(authz_token, airavata_experiment_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in launch_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in launch_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in launch_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in launch_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiment_status(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Experiment Status
-
-        Obtain the status of an experiment by providing the Experiment Id
-
-        @param authz_token
-
-        @param airavata_experiment_id
-            Experiment ID of the experimnet you require the status.
-
-        @return ExperimentStatus
-            ExperimentStatus model with the current status will be returned.
-
-
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-        """
-        try:
-            return self.api_server_client_pool.getExperimentStatus(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiment_status, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiment_status, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiment_status, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiment_status, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_experiment_outputs(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Experiment Outputs
-        This method to be used when need to obtain final outputs of a certain Experiment
-
-        @param authz_token
-
-        @param airavata_experiment_id
-            Experiment ID of the experimnet you need the outputs.
-
-        @return list
-            List of experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment.
-
-
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-        """
-        try:
-            return self.api_server_client_pool.getExperimentOutputs(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_experiment_outputs, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_experiment_outputs, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_experiment_outputs, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_experiment_outputs, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_intermediate_outputs(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Intermediate Experiment Outputs
-        This method to be used when need to obtain intermediate outputs of a certain Experiment
-
-        @param authz_token
-
-        @param airavataExperimentId
-            Experiment ID of the experimnet you need intermediate outputs.
-
-        @return list
-            List of intermediate experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment.
-
-
-
-        Parameters:
-         - authz_token
-         - airavataExperimentId
-        """
-        try:
-            return self.api_server_client_pool.getIntermediateOutputs(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_job_statuses(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Job Statuses for an Experiment
-        This method to be used when need to get the job status of an Experiment. An experiment may have one or many jobs; there for one or many job statuses may turnup
-
-        @param authz_token
-
-        @param airavata_experiment_id
-            Experiment ID of the experimnet you need the job statuses.
-
-        @return JobStatus
-            Job status (string) for all all the existing jobs for the experiment will be returned in the form of a map
-
-
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-        """
-        try:
-            return self.api_server_client_pool.getJobStatuses(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_intermediate_outputs, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_job_details(self, authz_token, airavata_experiment_id):
-        """
-
-        Get Job Details for all the jobs within an Experiment.
-        This method to be used when need to get the job details for one or many jobs of an Experiment.
-
-        @param authz_token
-
-        @param airavata_experiment_id
-            Experiment ID of the experimnet you need job details.
-
-        @return list of JobDetails
-            Job details.
-
-
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-        """
-        try:
-            return self.api_server_client_pool.getJobDetails(authz_token, airavata_experiment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_job_details, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_job_details, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_job_details, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_job_details, probably due to invalid authz token ",
-                             )
-            raise
-
-    def clone_experiment(self, authz_token, existing_experiment_id, new_experiment_name, new_experiment_projectId):
-        """
-
-        Clone an Existing Experiment
-        Existing specified experiment is cloned and a new name is provided. A copy of the experiment configuration is made and is persisted with new metadata.
-          The client has to subsequently update this configuration if needed and launch the cloned experiment.
-
-        @param existing_experiment_id
-           experiment name that should be used in the cloned experiment
-
-        @param new_experiment_name
-           Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
-             the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
-             should be shared public by default.
-        @param new_experiment_projectId
-           The project in which to create the cloned experiment. This is optional and if null the experiment will be created
-             in the same project as the existing experiment.
-
-        @return
-          The server-side generated.airavata.registry.core.experiment.globally unique identifier (Experiment ID) for the newly cloned experiment.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - existing_experiment_id
-         - new_experiment_name
-         - new_experiment_projectId
-        """
-        try:
-            return self.api_server_client_pool.cloneExperiment(authz_token, existing_experiment_id, new_experiment_name,
-                                                               new_experiment_projectId)
-        except InvalidRequestException:
-            logger.exception("Error occurred in clone_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in clone_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in clone_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in clone_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def clone_experiment_by_admin(self, authz_token, existing_experiment_id, new_experiment_name,
-                                  new_experiment_projectId):
-        """
-
-        Clone an Existing Experiment by an admin user
-        Existing specified experiment is cloned and a new name is provided. A copy of the experiment configuration is made and is persisted with new metadata.
-          The client has to subsequently update this configuration if needed and launch the cloned experiment.
-
-        @param new_experiment_name
-           experiment name that should be used in the cloned experiment
-
-        @param existing_experiment_id
-           Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
-             the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
-             should be shared public by default.
-        @param new_experiment_projectId
-           The project in which to create the cloned experiment. This is optional and if null the experiment will be created
-             in the same project as the existing experiment.
-
-        @return
-          The server-side generated.airavata.registry.core.experiment.globally unique identifier (Experiment ID) for the newly cloned experiment.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - existing_experiment_id
-         - new_experiment_name
-         - new_experiment_projectId
-        """
-        try:
-            return self.api_server_client_pool.cloneExperimentByAdmin(authz_token, existing_experiment_id,
-                                                                      new_experiment_name,
-                                                                      new_experiment_projectId)
-        except InvalidRequestException:
-            logger.exception("Error occurred in clone_experiment_by_admin, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in clone_experiment_by_admin, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in clone_experiment_by_admin, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in clone_experiment_by_admin, probably due to invalid authz token ",
-                             )
-            raise
-
-    def terminate_experiment(self, authz_token, airavata_experiment_id, gateway_id):
-        """
-
-        Terminate a running Experiment.
-
-        @gateway_id
-           ID of the gateway which will terminate the running Experiment.
-
-        @param airavata_experiment_id
-           The identifier of the experiment required termination. This ID is returned during the create experiment step.
-
-        @return status
-          This method call does not have a return value.
-
-        @throws org.apache.airavata.model.error.InvalidRequestException
-           For any incorrect forming of the request itself.
-
-        @throws org.apache.airavata.model.error.ExperimentNotFoundException
-           If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-
-        @throws org.apache.airavata.model.error.AiravataClientException
-           The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-
-             UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-                step, then Airavata Registry will not have a provenance area setup. The client has to follow
-                gateway registration steps and retry this request.
-
-             AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-                For now this is a place holder.
-
-             INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-                is implemented, the authorization will be more substantial.
-
-        @throws org.apache.airavata.model.error.AiravataSystemException
-           This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-              rather an Airavata Administrator will be notified to take corrective action.
-
-
-        Parameters:
-         - authz_token
-         - airavata_experiment_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.terminateExperiment(authz_token, airavata_experiment_id,
-                                                                   gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in terminate_experiment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in terminate_experiment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in terminate_experiment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in terminate_experiment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_application_module(self, authz_token, gateway_id, application_module):
-        """
-
-        Register a Application Module.
-
-        @gatewayId
-           ID of the gateway which is registering the new Application Module.
-
-        @param applicationModule
-           Application Module Object created from the datamodel.
-
-        @return appModuleId
-          Returns the server-side generated airavata appModule globally unique identifier.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - application_module
-        """
-        try:
-            return self.api_server_client_pool.registerApplicationModule(authz_token, gateway_id,
-                                                                         application_module)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_application_module, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in register_application_module, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_application_module, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_application_module, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_application_module(self, authz_token, app_module_id):
-        """
-
-        Fetch a Application Module.
-
-        @param app_module_id
-          The unique identifier of the application module required
-
-        @return applicationModule
-          Returns an Application Module Object.
-
-
-        Parameters:
-         - authz_token
-         - app_module_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationModule(authz_token, app_module_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_module, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_module, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_module, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_module, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_application_module(self, authz_token, app_module_id, application_module):
-        """
-
-        Update a Application Module.
-
-        @param app_module_id
-          The identifier for the requested application module to be updated.
-
-        @param application_module
-           Application Module Object created from the datamodel.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - appModuleId
-         - applicationModule
-        """
-        try:
-            return self.api_server_client_pool.updateApplicationModule(authz_token, app_module_id, application_module)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_application_module, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in update_application_module, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_application_module, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_application_module, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_app_modules(self, authz_token, gateway_id):
-        """
-
-        Fetch all Application Module Descriptions.
-
-        @param gateway_id
-           ID of the gateway which need to list all available application deployment documentation.
-
-        @return list
-           Returns the list of all Application Module Objects.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllAppModules(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_app_modules, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_all_app_modules, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_app_modules, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_app_modules, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_accessible_app_modules(self, authz_token, gateway_id):
-        """
-
-        Fetch all accessible Application Module Descriptions.
-
-        @param gateway_id
-           ID of the gateway which need to list all accessible application deployment documentation.
-
-        @return list
-           Returns the list of all Application Module Objects that are accessible to the user.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAccessibleAppModules(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_accessible_app_modules, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_accessible_app_modules, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_accessible_app_modules, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_accessible_app_modules, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_application_module(self, authz_token, app_module_id):
-        """
-
-        Delete an Application Module.
-
-        @param appModuleId
-          The identifier of the Application Module to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - appModuleId
-        """
-        try:
-            return self.api_server_client_pool.deleteApplicationModule(authz_token, app_module_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_application_module, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in delete_application_module, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_application_module, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_application_module, probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_application_deployment(self, authz_token, gateway_id, application_deployment):
-        """
-
-        Register an Application Deployment.
-
-        @param gateway_id
-           ID of the gateway which is registering the new Application Deployment.
-
-        @param application_deployment
-           Application Module Object created from the datamodel.
-
-        @return appDeploymentId
-          Returns a server-side generated airavata appDeployment globally unique identifier.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - application_deployment
-        """
-        try:
-            return self.api_server_client_pool.registerApplicationDeployment(authz_token, gateway_id,
-                                                                             application_deployment)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_application_deployment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_application_deployment, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_application_deployment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_application_deployment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_application_deployment(self, authz_token, app_deployment_id):
-        """
-
-        Fetch a Application Deployment.
-
-        @param app_deployment_id
-          The identifier for the requested application module
-
-        @return applicationDeployment
-          Returns a application Deployment Object.
-
-
-        Parameters:
-         - authz_token
-         - app_deployment_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationDeployment(authz_token, app_deployment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_deployment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_deployment, probably due to  client misconfiguration ",
-                             )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_deployment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_deployment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_application_deployment(self, authz_token, app_deployment_id, application_deployment):
-        """
-
-        Update an Application Deployment.
-
-        @param app_deployment_id
-          The identifier of the requested application deployment to be updated.
-
-        @param application_deployment
-           Application Deployment Object created from the datamodel.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - app_deployment_id
-         - application_deployment
-        """
-        try:
-            return self.api_server_client_pool.updateApplicationDeployment(authz_token, app_deployment_id,
-                                                                           application_deployment)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_application_deployment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_application_deployment, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_application_deployment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_application_deployment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_application_deployment(self, authz_token, app_deployment_id):
-        """
-
-        Delete an Application Deployment.
-
-        @param app_deployment_id
-          The unique identifier of application deployment to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - app_deployment_id
-        """
-        try:
-            return self.api_server_client_pool.deleteApplicationDeployment(authz_token, app_deployment_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_application_deployment, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_application_deployment, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_application_deployment, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_application_deployment, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_application_deployments(self, authz_token, gateway_id):
-        """
-
-        Fetch all Application Deployment Descriptions.
-
-        @param gatewayId
-           ID of the gateway which need to list all available application deployment documentation.
-
-        @return list<applicationDeployment.
-           Returns the list of all application Deployment Objects.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllApplicationDeployments(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_application_deployments, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_application_deployments, probably due to  client misconfiguration ",
-                )
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_application_deployments, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_application_deployments, probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_accessible_application_deployments(self, authz_token, gateway_id, permission_type):
-        """
-
-        Fetch all accessible Application Deployment Descriptions.
-
-        @param gateway_id
-           ID of the gateway which need to list all accessible application deployment documentation.
-        @param permission_type
-           ResourcePermissionType to check for this user
-
-        @return list<applicationDeployment.
-           Returns the list of all application Deployment Objects that are accessible to the user.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - permission_type
-        """
-        try:
-            return self.api_server_client_pool.get_accessible_application_deployments(authz_token, gateway_id,
-                                                                                      permission_type)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_accessible_application_deployments, probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_accessible_application_deployments,"
-                             "                                                  probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_accessible_application_deployments, probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_accessible_application_deployments, probably due to invalid authz token ",
-                )
-            raise
-
-    def get_app_module_deployed_resources(self, authz_token, app_module_id):
-        """
-        Fetch a list of Deployed Compute Hosts.
-
-        @param app_module_id
-          The identifier for the requested application module
-
-        @return list<string>
-          Returns a list of Deployed Resources.
-
-
-        Parameters:
-         - authz_token
-         - app_module_id
-        """
-        try:
-            return self.api_server_client_pool.getAppModuleDeployedResources(authz_token, app_module_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_app_module_deployed_resources, probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_app_module_deployed_resources,"
-                             "                                                  probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_app_module_deployed_resources, probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_app_module_deployed_resources, probably due to invalid authz token ",
-                )
-            raise
-
-    def get_application_deployments_for_app_module_and_group_resource_profile(self, authz_token, app_module_id,
-                                                                              group_resource_profileId):
-        """
-        Fetch a list of Application Deployments that this user can use for executing the given Application Module using the given Group Resource Profile.
-        The user must have at least READ access to the Group Resource Profile.
-
-        @param app_module_id
-           The identifier for the Application Module
-
-        @param group_resource_profileId
-           The identifier for the Group Resource Profile
-
-        @return list<ApplicationDeploymentDescription>
-           Returns a list of Application Deployments
-
-        Parameters:
-         - authz_token
-         - app_module_id
-         - group_resource_profileId
-        """
-        try:
-            return self.api_server_client_pool.getApplicationDeploymentsForAppModuleAndGroupResourceProfile(authz_token,
-                                                                                                            app_module_id,
-                                                                                                            group_resource_profileId)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             "                                                  probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_application_interface(self, authz_token, gateway_id, application_interface):
-        """
-
-        Register a Application Interface.
-
-        @param applicationInterface
-           Application Module Object created from the datamodel.
-
-        @return appInterfaceId
-          Returns a server-side generated airavata application interface globally unique identifier.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - application_interface
-        """
-        try:
-            return self.api_server_client_pool.registerApplicationInterface(authz_token, gateway_id,
-                                                                            application_interface)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             "                                                  probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to invalid authz token ",
-                             )
-            raise
-
-    def clone_application_interface(self, authz_token, existing_app_interface_id, new_application_name, gateway_id):
-        """
-
-        Clone an Application Interface.
-
-        @gateway_id
-           The identifier for the gateway profile to be requested
-
-        @param existing_app_interface_id
-           Identifier of the existing Application interface you wich to clone.
-
-        @param new_application_name
-           Name for the new application interface.
-
-        @return appInterfaceId
-           Returns a server-side generated globally unique identifier for the newly cloned application interface.
-
-
-        Parameters:
-         - authz_token
-         - existing_app_interface_id
-         - new_application_name
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.cloneApplicationInterface(authz_token, existing_app_interface_id,
-                                                                         new_application_name, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile,"
-                             "                                                  probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_deployments_for_app_module_and_group_resource_profile, "
-                             "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_application_interface(self, authz_token, app_interface_id):
-        """
-
-        Fetch an Application Interface.
-
-        @param app_interface_id
-          The identifier for the requested application interface.
-
-        @return applicationInterface
-          Returns an application Interface Object.
-
-
-        Parameters:
-         - authz_token
-         - app_interface_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationInterface(authz_token, app_interface_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_interface," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception("Error occurred in get_application_interface," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_interface, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_interface, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_application_interface(self, authz_token, app_interface_id, application_interface):
-        """
-
-        Update a Application Interface.
-
-        @param app_interface_id
-          The identifier of the requested application deployment to be updated.
-
-        @param application_interface
-           Application Interface Object created from the datamodel.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - appInterfaceId
-         - applicationInterface
-        """
-        try:
-            return self.api_server_client_pool.updateApplicationInterface(authz_token, app_interface_id,
-                                                                          application_interface)
-        except InvalidRequestException:
-            logger.exception("Error occurred in updateApplicationInterface," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in updateApplicationInterface," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in updateApplicationInterface, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in updateApplicationInterface, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_application_interface(self, authz_token, app_interface_id):
-        """
-
-        Delete an Application Interface.
-
-        @param app_interface_id
-          The identifier for the requested application interface to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - app_interface_id
-        """
-        try:
-            return self.api_server_client_pool.deleteApplicationInterface(authz_token, app_interface_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_application_interface," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_application_interface," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_application_interface, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_application_interface, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_application_interface_names(self, authz_token, gateway_id):
-        """
-
-        Fetch name and ID of  Application Interface documents.
-
-
-        @return map<applicationId, applicationInterfaceNames>
-          Returns a list of application interfaces with corresponsing ID's
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllApplicationInterfaceNames(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_application_interfaces(self, authz_token, gateway_id):
-        """
-
-        Fetch all Application Interface documents.
-
-
-        @return map<applicationId, applicationInterfaceNames>
-          Returns a list of application interfaces documents (Application Interface ID, name, description, Inputs and Outputs objects).
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllApplicationInterfaces(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_application_interface_names, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_application_inputs(self, authz_token, app_interface_id):
-        """
-
-        Fetch the list of Application Inputs.
-
-        @param app_interface_id
-          The identifier of the application interface which need inputs to be fetched.
-
-        @return list<application_interface_model.InputDataObjectType>
-          Returns a list of application inputs.
-
-
-        Parameters:
-         - authz_token
-         - app_interface_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationInputs(authz_token, app_interface_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_application_outputs(self, authz_token, app_interface_id):
-        """
-
-        Fetch list of Application Outputs.
-
-        @param appInterfaceId
-          The identifier of the application interface which need outputs to be fetched.
-
-        @return list<application_interface_model.OutputDataObjectType>
-          Returns a list of application outputs.
-
-
-        Parameters:
-         - authz_token
-         - app_interface_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationOutputs(authz_token, app_interface_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_outputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_outputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_outputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_outputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_available_app_interface_compute_resources(self, authz_token, app_interface_id):
-        """
-
-        Fetch a list of all deployed Compute Hosts for a given application interfaces.
-
-        @param app_interface_id
-          The identifier for the requested application interface.
-
-        @return map<computeResourceId, computeResourceName>
-          A map of registered compute resource id's and their corresponding hostnames.
-          Deployments of each modules listed within the interfaces will be listed.
-
-
-        Parameters:
-         - authz_token
-         - app_interface_id
-        """
-        try:
-            return self.api_server_client_pool.getAvailableAppInterfaceComputeResources(authz_token, app_interface_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_compute_resource(self, authz_token, compute_resource_description):
-        """
-        Register a Compute Resource.
-
-        @param compute_resource_description
-           Compute Resource Object created from the datamodel.
-
-        @return computeResourceId
-          Returns a server-side generated airavata compute resource globally unique identifier.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_description
-        """
-        try:
-            return self.api_server_client_pool.registerComputeResource(authz_token, compute_resource_description)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_compute_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_compute_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_compute_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_compute_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_compute_resource(self, authz_token, compute_resource_id):
-        """
-        Fetch the given Compute Resource.
-
-        @param compute_resource_id
-          The identifier for the requested compute resource
-
-        @return computeResourceDescription
-           Compute Resource Object created from the datamodel..
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-        """
-        try:
-            return self.api_server_client_pool.getComputeResource(authz_token, compute_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_compute_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_compute_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_compute_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_compute_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_compute_resource_names(self, authz_token):
-        """
-
-        Fetch all registered Compute Resources.
-
-        @return A map of registered compute resource id's and thier corresponding hostnames.
-           Compute Resource Object created from the datamodel..
-
-
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getAllComputeResourceNames(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_compute_resource_names," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_compute_resource_names," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_compute_resource_names, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_compute_resource_names, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_compute_resource(self, authz_token, compute_resource_id, compute_resource_description):
-        """
-        Update a Compute Resource.
-
-        @param compute_resource_id
-          The identifier for the requested compute resource to be updated.
-
-        @param compute_resource_description
-           Compute Resource Object created from the datamodel.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - compute_resource_description
-        """
-        try:
-            return self.api_server_client_pool.updateComputeResource(authz_token, compute_resource_id,
-                                                                     compute_resource_description)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_compute_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_compute_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_compute_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_compute_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_compute_resource(self, authz_token, compute_resource_id):
-        """
-        Delete a Compute Resource.
-
-        @param compute_resource_id
-          The identifier for the requested compute resource to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-        """
-        try:
-            return self.api_server_client_pool.deleteComputeResource(authz_token, compute_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_compute_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_compute_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_compute_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_compute_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_storage_resource(self, authz_token, storage_resource_description):
-        """
-        Register a Storage Resource.
-
-        @param storage_resource_description
-           Storge Resource Object created from the datamodel.
-
-        @return storageResourceId
-          Returns a server-side generated airavata storage resource globally unique identifier.
-
-
-        Parameters:
-         - authz_token
-         - storage_resource_description
-        """
-        try:
-            return self.api_server_client_pool.registerStorageResource(authz_token, storage_resource_description)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_storage_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_storage_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_storage_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_storage_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_storage_resource(self, authz_token, storage_resource_id):
-        """
-        Fetch the given Storage Resource.
-
-        @param storageResourceId
-          The identifier for the requested storage resource
-
-        @return storageResourceDescription
-           Storage Resource Object created from the datamodel..
-
-
-        Parameters:
-         - authz_token
-         - storage_resource_id
-        """
-        try:
-            return self.api_server_client_pool.getStorageResource(authz_token, storage_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_storage_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_storage_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_storage_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_storage_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_storage_resource_names(self, authz_token):
-        """
-        Fetch all registered Storage Resources.
-
-        @return A map of registered compute resource id's and thier corresponding hostnames.
-           Compute Resource Object created from the datamodel..
-
-
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getAllStorageResourceNames(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_storage_resource_names," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_storage_resource_names," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_storage_resource_names, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_storage_resource_names, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_storage_resource(self, authz_token, storage_resource_id, storage_resource_description):
-        """
-        Update a Storage Resource.
-
-        @param storage_resource_id
-          The identifier for the requested compute resource to be updated.
-
-        @param storage_resource_description
-           Storage Resource Object created from the datamodel.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - storage_resource_id
-         - storage_resource_description
-        """
-        try:
-            return self.api_server_client_pool.updateStorageResource(authz_token, storage_resource_id,
-                                                                     storage_resource_description)
-            logger.exception("Error occurred in update_storage_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_storage_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_storage_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_storage_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_storage_resource(self, authz_token, storage_resource_id):
-        """
-        Delete a Storage Resource.
-
-        @param storage_resource_id
-          The identifier of the requested compute resource to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - storageResourceId
-        """
-        try:
-            return self.api_server_client_pool.getApplicationInputs(authz_token, storage_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_storage_resource," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_storage_resource," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_storage_resource, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_storage_resource, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_local_submission_details(self, authz_token, compute_resource_id, priority_order, local_submission):
-        """
-        Add a Local Job Submission details to a compute resource
-         App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-
-        @param compute_resource_id
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param local_submission
-          The LOCALSubmission object to be added to the resource.
-
-        @return status
-          Returns the unique job submission id.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - priority_order
-         - local_submission
-        """
-        try:
-            return self.api_server_client_pool.addLocalSubmissionDetails(authz_token, compute_resource_id,
-                                                                         priority_order, local_submission)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_local_submission_details," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_local_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_local_submission_details, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in add_local_submission_details, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_local_submission_details(self, authz_token, job_submission_interface_id, local_submission):
-        """
-        Update the given Local Job Submission details
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be updated.
-
-        @param local_submission
-          The LOCALSubmission object to be updated.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - job_submission_interface_id
-         - local_submission
-        """
-        try:
-            return self.api_server_client_pool.updateLocalSubmissionDetails(authz_token, authz_token,
-                                                                            job_submission_interface_id,
-                                                                            local_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_local_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_local_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_local_submission_details, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_local_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_local_job_submission(self, authz_token, job_submission_id):
-        """
-        This method returns localJobSubmission object
-        @param job_submission_id
-          The identifier of the JobSubmission Interface to be retrieved.
-         @return LOCALSubmission instance
-
-
-        Parameters:
-         - authz_token
-         - job_submission_id
-        """
-        try:
-            return self.api_server_client_pool.getLocalJobSubmission(authz_token, job_submission_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_local_job_submission," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_local_job_submission," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_local_job_submission, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_local_job_submission, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_ssh_job_submission_details(self, authz_token, compute_resource_id, priority_order, ssh_job_submission):
-        """
-        Add a SSH Job Submission details to a compute resource
-         App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-
-        @param compute_resource_id
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param ssh_job_submission
-          The SSHJobSubmission object to be added to the resource.
-
-        @return status
-          Returns the unique job submission id.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - priority_order
-         - ssh_job_submission
-        """
-        try:
-            return self.api_server_client_pool.addSSHJobSubmissionDetails(authz_token, compute_resource_id,
-                                                                          priority_order, ssh_job_submission)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_ssh_job_submission_details," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_ssh_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_ssh_job_submission_details, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_ssh_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def add_ssh_fork_job_submission_details(self, authz_token, compute_resource_id, priority_order, ssh_job_submission):
-        """
-        Add a SSH_FORK Job Submission details to a compute resource
-         App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-
-        @param compute_resource_id
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param ssh_job_submission
-          The SSHJobSubmission object to be added to the resource.
-
-        @return status
-          Returns the unique job submission id.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - priority_order
-         - ssh_job_submission
-        """
-        try:
-            return self.api_server_client_pool.addSSHForkJobSubmissionDetails(authz_token, compute_resource_id,
-                                                                              priority_order, ssh_job_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_ssh_fork_job_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_ssh_fork_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_ssh_fork_job_submission_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_ssh_fork_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_ssh_job_submission(self, authz_token, job_submission_id):
-        """
-        This method returns SSHJobSubmission object
-        @param job_submission_id
-          The identifier of the JobSubmission Interface to be retrieved.
-         @return SSHJobSubmission instance
-
-
-        Parameters:
-         - authz_token
-         - job_submission_id
-        """
-        try:
-            return self.api_server_client_pool.getSSHJobSubmission(authz_token, job_submission_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_ssh_job_submission," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_ssh_job_submission," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_ssh_job_submission, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_ssh_job_submission, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_unicore_job_submission_details(self, authz_token, compute_resource_id, priority_order,
-                                           unicore_job_submission):
-        """
-
-        Add a UNICORE Job Submission details to a compute resource
-         App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-
-        @param compute_resource_id
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param unicore_job_submission
-          The UnicoreJobSubmission object to be added to the resource.
-
-        @return status
-         Returns the unique job submission id.
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - priority_order
-         - unicore_job_submission
-        """
-        try:
-            return self.api_server_client_pool.addUNICOREJobSubmissionDetails(authz_token, compute_resource_id,
-                                                                              priority_order, unicore_job_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_unicore_job_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_unicore_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_unicore_job_submission_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_unicore_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_unicore_job_submission(self, authz_token, job_submission_id):
-        """
-          *
-          * This method returns UnicoreJobSubmission object
-          *
-          * @param job_submission_id
-          *   The identifier of the JobSubmission Interface to be retrieved.
-          *  @return UnicoreJobSubmission instance
-          *
-        *
-
-        Parameters:
-         - authz_token
-         - job_submission_id
-        """
-        try:
-            return self.api_server_client_pool.getUnicoreJobSubmission(authz_token, job_submission_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_unicore_job_submission," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_unicore_job_submission," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_unicore_job_submission, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_unicore_job_submission, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_cloud_job_submission_details(self, authz_token, compute_resource_id, priority_order, cloud_submission):
-        """
-           *
-           * Add a Cloud Job Submission details to a compute resource
-           *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-           *
-           * @param compute_resource_id
-           *   The identifier of the compute resource to which JobSubmission protocol to be added
-           *
-           * @param priority_order
-           *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-           *
-           * @param cloud_submission
-           *   The SSHJobSubmission object to be added to the resource.
-           *
-           * @return status
-           *   Returns the unique job submission id.
-           *
-        *
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - priority_order
-         - cloud_submission
-        """
-        try:
-            return self.api_server_client_pool.addCloudJobSubmissionDetails(authz_token, compute_resource_id,
-                                                                            priority_order, cloud_submission)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_cloud_job_submission(self, authz_token, job_submission_id):
-        """
-           *
-           * This method returns cloudJobSubmission object
-           * @param jobSubmissionInterfaceI
-               *   The identifier of the JobSubmission Interface to be retrieved.
-           *  @return CloudJobSubmission instance
-        *
-
-        Parameters:
-         - authz_token
-         - job_submission_id
-        """
-        try:
-            return self.api_server_client_pool.getCloudJobSubmission(authz_token, job_submission_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_cloud_job_submission," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_cloud_job_submission," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_cloud_job_submission, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_cloud_job_submission, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_ssh_job_submission_details(self, authz_token, job_submission_interface_id, ssh_job_submission):
-        """
-
-        Update the given SSH Job Submission details
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be updated.
-
-        @param ssh_job_submission
-          The SSHJobSubmission object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - job_submission_interface_id
-         - ssh_job_submission
-        """
-        try:
-            return self.api_server_client_pool.updateSSHJobSubmissionDetails(authz_token, job_submission_interface_id,
-                                                                             ssh_job_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_ssh_job_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_ssh_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_ssh_job_submission_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_ssh_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_cloud_job_submission_details(self, authz_token, job_submission_interface_id, ssh_job_submission):
-        """
-
-        Update the cloud Job Submission details
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be updated.
-
-        @param ssh_job_submission
-          The CloudJobSubmission object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - job_submission_interface_id
-         - ssh_job_submission
-        """
-        try:
-            return self.api_server_client_pool.updateCloudJobSubmissionDetails(authz_token, job_submission_interface_id,
-                                                                               ssh_job_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_cloud_job_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_cloud_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_cloud_job_submission_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_cloud_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_unicore_job_submission_details(self, authz_token, job_submission_interface_id, unicore_job_submission):
-        """
-
-        Update the UNIOCRE Job Submission details
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be updated.
-
-        @param unicore_job_submission
-          The UnicoreJobSubmission object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-
-        Parameters:
-         - authz_token
-         - job_submission_interface_id
-         - unicore_job_submission
-        """
-        try:
-            return self.api_server_client_pool.updateUnicoreJobSubmissionDetails(authz_token,
-                                                                                 job_submission_interface_id,
-                                                                                 unicore_job_submission)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_unicore_job_submission_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_unicore_job_submission_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_unicore_job_submission_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_unicore_job_submission_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def add_local_data_movement_details(self, authz_token, product_uri, data_move_type, priority_order,
-                                        local_data_movement):
-        """
-
-        Add a Local data movement details to a compute resource
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param product_uri
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param data_move_type
-          DMType object to be added to the resource.
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param local_data_movement
-          The LOCALDataMovement object to be added to the resource.
-
-        @return status
-          Returns the unique job submission id.
-
-
-
-        Parameters:
-         - authz_token
-         - product_uri
-         - data_move_type
-         - priority_order
-         - local_data_movement
-        """
-        try:
-            return self.api_server_client_pool.addLocalDataMovementDetails(authz_token, product_uri, data_move_type,
-                                                                           priority_order, local_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_local_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_local_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_local_data_movement_details, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_local_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_local_data_movement_details(self, authz_token, data_movementInterface_id, local_data_movement):
-        """
-
-        Update the given Local data movement details
-
-        @param data_movementInterface_id
-          The identifier of the data movement Interface to be updated.
-
-        @param local_data_movement
-          The LOCALDataMovement object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-
-        Parameters:
-         - authz_token
-         - data_movementInterface_id
-         - local_data_movement
-        """
-        try:
-            return self.api_server_client_pool.updateLocalDataMovementDetails(authz_token, data_movementInterface_id,
-                                                                              local_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_local_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_local_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_local_data_movement_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_local_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_local_data_movement(self, authz_token, data_movement_id):
-        """
-
-        This method returns local datamovement object.
-
-        @param data_movement_id
-          The identifier of the datamovement Interface to be retrieved.
-
-         @return LOCALDataMovement instance
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_id
-        """
-        try:
-            return self.api_server_client_pool.getLocalDataMovement(authz_token, data_movement_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_local_data_movement," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_local_data_movement," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_local_data_movement, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_local_data_movement, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_scp_data_movement_details(self, authz_token, product_uri, data_move_type, priority_order,
-                                      scp_data_movement):
-        """
-
-        Add a SCP data movement details to a compute resource
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param productUri
-          The identifier of the compute resource to which JobSubmission protocol to be added
-
-        @param priorityOrder
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param scpDataMovement
-          The SCPDataMovement object to be added to the resource.
-
-        @return status
-          Returns the unique job submission id.
-
-
-        Parameters:
-         - authz_token
-         - product_uri
-         - data_move_type
-         - priority_order
-         - scp_data_movement
-        """
-        try:
-            return self.api_server_client_pool.addSCPDataMovementDetails(authz_token, product_uri, data_move_type,
-                                                                         priority_order, scp_data_movement)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_scp_data_movement_details," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_scp_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_scp_data_movement_details, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in add_scp_data_movement_details, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_scp_data_movement_details(self, authz_token, data_movement_interface_id, scp_data_movement):
-        """
-
-        Update the given scp data movement details
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param data_movement_interface_id
-          The identifier of the data movement Interface to be updated.
-
-        @param scp_data_movement
-          The SCPDataMovement object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - data_movement_interface_id
-         - scp_data_movement
-        """
-        try:
-            return self.api_server_client_pool.updateSCPDataMovementDetails(authz_token, data_movement_interface_id,
-                                                                            scp_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_scp_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_scp_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_scp_data_movement_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_scp_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_scp_data_movement(self, authz_token, data_movement_id):
-        """
-        This method returns SCP datamovement object
-
-        @param dataMovementId
-          The identifier of the datamovement Interface to be retrieved.
-
-        @return SCPDataMovement instance
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_id
-        """
-        try:
-            return self.api_server_client_pool.getSCPDataMovement(authz_token, data_movement_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_scp_data_movement," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_scp_data_movement," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_scp_data_movement, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_scp_data_movement, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_unicore_data_movement_details(self, authz_token, product_uri, data_move_type, priority_order,
-                                          unicore_data_movement):
-        """
-
-        Add a UNICORE data movement details to a compute resource
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param product_uri
-          The identifier of the compute resource to which data movement protocol to be added
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param unicore_data_movement
-          The UnicoreDataMovement object to be added to the resource.
-
-        @return status
-          Returns the unique data movement id.
-
-
-        Parameters:
-         - authz_token
-         - product_uri
-         - data_move_type
-         - priority_order
-         - unicore_data_movement
-        """
-        try:
-            return self.api_server_client_pool.addUnicoreDataMovementDetails(authz_token, product_uri, data_move_type,
-                                                                             priority_order, unicore_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_unicore_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_unicore_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_unicore_data_movement_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_unicore_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_unicore_data_movement_details(self, authz_token, data_movement_interface_id, unicore_data_movement):
-        """
-
-        Update a selected UNICORE data movement details
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param data_movement_interface_id
-          The identifier of the data movement Interface to be updated.
-
-        @param unicore_data_movement
-          The UnicoreDataMovement object to be updated.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_interface_id
-         - unicore_data_movement
-        """
-        try:
-            return self.api_server_client_pool.updateUnicoreDataMovementDetails(authz_token, data_movement_interface_id,
-                                                                                unicore_data_movement)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_unicore_data_movement(self, authz_token, data_movement_id):
-        """
-
-        This method returns UNICORE datamovement object
-
-        @param data_movement_id
-          The identifier of the datamovement Interface to be retrieved.
-
-        @return UnicoreDataMovement instance
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_id
-        """
-        try:
-            return self.api_server_client_pool.getUnicoreDataMovement(authz_token, data_movement_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_unicore_data_movement," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_unicore_data_movement," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_unicore_data_movement, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_unicore_data_movement, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_grid_ftp_data_movement_details(self, authz_token, product_uri, data_move_type, priority_order,
-                                           grid_ftp_data_movement):
-        """
-
-        Add a GridFTP data movement details to a compute resource
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param product_uri
-          The identifier of the compute resource to which dataMovement protocol to be added
-
-        @param data_move_type
-           The DMType object to be added to the resource.
-
-        @param priority_order
-          Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-
-        @param grid_ftp_data_movement
-          The GridFTPDataMovement object to be added to the resource.
-
-        @return status
-          Returns the unique data movement id.
-
-
-
-        Parameters:
-         - authz_token
-         - product_uri
-         - data_move_type
-         - priority_order
-         - grid_ftp_data_movement
-        """
-        try:
-            return self.api_server_client_pool.addGridFTPDataMovementDetails(authz_token, product_uri, data_move_type,
-                                                                             priority_order, grid_ftp_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_grid_ftp_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_grid_ftp_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_grid_ftp_data_movement_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_grid_ftp_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_grid_ftp_data_movement_details(self, authz_token, data_movement_interface_id, grid_ftp_data_movement):
-        """
-        Update the given GridFTP data movement details to a compute resource
-         App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-
-        @param data_movement_interface_id
-          The identifier of the data movement Interface to be updated.
-
-        @param grid_ftp_data_movement
-          The GridFTPDataMovement object to be updated.
-
-        @return boolean
-          Returns a success/failure of the update.
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_interface_id
-         - grid_ftp_data_movement
-        """
-        try:
-            return self.api_server_client_pool.updateGridFTPDataMovementDetails(authz_token, data_movement_interface_id,
-                                                                                grid_ftp_data_movement)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_grid_ftp_data_movement_details," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_grid_ftp_data_movement_details," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_grid_ftp_data_movement_details, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_grid_ftp_data_movement_details, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_grid_ftp_data_movement(self, authz_token, data_movement_id):
-        """
-        This method returns GridFTP datamovement object
-
-        @param data_movement_id
-          The identifier of the datamovement Interface to be retrieved.
-
-         @return GridFTPDataMovement instance
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_id
-        """
-        try:
-            return self.api_server_client_pool.getGridFTPDataMovement(authz_token, data_movement_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_grid_ftp_data_movement," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_grid_ftp_data_movement," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_grid_ftp_data_movement, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_grid_ftp_data_movement, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def change_job_submission_priority(self, authz_token, job_submission_interface_id, new_priority_order):
-        """
-        Change the priority of a given job submisison interface
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be changed
-
-        @param new_priority_order
-          The new priority of the job manager interface.
-
-        @return status
-          Returns a success/failure of the change.
-
-
-
-        Parameters:
-         - authz_token
-         - job_submission_interface_id
-         - new_priority_order
-        """
-        try:
-            return self.api_server_client_pool.changeJobSubmissionPriority(authz_token, job_submission_interface_id,
-                                                                           new_priority_order)
-        except InvalidRequestException:
-            logger.exception("Error occurred in change_job_submission_priority," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in change_job_submission_priority," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in change_job_submission_priority, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in change_job_submission_priority, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def change_data_movement_priority(self, authz_token, data_movement_interface_id, new_priority_order):
-        """
-        Change the priority of a given data movement interface
-
-        @param data_movement_interface_id
-          The identifier of the DataMovement Interface to be changed
-
-        @param new_priority_order
-          The new priority of the data movement interface.
-
-        @return status
-          Returns a success/failure of the change.
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_interface_id
-         - new_priority_order
-        """
-        try:
-            return self.api_server_client_pool.changeDataMovementPriority(authz_token, data_movement_interface_id,
-                                                                          new_priority_order)
-        except InvalidRequestException:
-            logger.exception("Error occurred in change_data_movement_priority," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in change_data_movement_priority," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in change_data_movement_priority, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in change_data_movement_priority, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def change_job_submission_priorities(self, authz_token, job_submission_priority_map):
-        """
-        Change the priorities of a given set of job submission interfaces
-
-        @param job_submission_priority_map
-          A Map of identifiers of the JobSubmission Interfaces and thier associated priorities to be set.
-
-        @return status
-          Returns a success/failure of the changes.
-
-
-        Parameters:
-         - authz_token
-         - job_submission_priority_map
-        """
-        try:
-            return self.api_server_client_pool.changeJobSubmissionPriorities(authz_token, job_submission_priority_map)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in change_job_submission_priorities," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in change_job_submission_priorities," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in change_job_submission_priorities, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in change_job_submission_priorities, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def change_data_movement_priorities(self, authz_token, data_movement_priority_map):
-        """
-        Change the priorities of a given set of data movement interfaces
-
-        @param data_movement_priority_map
-          A Map of identifiers of the DataMovement Interfaces and thier associated priorities to be set.
-
-        @return status
-          Returns a success/failure of the changes.
-
-
-
-        Parameters:
-         - authz_token
-         - data_movement_priority_map
-        """
-        try:
-            return self.api_server_client_pool.changeDataMovementPriorities(authz_token, data_movement_priority_map)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in change_data_movement_priorities," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in change_data_movement_priorities," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in change_data_movement_priorities, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in change_data_movement_priorities, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_job_submission_interface(self, authz_token, compute_resource_id, job_submission_interface_id):
-        """
-        Delete a given job submisison interface
-
-        @param job_submission_interface_id
-          The identifier of the JobSubmission Interface to be changed
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - jobSubmissionInterfaceId
-        """
-        try:
-            return self.api_server_client_pool.deleteJobSubmissionInterface(authz_token, compute_resource_id,
-                                                                            job_submission_interface_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in delete_job_submission_interface," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_job_submission_interface," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_job_submission_interface, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_job_submission_interface, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_data_movement_interface(self, authz_token, product_uri, data_movement_interface_id, data_move_type):
-        """
-        Delete a given data movement interface
-
-        @param data_movement_interface_id
-          The identifier of the DataMovement Interface to be changed
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-
-        Parameters:
-         - authz_token
-         - product_uri
-         - data_movement_interface_id
-         - data_move_type
-        """
-        try:
-            return self.api_server_client_pool.deleteDataMovementInterface(authz_token, product_uri,
-                                                                           data_movement_interface_id, data_move_type)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_data_movement_interface," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_data_movement_interface," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_data_movement_interface, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_data_movement_interface, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def register_resource_job_manager(self, authz_token, resource_job_manager):
-        """
-        Parameters:
-         - authz_token
-         - resource_job_manager
-        """
-        try:
-            return self.api_server_client_pool.registerResourceJobManager(authz_token, resource_job_manager)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_resource_job_manager," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_resource_job_manager," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_resource_job_manager, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_resource_job_manager, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_resource_job_manager(self, authz_token, resource_job_manager_id, updated_resource_job_manager):
-        """
-        Parameters:
-         - authz_token
-         - resourceJobManagerId
-         - updatedResourceJobManager
-        """
-        try:
-            return self.api_server_client_pool.updateResourceJobManager(authz_token,
-                                                                        resource_job_manager_id,
-                                                                        updated_resource_job_manager)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_resource_job_manager," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_resource_job_manager," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_resource_job_manager, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_resource_job_manager, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_resource_job_manager(self, authz_token, resource_job_manager_id):
-        """
-        Parameters:
-         - authz_token
-         - resourceJobManagerId
-        """
-        try:
-            return self.api_server_client_pool.getResourceJobManager(authz_token, resource_job_manager_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_resource_job_manager," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_resource_job_manager," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_resource_job_manager, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_resource_job_manager, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_resource_job_manager(self, authz_token, resource_job_manager_id):
-        """
-        Parameters:
-         - authz_token
-         - resource_job_manager_id
-        """
-        try:
-            return self.api_server_client_pool.deleteResourceJobManager(authz_token, resource_job_manager_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_resource_job_manager," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_resource_job_manager," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_resource_job_manager, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_resource_job_manager, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_batch_queue(self, authz_token, compute_resource_id, queue_name):
-        """
-        Delete a Compute Resource Queue
-
-        @param compute_resource_id
-          The identifier of the compute resource which has the queue to be deleted
-
-        @param queue_name
-          Name of the queue need to be deleted. Name is the uniqueue identifier for the queue within a compute resource
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - queue_name
-        """
-        try:
-            return self.api_server_client_pool.deleteBatchQueue(authz_token, compute_resource_id, queue_name)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_batch_queue," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_batch_queue," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_batch_queue, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_batch_queue, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_gateway_resource_profile(self, authz_token, gateway_resource_profile):
-        """
-        Register a Gateway Resource Profile.
-
-        @param gateway_resource_profile
-           Gateway Resource Profile Object.
-           The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
-             resource profile.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - gateway_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.registerGatewayResourceProfile(authz_token, gateway_resource_profile)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in register_gateway_resource_profile," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_gateway_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in register_gateway_resource_profile, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in register_gateway_resource_profile, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_gateway_resource_profile(self, authz_token, gateway_id):
-        """
-        Fetch the given Gateway Resource Profile.
-
-        @param gateway_id
-          The identifier for the requested gateway resource.
-
-        @return gatewayResourceProfile
-           Gateway Resource Profile Object.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getGatewayResourceProfile(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_gateway_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_gateway_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_gateway_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_gateway_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_gateway_resource_profile(self, authz_token, gateway_id, gateway_resource_profile):
-        """
-        Update a Gateway Resource Profile.
-
-        @param gateway_id
-          The identifier for the requested gateway resource to be updated.
-
-        @param gateway_resource_profile
-           Gateway Resource Profile Object.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - gateway_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.updateGatewayResourceProfile(authz_token, gateway_id,
-                                                                            gateway_resource_profile)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_gateway_resource_profile," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_gateway_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_gateway_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_gateway_resource_profile, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_gateway_resource_profile(self, authz_token, gateway_id):
-        """
-        Delete the given Gateway Resource Profile.
-
-        @param gateway_id
-          The identifier for the requested gateway resource to be deleted.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.deleteGatewayResourceProfile(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in delete_gateway_resource_profile," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_gateway_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_gateway_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_gateway_resource_profile, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def add_gateway_compute_resource_preference(self, authz_token, gateway_id, compute_resource_id,
-                                                compute_resource_preferance):
-        """
-        Add a Compute Resource Preference to a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be added.
-
-        @param compute_resource_id
-          Preferences related to a particular compute resource
-
-        @param compute_resource_preferance
-          The ComputeResourcePreference object to be added to the resource profile.
-
-        @return status
-          Returns a success/failure of the addition. If a profile already exists, this operation will fail.
-           Instead an update should be used.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - compute_resource_id
-         - compute_resource_preferance
-        """
-        try:
-            return self.api_server_client_pool.addGatewayComputeResourcePreference(authz_token, gateway_id,
-                                                                                   compute_resource_id,
-                                                                                   compute_resource_preferance)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_gateway_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_gateway_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_gateway_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_gateway_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def add_gateway_storage_preference(self, authz_token, gateway_id, storage_resource_id, storage_preference):
-        """
-        Add a Storage Resource Preference to a registered gateway profile.
-
-        @param gateway_id
-          The identifier of the gateway profile to be added.
-
-        @param storage_resource_id
-          Preferences related to a particular compute resource
-
-        @param storage_preference
-          The ComputeResourcePreference object to be added to the resource profile.
-
-        @return status
-          Returns a success/failure of the addition. If a profile already exists, this operation will fail.
-           Instead an update should be used.
-
-
-        Parameters:
-         - authz_token
-         - gatewayID
-         - storageResourceId
-         - storagePreference
-        """
-        try:
-            return self.api_server_client_pool.addGatewayStoragePreference(authz_token, authz_token, gateway_id,
-                                                                           storage_resource_id, storage_preference)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_gateway_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_gateway_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_gateway_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_gateway_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_gateway_compute_resource_preference(self, authz_token, gateway_id, compute_resource_id):
-        """
-
-        Fetch a Compute Resource Preference of a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be requested
-
-        @param compute_resource_id
-          Preferences related to a particular compute resource
-
-        @return computeResourcePreference
-          Returns the ComputeResourcePreference object.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - compute_resource_id
-        """
-        try:
-            return self.api_server_client_pool.getGatewayComputeResourcePreference(authz_token, gateway_id,
-                                                                                   compute_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_gateway_storage_preference(self, authz_token, gateway_id, storage_resourceId):
-        """
-
-        Fetch a Storage Resource Preference of a registered gateway profile.
-
-        @param gatewayID
-          The identifier of the gateway profile to request to fetch the particular storage resource preference.
-
-        @param storageResourceId
-          Identifier of the Stprage Preference required to be fetched.
-
-        @return StoragePreference
-          Returns the StoragePreference object.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - storage_resourceId
-        """
-        try:
-            return self.api_server_client_pool.getGatewayStoragePreference(authz_token, gateway_id, storage_resourceId)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_gateway_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_gateway_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_gateway_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_gateway_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_gateway_compute_resource_preferences(self, authz_token, gateway_id):
-        """
-
-        Fetch all Compute Resource Preferences of a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be requested
-
-        @return computeResourcePreference
-          Returns the ComputeResourcePreference object.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllGatewayComputeResourcePreferences(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_gateway_compute_resource_preferences," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_gateway_compute_resource_preferences," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_gateway_compute_resource_preferences, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_gateway_compute_resource_preferences, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_gateway_storage_preferences(self, authz_token, gateway_id):
-        """
-        Fetch all Storage Resource Preferences of a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be requested
-
-        @return StoragePreference
-          Returns the StoragePreference object.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllGatewayStoragePreferences(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_gateway_storage_preferences," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_gateway_storage_preferences," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_gateway_storage_preferences, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_gateway_storage_preferences, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_gateway_resource_profiles(self, authz_token):
-        """
-
-        Fetch all Gateway Profiles registered
-
-        @return GatewayResourceProfile
-          Returns all the GatewayResourcePrifle list object.
-
-
-
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getAllGatewayResourceProfiles(authz_token)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_gateway_resource_profiles," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_gateway_resource_profiles," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_gateway_resource_profiles, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_gateway_resource_profiles, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_gateway_compute_resource_preference(self, authz_token, gateway_id, compute_resource_id,
-                                                   compute_resource_preference):
-        """
-        Update a Compute Resource Preference to a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be updated.
-
-        @param compute_resource_id
-          Preferences related to a particular compute resource
-
-        @param compute_resource_preference
-          The ComputeResourcePreference object to be updated to the resource profile.
-
-        @return status
-          Returns a success/failure of the updation.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - compute_resource_id
-         - compute_resource_preference
-        """
-        try:
-            return self.api_server_client_pool.getApplicationInputs(authz_token, gateway_id, compute_resource_id,
-                                                                    compute_resource_preference)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_gateway_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_gateway_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_gateway_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_gateway_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_gateway_storage_preference(self, authz_token, gateway_id, storage_id, storage_preference):
-        """
-        Update a Storage Resource Preference of a registered gateway profile.
-
-        @param gateway_id
-          The identifier of the gateway profile to be updated.
-
-        @param storage_id
-          The Storage resource identifier of the one that you want to update
-
-        @param storage_preference
-          The storagePreference object to be updated to the resource profile.
-
-        @return status
-          Returns a success/failure of the updation.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - storage_id
-         - storage_preference
-        """
-        try:
-            return self.api_server_client_pool.updateGatewayStoragePreference(authz_token, gateway_id, storage_id,
-                                                                              storage_preference)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_gateway_storage_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_gateway_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_gateway_storage_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_gateway_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_gateway_compute_resource_preference(self, authz_token, gateway_id, compute_resource_id):
-        """
-        Delete the Compute Resource Preference of a registered gateway profile.
-
-        @param gateway_id
-          The identifier for the gateway profile to be deleted.
-
-        @param compute_resource_id
-          Preferences related to a particular compute resource
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - compute_resource_id
-        """
-        try:
-            return self.api_server_client_pool.deleteGatewayComputeResourcePreference(authz_token, gateway_id,
-                                                                                      compute_resource_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in delete_gateway_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_gateway_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in delete_gateway_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_gateway_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_gateway_storage_preference(self, authz_token, gateway_id, storage_id):
-        """
-        Delete the Storage Resource Preference of a registered gateway profile.
-
-        @param gateway_id
-          The identifier of the gateway profile to be deleted.
-
-        @param storage_id
-          ID of the storage preference you want to delete.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - gateway_id
-         - storage_id
-        """
-        try:
-            return self.api_server_client_pool.deleteGatewayStoragePreference(authz_token, gateway_id, storage_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in delete_gateway_storage_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_gateway_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in delete_gateway_storage_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_gateway_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_ssh_account_provisioners(self, authz_token):
-        """
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getSSHAccountProvisioners(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_ssh_account_provisioners," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_ssh_account_provisioners," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_ssh_account_provisioners, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_ssh_account_provisioners, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def does_user_have_ssh_account(self, authz_token, compute_resource_id, user_id):
-        """
-        Check if user has an SSH account on the given compute resource. This
-        method will only work if the compute resource has an SSHAccountProvisioner configured for it.
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - user_id
-        """
-        try:
-            return self.api_server_client_pool.doesUserHaveSSHAccount(authz_token, compute_resource_id, user_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def is_ssh_setup_complete_for_user_compute_resource_preference(self, authz_token, compute_resource_id,
-                                                                   airavata_cred_store_token):
-        """
-        Check if SSH account setup is complete for this user on the given compute resource.
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - airavata_cred_store_token
-        """
-        try:
-            return self.api_server_client_pool.isSSHSetupCompleteForUserComputeResourcePreference(authz_token,
-                                                                                                  compute_resource_id,
-                                                                                                  airavata_cred_store_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_application_inputs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_application_inputs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_application_inputs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def setup_user_compute_resource_preferences_for_ssh(self, authz_token, compute_resource_id, user_id,
-                                                        airavata_cred_store_token):
-        """
-        Setup and return a UserComputeResourcePreference object for this user to SSH into the given compute resource with
-        the given SSH credential. This method will only work if the compute resource has an SSHAccountProvisioner
-        configured for it. The returned UserComputeResourcePreference object is not saved; it is up to the client to
-        call addUserComputeResourcePreference to persist it.
-
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - user_id
-         - airavata_cred_store_token
-        """
-        try:
-            return self.api_server_client_pool.setupUserComputeResourcePreferencesForSSH(authz_token,
-                                                                                         compute_resource_id, user_id,
-                                                                                         airavata_cred_store_token)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in setup_user_compute_resource_preferences_for_ssh," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in setup_user_compute_resource_preferences_for_ssh," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in setup_user_compute_resource_preferences_for_ssh, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in setup_user_compute_resource_preferences_for_ssh, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def register_user_resource_profile(self, authz_token, user_resource_profile):
-        """
-        Register User Resource Profile.
-
-        @param user_resource_profile
-           User Resource Profile Object.
-           The userId should be obtained from Airavata user profile data model and passed to register a corresponding
-             resource profile.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - user_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.registerUserResourceProfile(authz_token, user_resource_profile)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_user_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_user_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_user_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in register_user_resource_profile, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def is_user_resource_profile_exists(self, authz_token, user_id, gateway_id):
-        """
-        Check if User Resource Profile exists.
-
-        @param user_id
-          The identifier for the requested user resource profile.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @return bool
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.isUserResourceProfileExists(authz_token, user_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in is_user_resource_profile_exists," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in is_user_resource_profile_exists," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in is_user_resource_profile_exists, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in is_user_resource_profile_exists, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_user_resource_profile(self, authz_token, user_id, gateway_id):
-        """
-        Fetch the given User Resource Profile.
-
-        @param userId
-          The identifier for the requested user resource profile.
-
-        @param gatewayID
-          The identifier to link a gateway for the requested user resource profile.
-
-        @return UserResourceProfile
-           User Resource Profile Object.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getUserResourceProfile(authz_token, user_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_user_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_user_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_user_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_user_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_user_resource_profile(self, authz_token, user_id, gateway_id, user_resource_profile):
-        """
-        Update a User Resource Profile.
-
-        @param user_id
-          The identifier for the requested user resource to be updated.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_resource_profile
-           User Resource Profile Object.
-
-        @return status
-          Returns a success/failure of the update.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.updateUserResourceProfile(authz_token, user_id, gateway_id,
-                                                                         user_resource_profile)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_user_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_user_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_user_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_user_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def delete_user_resource_profile(self, authz_token, user_id, gateway_id):
-        """
-        Delete the given User Resource Profile.
-
-        @param user_id
-          The identifier for the requested user resource to be deleted.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.deleteUserResourceProfile(authz_token, user_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_user_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_user_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_user_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in delete_user_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def add_user_compute_resource_preference(self, authz_token, user_id, gateway_id, user_compute_resource_id,
-                                             user_compute_resource_preference):
-        """
-        Add a Compute Resource Preference to a registered User profile.
-
-        @param user_id
-          The identifier for the User resource profile to be added.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_compute_resource_id
-          Preferences related to a particular compute resource
-
-        @param user_compute_resource_preference
-          The ComputeResourcePreference object to be added to the resource profile.
-
-        @return status
-          Returns a success/failure of the addition. If a profile already exists, this operation will fail.
-           Instead an update should be used.
-
-
-        Parameters:
-         - authz_token
-         - userId
-         - gatewayID
-         - userComputeResourceId
-         - userComputeResourcePreference
-        """
-        try:
-            return self.api_server_client_pool.addUserComputeResourcePreference(authz_token, user_id, gateway_id,
-                                                                                user_compute_resource_id,
-                                                                                user_compute_resource_preference)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in add_user_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_user_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in add_user_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in add_user_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def add_user_storage_preference(self, authz_token, user_id, gateway_id, user_storage_resource_id,
-                                    user_storage_preference):
-        """
-        Add a Storage Resource Preference to a registered user resource profile.
-
-        @param user_id
-          The identifier of the user resource profile to be added.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_storage_resource_id
-          Preferences related to a particular compute resource
-
-        @param user_storage_preference
-          The ComputeResourcePreference object to be added to the resource profile.
-
-        @return status
-          Returns a success/failure of the addition. If a profile already exists, this operation will fail.
-           Instead an update should be used.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_storage_resource_id
-         - user_storage_preference
-        """
-        try:
-            return self.api_server_client_pool.addUserStoragePreference(authz_token, user_id, gateway_id,
-                                                                        user_storage_resource_id,
-                                                                        user_storage_preference)
-        except InvalidRequestException:
-            logger.exception("Error occurred in add_user_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in add_user_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in add_user_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in add_user_storage_preference, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_user_compute_resource_preference(self, authz_token, user_id, gateway_id, user_compute_resource_id):
-        """
-
-        Fetch a Compute Resource Preference of a registered user resource profile.
-
-        @param user_id
-          The identifier for the user profile to be requested
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_compute_resource_id
-          Preferences related to a particular compute resource
-
-        @return computeResourcePreference
-          Returns the ComputeResourcePreference object.
-
-
-        Parameters:
-         - authz_token
-         - userId
-         - gatewayID
-         - userComputeResourceId
-        """
-        try:
-            return self.api_server_client_pool.getUserComputeResourcePreference(authz_token, user_id, gateway_id,
-                                                                                user_compute_resource_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_user_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_user_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_user_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_user_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_user_storage_preference(self, authz_token, user_id, gateway_id, user_storage_resource_id):
-        """
-
-        Fetch a Storage Resource Preference of a registered user resource profile.
-
-        @param user_id
-          The identifier of the user resource profile to request to fetch the particular storage resource preference.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_storage_resource_id
-          Identifier of the Stprage Preference required to be fetched.
-
-        @return UserStoragePreference
-          Returns the StoragePreference object.
-
-
-        Parameters:
-         - authz_token
-         - userId
-         - gatewayID
-         - userStorageResourceId
-        """
-        try:
-            return self.api_server_client_pool.getUserStoragePreference(authz_token, user_id, gateway_id,
-                                                                        user_storage_resource_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_user_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_user_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_user_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_user_storage_preference, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_user_compute_resource_preferences(self, authz_token, user_id, gateway_id):
-        """
-
-        Fetch all Compute Resource Preferences of a registered gateway profile.
-
-        @param user_id
-          The identifier of the user resource profile to request to fetch the particular storage resource preference.
-
-        @param gateway_id
-          The identifier for the gateway profile to be requested
-
-        @return computeResourcePreference
-          Returns the ComputeResourcePreference object.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getAllUserComputeResourcePreferences(authz_token, user_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_user_compute_resource_preferences," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_user_compute_resource_preferences," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_user_compute_resource_preferences, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_user_compute_resource_preferences, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_user_storage_preferences(self, authz_token, user_id, gateway_id):
-        """
-        Fetch all User Storage Resource Preferences of a registered user profile.
-
-        @param user_id
-          The identifier of the user resource profile to request to fetch the particular storage resource preference.
-
-        @param gateway_id
-          The identifier for the gateway profile to be requested
-
-        @return StoragePreference
-          Returns the StoragePreference object.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getApplicationInputs(authz_token, user_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_user_storage_preferences," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_user_storage_preferences," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_user_storage_preferences, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_user_storage_preferences, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_user_resource_profiles(self, authz_token):
-        """
-
-        Fetch all user resources Profiles registered
-
-        @return UserResourceProfile
-          Returns all the UserResourcePrifle list object.
-
-
-
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getAllUserResourceProfiles(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_user_resource_profiles," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_user_resource_profiles," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_user_resource_profiles, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_user_resource_profiles, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_user_compute_resource_preference(self, authz_token, user_id, gateway_id, user_compute_resourceId,
-                                                user_compute_resource_preference):
-        """
-        Update a Compute Resource Preference to a registered user resource profile.
-
-        @param user_id
-          The identifier for the user profile to be updated.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_compute_resourceId
-          Preferences related to a particular compute resource
-
-        @param user_compute_resource_preference
-          The ComputeResourcePreference object to be updated to the resource profile.
-
-        @return status
-          Returns a success/failure of the updation.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_compute_resourceId
-         - user_compute_resource_preference
-        """
-        try:
-            return self.api_server_client_pool.updateUserComputeResourcePreference(authz_token, user_id, gateway_id,
-                                                                                   user_compute_resourceId,
-                                                                                   user_compute_resource_preference)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in update_user_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_user_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in update_user_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_user_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def update_user_storage_preference(self, authz_token, user_id, gateway_id, user_storage_id,
-                                       user_storage_preference):
-        """
-        Update a Storage Resource Preference of a registered user resource profile.
-
-        @param user_id
-          The identifier of the user resource profile to be updated.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_storage_id
-          The Storage resource identifier of the one that you want to update
-
-        @param user_storage_preference
-          The storagePreference object to be updated to the resource profile.
-
-        @return status
-          Returns a success/failure of the updation.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_storage_id
-         - user_storage_preference
-        """
-        try:
-            return self.api_server_client_pool.updateUerStoragePreference(authz_token, user_id, gateway_id,
-                                                                          user_storage_id, user_storage_preference)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_user_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_user_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_user_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in update_user_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_user_compute_resource_preference(self, authz_token, user_id, gateway_id, user_compute_resource_id):
-        """
-        Delete the Compute Resource Preference of a registered user resource profile.
-
-        @param user_id
-          The identifier for the user resource profile to be deleted.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_compute_resource_id
-          Preferences related to a particular compute resource
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_compute_resource_id
-        """
-        try:
-            return self.api_server_client_pool.deleteUserComputeResourcePreference(authz_token, user_id, gateway_id,
-                                                                                   user_compute_resource_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in delete_user_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_user_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in delete_user_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_user_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def delete_user_storage_preference(self, authz_token, user_id, gateway_id, user_storage_id):
-        """
-        Delete the Storage Resource Preference of a registered user resource profile.
-
-        @param user_id
-          The identifier of the user profile to be deleted.
-
-        @param gateway_id
-          The identifier to link a gateway for the requested user resource profile.
-
-        @param user_storage_id
-          ID of the storage preference you want to delete.
-
-        @return status
-          Returns a success/failure of the deletion.
-
-
-        Parameters:
-         - authz_token
-         - user_id
-         - gateway_id
-         - user_storage_id
-        """
-        try:
-            return self.api_server_client_pool.deleteUserStoragePreference(authz_token, user_id, gateway_id,
-                                                                           user_storage_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in delete_user_storage_preference," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in delete_user_storage_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in delete_user_storage_preference, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in delete_user_storage_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_latest_queue_statuses(self, authz_token):
-        """
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getLatestQueueStatuses(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_latest_queue_statuses," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_latest_queue_statuses," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_latest_queue_statuses, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_latest_queue_statuses, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_data_product(self, authz_token, data_product_model):
-        """
-        API Methods related to replica catalog
-
-
-        Parameters:
-         - authz_token
-         - data_product_model
-        """
-        try:
-            return self.api_server_client_pool.registerDataProduct(authz_token, data_product_model)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_data_product," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_data_product," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_data_product, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_data_product, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_data_product(self, authz_token, data_product_uri):
-        """
-        Parameters:
-         - authz_token
-         - data_product_uri
-        """
-        try:
-            return self.api_server_client_pool.getDataProduct(authz_token, data_product_uri)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_data_product," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_data_product," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_data_product, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_data_product, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def register_replica_location(self, authz_token, replica_location_model):
-        """
-        Parameters:
-         - authz_token
-         - replica_location_model
-        """
-        try:
-            return self.api_server_client_pool.registerReplicaLocation(authz_token, replica_location_model)
-        except InvalidRequestException:
-            logger.exception("Error occurred in register_replica_location," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in register_replica_location," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in register_replica_location, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in register_replica_location, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_parent_data_product(self, authz_token, product_uri):
-        """
-        Parameters:
-         - authz_token
-         - product_uri
-        """
-        try:
-            return self.api_server_client_pool.getParentDataProduct(authz_token, product_uri)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_parent_data_product," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_parent_data_product," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_parent_data_product, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_parent_data_product, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_child_data_products(self, authz_token, product_uri):
-        """
-        Parameters:
-         - authz_token
-         - product_uri
-        """
-        try:
-            return self.api_server_client_pool.getChildDataProducts(authz_token, product_uri)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_child_data_products," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_child_data_products," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_child_data_products, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_child_data_products, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def share_resource_with_users(self, authz_token, resource_id, user_permission_list):
-        """
-        Group Manager and Data Sharing Related API methods
-
-
-        Parameters:
-         - authz_token
-         - resource_id
-         - user_permission_list
-        """
-        try:
-            return self.api_server_client_pool.shareResourceWithUsers(authz_token, resource_id, user_permission_list)
-        except InvalidRequestException:
-            logger.exception("Error occurred in share_resource_with_users," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in share_resource_with_users," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in share_resource_with_users, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in share_resource_with_users, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def share_resource_with_groups(self, authz_token, resource_id, group_permission_list):
-        """
-        Parameters:
-         - authz_token
-         - resourceId
-         - groupPermissionList
-        """
-        try:
-            return self.api_server_client_pool.shareResourceWithGroups(authz_token, resource_id, group_permission_list)
-        except InvalidRequestException:
-            logger.exception("Error occurred in share_resource_with_groups," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in share_resource_with_groups," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in share_resource_with_groups, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in share_resource_with_groups, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def revoke_sharing_of_resource_from_users(self, authz_token, resource_id, user_permission_list):
-        """
-        Parameters:
-         - authz_token
-         - resource_id
-         - user_permission_list
-        """
-        try:
-            return self.api_server_client_pool.revokeSharingOfResourceFromUsers(authz_token, resource_id,
-                                                                                user_permission_list)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_users," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_users," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_users, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_users, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def revoke_sharing_of_resource_from_groups(self, authz_token, resource_id, group_permission_list):
-        """
-        Parameters:
-         - authz_token
-         - resourceId
-         - groupPermissionList
-        """
-        try:
-            return self.api_server_client_pool.revokeSharingOfResourceFromGroups(authz_token, resource_id,
-                                                                                 group_permission_list)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_groups," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_groups," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_groups, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in revoke_sharing_of_resource_from_groups, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_accessible_users(self, authz_token, resource_id, permission_type):
-        """
-        Parameters:
-         - authz_token
-         - resource_id
-         - permission_type
-        """
-        try:
-            return self.api_server_client_pool.getAllAccessibleUsers(authz_token, resource_id, permission_type)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_accessible_users," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_accessible_users," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_accessible_users, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_accessible_users, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_accessible_groups(self, authz_token, resource_id, permission_type):
-        """
-        Parameters:
-         - authz_token
-         - resource_id
-         - permission_type
-        """
-        try:
-            return self.api_server_client_pool.getAllAccessibleGroups(authz_token, resource_id, permission_type)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_all_accessible_groups," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_accessible_groups," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_all_accessible_groups, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_all_accessible_groups, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_all_directly_accessible_users(self, authz_token, resource_id, permission_type):
-        """
-        Parameters:
-         - authz_token
-         - resource_id
-         - permission_type
-        """
-        try:
-            return self.api_server_client_pool.getAllDirectlyAccessibleUsers(authz_token, resource_id, permission_type)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_users," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_users," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_users, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_users, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_all_directly_accessible_groups(self, authz_token, resource_id, permission_type):
-        """
-        Parameters:
-         - authz_token
-         - resource_id
-         - permission_type
-        """
-        try:
-            return self.api_server_client_pool.getAllDirectlyAccessibleGroups(authz_token, resource_id, permission_type)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_groups," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_groups," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_groups, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_all_directly_accessible_groups, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def user_has_access(self, authz_token, resource_id, permission_type):
-        """
-        Parameters:
-         - authz_token
-         - resourceId
-         - permissionType
-        """
-        try:
-            return self.api_server_client_pool.userHasAccess(authz_token, resource_id, permission_type)
-        except InvalidRequestException:
-            logger.exception("Error occurred in user_has_access," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in user_has_access," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in user_has_access, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in user_has_access, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def create_group_resource_profile(self, authz_token, group_resource_profile):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.createGroupResourceProfile(authz_token, group_resource_profile)
-        except InvalidRequestException:
-            logger.exception("Error occurred in create_group_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in create_group_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in create_group_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in create_group_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def update_group_resource_profile(self, authz_token, group_resource_profile):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile
-        """
-        try:
-            return self.api_server_client_pool.updateGroupResourceProfile(authz_token, group_resource_profile)
-        except InvalidRequestException:
-            logger.exception("Error occurred in update_group_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in update_group_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in update_group_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in update_group_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_group_resource_profile(self, authz_token, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupResourceProfile(authz_token, group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_group_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_group_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_group_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def remove_group_resource_profile(self, authz_token, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.removeGroupResourceProfile(authz_token, group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in remove_group_resource_profile," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_group_resource_profile," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in remove_group_resource_profile, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in remove_group_resource_profile, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_group_resource_list(self, authz_token, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupResourceList(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_group_resource_list," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_resource_list," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_group_resource_list, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_group_resource_list, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def remove_group_compute_prefs(self, authz_token, compute_resource_id, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.removeGroupComputePrefs(authz_token, compute_resource_id,
-                                                                       group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in remove_group_compute_prefs," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_group_compute_prefs," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in remove_group_compute_prefs, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in remove_group_compute_prefs, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def remove_group_compute_resource_policy(self, authz_token, resource_policy_id):
-        """
-        Parameters:
-         - authz_token
-         - resource_policy_id
-        """
-        try:
-            return self.api_server_client_pool.removeGroupComputeResourcePolicy(authz_token, resource_policy_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in remove_group_compute_resource_policy," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_group_compute_resource_policy," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in remove_group_compute_resource_policy, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in remove_group_compute_resource_policy, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def remove_group_batch_queue_resource_policy(self, authz_token, resource_policy_id):
-        """
-        Parameters:
-         - authz_token
-         - resource_policy_id
-        """
-        try:
-            return self.api_server_client_pool.removeGroupBatchQueueResourcePolicy(authz_token, resource_policy_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in remove_group_batch_queue_resource_policy," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_group_batch_queue_resource_policy," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in remove_group_batch_queue_resource_policy, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in remove_group_batch_queue_resource_policy, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_group_compute_resource_preference(self, authz_token, compute_resource_id, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - compute_resource_id
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupComputeResourcePreference(authz_token, compute_resource_id,
-                                                                                 group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_preference," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_preference," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_preference, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_preference, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_group_compute_resource_policy(self, authz_token, resource_policy_id):
-        """
-        Parameters:
-         - authz_token
-         - resource_policy_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupComputeResourcePolicy(authz_token, resource_policy_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_batch_queue_resource_policy(self, authz_token, resource_policy_id):
-        """
-        Parameters:
-         - authz_token
-         - resource_policy_id
-        """
-        try:
-            return self.api_server_client_pool.getBatchQueueResourcePolicy(authz_token, resource_policy_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_batch_queue_resource_policy," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_batch_queue_resource_policy," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_batch_queue_resource_policy, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_batch_queue_resource_policy, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_group_compute_resource_pref_list(self, authz_token, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupComputeResourcePrefList(authz_token, group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_pref_list," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_pref_list," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_pref_list, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_pref_list, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_group_batch_queue_resource_policy_list(self, authz_token, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupBatchQueueResourcePolicyList(authz_token,
-                                                                                    group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_group_batch_queue_resource_policy_list," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_batch_queue_resource_policy_list," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_group_batch_queue_resource_policy_list, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_group_batch_queue_resource_policy_list, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_group_compute_resource_policy_list(self, authz_token, group_resource_profile_id):
-        """
-        Parameters:
-         - authz_token
-         - group_resource_profile_id
-        """
-        try:
-            return self.api_server_client_pool.getGroupComputeResourcePolicyList(authz_token, group_resource_profile_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy_list," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy_list," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy_list, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_group_compute_resource_policy_list, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def get_gateway_groups(self, authz_token):
-        """
-        GatewayGroups API methods
-
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.api_server_client_pool.getGatewayGroups(authz_token)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_gateway_groups," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_gateway_groups," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_gateway_groups, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_gateway_groups, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_parser(self, authz_token, parser_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - parserId
-         - gatewayId
-        """
-        try:
-            return self.api_server_client_pool.getParser(authz_token, parser_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_parser," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_parser," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_parser, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_parser, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def save_parser(self, authz_token, parser):
-        """
-        Parameters:
-         - authz_token
-         - parser
-        """
-        try:
-            return self.api_server_client_pool.saveParser(authz_token, parser)
-        except InvalidRequestException:
-            logger.exception("Error occurred in save_parser," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in save_parser," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in save_parser, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in save_parser, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def list_all_parsers(self, authz_token, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.listAllParsers(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in list_all_parsers," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in list_all_parsers," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in list_all_parsers, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in list_all_parsers, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def remove_parser(self, authz_token, parser_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - parser_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.removeParser(authz_token, parser_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in remove_parser," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_parser," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in remove_parser, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in remove_parser, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_parsing_template(self, authz_token, template_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - template_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.getParsingTemplate(authz_token, template_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in get_parsing_template," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_parsing_template," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in get_parsing_template, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in get_parsing_template, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def get_parsing_templates_for_experiment(self, authz_token, experiment_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - experimentId
-         - gatewayId
-        """
-        try:
-            return self.api_server_client_pool.getParsingTemplatesForExperiment(authz_token, experiment_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception(
-                "Error occurred in get_parsing_templates_for_experiment," " probably due to invalid parameters ",
-                )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in get_parsing_templates_for_experiment," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception(
-                "Error occurred in get_parsing_templates_for_experiment, " "probably due to server side error ",
-               )
-            raise
-        except AuthorizationException:
-            logger.exception(
-                "Error occurred in get_parsing_templates_for_experiment, " "probably due to invalid authz token ",
-                )
-            raise
-
-    def save_parsing_template(self, authz_token, parsing_template):
-        """
-        Parameters:
-         - authz_token
-         - parsing_template
-        """
-        try:
-            return self.api_server_client_pool.saveParsingTemplate(authz_token, parsing_template)
-        except InvalidRequestException:
-            logger.exception("Error occurred in save_parsing_template," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in save_parsing_template," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in save_parsing_template, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in save_parsing_template, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def remove_parsing_template(self, authz_token, template_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - template_id
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.removeParsingTemplate(authz_token, template_id, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in remove_parsing_template," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in remove_parsing_template," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in remove_parsing_template, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in remove_parsing_template, " "probably due to invalid authz token ",
-                             )
-            raise
-
-    def list_all_parsing_templates(self, authz_token, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.api_server_client_pool.listAllParsingTemplates(authz_token, gateway_id)
-        except InvalidRequestException:
-            logger.exception("Error occurred in list_all_parsing_templates," " probably due to invalid parameters ",
-                             )
-            raise
-        except AiravataClientException:
-            logger.exception(
-                "Error occurred in list_all_parsing_templates," "probably due to  client mis configuration")
-            raise
-        except AiravataSystemException:
-            logger.exception("Error occurred in list_all_parsing_templates, " "probably due to server side error ",
-                            )
-            raise
-        except AuthorizationException:
-            logger.exception("Error occurred in list_all_parsing_templates, " "probably due to invalid authz token ",
-                             )
-            raise
+        self.client: Client = utils.initialize_api_client_pool(
+            self.api_server_settings.API_SERVER_HOST,
+            self.api_server_settings.API_SERVER_PORT,
+            self.api_server_settings.API_SERVER_SECURE,
+        )
+        # expose the needed functions
+        self.is_user_exists = self.client.isUserExists
+        self.add_gateway = self.client.addGateway
+        self.get_all_users_in_gateway = self.client.getAllUsersInGateway
+        self.update_gateway = self.client.updateGateway
+        self.get_gateway = self.client.getGateway
+        self.delete_gateway = self.client.deleteGateway
+        self.get_all_gateways = self.client.getAllGateways
+        self.is_gateway_exist = self.client.isGatewayExist
+        self.create_notification = self.client.createNotification
+        self.update_notification = self.client.updateNotification
+        self.delete_notification = self.client.deleteNotification
+        self.get_notification = self.client.getNotification
+        self.get_all_notifications = self.client.getAllNotifications
+        self.generate_and_register_ssh_keys = self.client.generateAndRegisterSSHKeys
+        self.register_pwd_credential = self.client.registerPwdCredential
+        self.get_credential_summary = self.client.getCredentialSummary
+        self.get_all_credential_summaries = self.client.getAllCredentialSummaries
+        self.delete_ssh_pub_key = self.client.deleteSSHPubKey
+        self.delete_pwd_credential = self.client.deletePWDCredential
+        self.create_project = self.client.createProject
+        self.update_project = self.client.updateProject
+        self.get_project = self.client.getProject
+        self.delete_project = self.client.deleteProject
+        self.get_user_projects = self.client.getUserProjects
+        self.search_projects = self.client.searchProjects
+        self.search_experiments = self.client.searchExperiments
+        self.get_experiment_statistics = self.client.getExperimentStatistics
+        self.get_experiments_in_project = self.client.getExperimentsInProject
+        self.get_user_experiments = self.client.getUserExperiments
+        self.create_experiment = self.client.createExperiment
+        self.delete_experiment = self.client.deleteExperiment
+        self.get_experiment = self.client.getExperiment
+        self.get_experiment_by_admin = self.client.getExperimentByAdmin
+        self.get_detailed_experiment_tree = self.client.getDetailedExperimentTree
+        self.update_experiment = self.client.updateExperiment
+        self.update_experiment_configuration = self.client.updateExperimentConfiguration
+        self.update_resource_scheduling = self.client.updateResourceScheduleing
+        self.validate_experiment = self.client.validateExperiment
+        self.launch_experiment = self.client.launchExperiment
+        self.get_experiment_status = self.client.getExperimentStatus
+        self.get_experiment_outputs = self.client.getExperimentOutputs
+        self.get_intermediate_outputs = self.client.getIntermediateOutputs
+        self.get_job_statuses = self.client.getJobStatuses
+        self.get_job_details = self.client.getJobDetails
+        self.clone_experiment = self.client.cloneExperiment
+        self.clone_experiment_by_admin = self.client.cloneExperimentByAdmin
+        self.terminate_experiment = self.client.terminateExperiment
+        self.register_application_module = self.client.registerApplicationModule
+        self.get_application_module = self.client.getApplicationModule
+        self.update_application_module = self.client.updateApplicationModule
+        self.get_all_app_modules = self.client.getAllAppModules
+        self.get_accessible_app_modules = self.client.getAccessibleAppModules
+        self.delete_application_module = self.client.deleteApplicationModule
+        self.register_application_deployment = self.client.registerApplicationDeployment
+        self.get_application_deployment = self.client.getApplicationDeployment
+        self.update_application_deployment = self.client.updateApplicationDeployment
+        self.delete_application_deployment = self.client.deleteApplicationDeployment
+        self.get_all_application_deployments = self.client.getAllApplicationDeployments
+        self.get_accessible_application_deployments = self.client.getAccessibleApplicationDeployments
+        self.get_app_module_deployed_resources = self.client.getAppModuleDeployedResources
+        self.get_application_deployments_for_app_module_and_group_resource_profile = self.client.getApplicationDeploymentsForAppModuleAndGroupResourceProfile
+        self.register_application_interface = self.client.registerApplicationInterface
+        self.clone_application_interface = self.client.cloneApplicationInterface
+        self.get_application_interface = self.client.getApplicationInterface
+        self.update_application_interface = self.client.updateApplicationInterface
+        self.delete_application_interface = self.client.deleteApplicationInterface
+        self.get_all_application_interface_names = self.client.getAllApplicationInterfaceNames
+        self.get_all_application_interfaces = self.client.getAllApplicationInterfaces
+        self.get_application_inputs = self.client.getApplicationInputs
+        self.get_application_outputs = self.client.getApplicationOutputs
+        self.get_available_app_interface_compute_resources = self.client.getAvailableAppInterfaceComputeResources
+        self.register_compute_resource = self.client.registerComputeResource
+        self.get_compute_resource = self.client.getComputeResource
+        self.get_all_compute_resource_names = self.client.getAllComputeResourceNames
+        self.update_compute_resource = self.client.updateComputeResource
+        self.delete_compute_resource = self.client.deleteComputeResource
+        self.register_storage_resource = self.client.registerStorageResource
+        self.get_storage_resource = self.client.getStorageResource
+        self.get_all_storage_resource_names = self.client.getAllStorageResourceNames
+        self.update_storage_resource = self.client.updateStorageResource
+        self.delete_storage_resource = self.client.deleteStorageResource
+        self.add_local_submission_details = self.client.addLocalSubmissionDetails
+        self.update_local_submission_details = self.client.updateLocalSubmissionDetails
+        self.get_local_job_submission = self.client.getLocalJobSubmission
+        self.add_ssh_job_submission_details = self.client.addSSHJobSubmissionDetails
+        self.add_ssh_fork_job_submission_details = self.client.addSSHForkJobSubmissionDetails
+        self.get_ssh_job_submission = self.client.getSSHJobSubmission
+        self.add_unicore_job_submission_details = self.client.addUNICOREJobSubmissionDetails
+        self.get_unicore_job_submission = self.client.getUnicoreJobSubmission
+        self.add_cloud_job_submission_details = self.client.addCloudJobSubmissionDetails
+        self.get_cloud_job_submission = self.client.getCloudJobSubmission
+        self.update_ssh_job_submission_details = self.client.updateSSHJobSubmissionDetails
+        self.update_cloud_job_submission_details = self.client.updateCloudJobSubmissionDetails
+        self.update_unicore_job_submission_details = self.client.updateUnicoreJobSubmissionDetails
+        self.add_local_data_movement_details = self.client.addLocalDataMovementDetails
+        self.update_local_data_movement_details = self.client.updateLocalDataMovementDetails
+        self.get_local_data_movement = self.client.getLocalDataMovement
+        self.add_scp_data_movement_details = self.client.addSCPDataMovementDetails
+        self.update_scp_data_movement_details = self.client.updateSCPDataMovementDetails
+        self.get_scp_data_movement = self.client.getSCPDataMovement
+        self.add_unicore_data_movement_details = self.client.addUnicoreDataMovementDetails
+        self.update_unicore_data_movement_details = self.client.updateUnicoreDataMovementDetails
+        self.get_unicore_data_movement = self.client.getUnicoreDataMovement
+        self.add_grid_ftp_data_movement_details = self.client.addGridFTPDataMovementDetails
+        self.update_grid_ftp_data_movement_details = self.client.updateGridFTPDataMovementDetails
+        self.get_grid_ftp_data_movement = self.client.getGridFTPDataMovement
+        self.change_job_submission_priority = self.client.changeJobSubmissionPriority
+        self.change_data_movement_priority = self.client.changeDataMovementPriority
+        self.change_job_submission_priorities = self.client.changeJobSubmissionPriorities
+        self.change_data_movement_priorities = self.client.changeDataMovementPriorities
+        self.delete_job_submission_interface = self.client.deleteJobSubmissionInterface
+        self.delete_data_movement_interface = self.client.deleteDataMovementInterface
+        self.register_resource_job_manager = self.client.registerResourceJobManager
+        self.update_resource_job_manager = self.client.updateResourceJobManager
+        self.get_resource_job_manager = self.client.getResourceJobManager
+        self.delete_resource_job_manager = self.client.deleteResourceJobManager
+        self.delete_batch_queue = self.client.deleteBatchQueue
+        self.register_gateway_resource_profile = self.client.registerGatewayResourceProfile
+        self.get_gateway_resource_profile = self.client.getGatewayResourceProfile
+        self.update_gateway_resource_profile = self.client.updateGatewayResourceProfile
+        self.delete_gateway_resource_profile = self.client.deleteGatewayResourceProfile
+        self.add_gateway_compute_resource_preference = self.client.addGatewayComputeResourcePreference
+        self.add_gateway_storage_preference = self.client.addGatewayStoragePreference
+        self.get_gateway_compute_resource_preference = self.client.getGatewayComputeResourcePreference
+        self.get_gateway_storage_preference = self.client.getGatewayStoragePreference
+        self.get_all_gateway_compute_resource_preferences = self.client.getAllGatewayComputeResourcePreferences
+        self.get_all_gateway_storage_preferences = self.client.getAllGatewayStoragePreferences
+        self.get_all_gateway_resource_profiles = self.client.getAllGatewayResourceProfiles
+        self.update_gateway_compute_resource_preference = self.client.updateGatewayComputeResourcePreference
+        self.update_gateway_storage_preference = self.client.updateGatewayStoragePreference
+        self.delete_gateway_compute_resource_preference = self.client.deleteGatewayComputeResourcePreference
+        self.delete_gateway_storage_preference = self.client.deleteGatewayStoragePreference
+        self.get_ssh_account_provisioners = self.client.getSSHAccountProvisioners
+        self.does_user_have_ssh_account = self.client.doesUserHaveSSHAccount
+        self.is_ssh_setup_complete_for_user_compute_resource_preference = self.client.isSSHSetupCompleteForUserComputeResourcePreference
+        self.setup_user_compute_resource_preferences_for_ssh = self.client.setupUserComputeResourcePreferencesForSSH
+        self.register_user_resource_profile = self.client.registerUserResourceProfile
+        self.is_user_resource_profile_exists = self.client.isUserResourceProfileExists
+        self.get_user_resource_profile = self.client.getUserResourceProfile
+        self.update_user_resource_profile = self.client.updateUserResourceProfile
+        self.delete_user_resource_profile = self.client.deleteUserResourceProfile
+        self.add_user_compute_resource_preference = self.client.addUserComputeResourcePreference
+        self.add_user_storage_preference = self.client.addUserStoragePreference
+        self.get_user_compute_resource_preference = self.client.getUserComputeResourcePreference
+        self.get_user_storage_preference = self.client.getUserStoragePreference
+        self.get_all_user_compute_resource_preferences = self.client.getAllUserComputeResourcePreferences
+        self.get_all_user_storage_preferences = self.client.getAllUserStoragePreferences
+        self.get_all_user_resource_profiles = self.client.getAllUserResourceProfiles
+        self.update_user_compute_resource_preference = self.client.updateUserComputeResourcePreference
+        self.update_user_storage_preference = self.client.updateUserStoragePreference
+        self.delete_user_compute_resource_preference = self.client.deleteUserComputeResourcePreference
+        self.delete_user_storage_preference = self.client.deleteUserStoragePreference
+        self.get_latest_queue_statuses = self.client.getLatestQueueStatuses
+        self.register_data_product = self.client.registerDataProduct
+        self.get_data_product = self.client.getDataProduct
+        self.register_replica_location = self.client.registerReplicaLocation
+        self.get_parent_data_product = self.client.getParentDataProduct
+        self.get_child_data_products = self.client.getChildDataProducts
+        self.share_resource_with_users = self.client.shareResourceWithUsers
+        self.share_resource_with_groups = self.client.shareResourceWithGroups
+        self.revoke_sharing_of_resource_from_users = self.client.revokeSharingOfResourceFromUsers
+        self.revoke_sharing_of_resource_from_groups = self.client.revokeSharingOfResourceFromGroups
+        self.get_all_accessible_users = self.client.getAllAccessibleUsers
+        self.get_all_accessible_groups = self.client.getAllAccessibleGroups
+        self.get_all_directly_accessible_users = self.client.getAllDirectlyAccessibleUsers
+        self.get_all_directly_accessible_groups = self.client.getAllDirectlyAccessibleGroups
+        self.user_has_access = self.client.userHasAccess
+        self.create_group_resource_profile = self.client.createGroupResourceProfile
+        self.update_group_resource_profile = self.client.updateGroupResourceProfile
+        self.get_group_resource_profile = self.client.getGroupResourceProfile
+        self.remove_group_resource_profile = self.client.removeGroupResourceProfile
+        self.get_group_resource_list = self.client.getGroupResourceList
+        self.remove_group_compute_prefs = self.client.removeGroupComputePrefs
+        self.remove_group_compute_resource_policy = self.client.removeGroupComputeResourcePolicy
+        self.remove_group_batch_queue_resource_policy = self.client.removeGroupBatchQueueResourcePolicy
+        self.get_group_compute_resource_preference = self.client.getGroupComputeResourcePreference
+        self.get_group_compute_resource_policy = self.client.getGroupComputeResourcePolicy
+        self.get_batch_queue_resource_policy = self.client.getBatchQueueResourcePolicy
+        self.get_group_compute_resource_pref_list = self.client.getGroupComputeResourcePrefList
+        self.get_group_batch_queue_resource_policy_list = self.client.getGroupBatchQueueResourcePolicyList
+        self.get_group_compute_resource_policy_list = self.client.getGroupComputeResourcePolicyList
+        self.get_gateway_groups = self.client.getGatewayGroups
+        self.get_parser = self.client.getParser
+        self.save_parser = self.client.saveParser
+        self.list_all_parsers = self.client.listAllParsers
+        self.remove_parser = self.client.removeParser
+        self.get_parsing_template = self.client.getParsingTemplate
+        self.get_parsing_templates_for_experiment = self.client.getParsingTemplatesForExperiment
+        self.save_parsing_template = self.client.saveParsingTemplate
+        self.remove_parsing_template = self.client.removeParsingTemplate
+        self.list_all_parsing_templates = self.client.listAllParsingTemplates
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/credential_store_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/credential_store_client.py
index e51faea3d9..909dccde91 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/credential_store_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/credential_store_client.py
@@ -14,12 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import CredentialStoreServerSettings
+from airavata.api.credential.store.CredentialStoreService import Client
 from airavata_sdk.transport import utils
-from airavata.api.credential.store.error.ttypes import CredentialStoreException
+from airavata_sdk.transport.settings import CredentialStoreServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -30,22 +30,13 @@ class CredentialStoreClient(object):
     def __init__(self, configuration_file_location=None):
         self.credential_store_server_settings = CredentialStoreServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.credential_store_client_pool = utils.initialize_credential_store_client(
+        self.client: Client = utils.initialize_credential_store_client(
             self.credential_store_server_settings.CREDENTIAL_STORE_API_HOST,
             self.credential_store_server_settings.CREDENTIAL_STORE_API_PORT,
-            self.credential_store_server_settings.CREDENTIAL_STORE_API_SECURE)
-
-    def get_SSH_credential(self, token_id, gateway_id):
-        """
-        :param token_id:
-        :param gateway_id
-        :return: credential
-        """
-        try:
-            return self.credential_store_client_pool.getSSHCredential(token_id, gateway_id)
-        except CredentialStoreException:
-            logger.exception("Error occurred in get_SSH_credential, probably due to invalid parameters ")
-            raise
+            self.credential_store_server_settings.CREDENTIAL_STORE_API_SECURE
+        )
+        # expose the needed functions
+        self.get_SSH_credential = self.client.getSSHCredential
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/file_handling_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/file_handling_client.py
index cf2b5a1e8d..94d870c7c7 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/file_handling_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/file_handling_client.py
@@ -15,6 +15,7 @@
 #
 
 import logging
+
 import paramiko
 from paramiko import SSHClient
 from scp import SCPClient
@@ -47,7 +48,9 @@ class FileHandler(object):
     def upload_file(self, files, remote_path, recursive, preserve_item):
         try:
             ssh.connect(self.host, self.port, self.username, passphrase=self.password, pkey=self.filePath)
-            with SCPClient(ssh.get_transport()) as scp:
+            transport = ssh.get_transport()
+            assert transport is not None
+            with SCPClient(transport) as scp:
                 scp.put(files, remote_path, recursive, preserve_item)
         finally:
             scp.close()
@@ -55,7 +58,9 @@ class FileHandler(object):
     def download_file(self, remote_path, local_path, recursive, preserve_item):
         try:
             ssh.connect(self.host, self.port, self.username, passphrase=self.password, pkey=self.filePath)
-            with SCPClient(ssh.get_transport()) as scp:
+            transport = ssh.get_transport()
+            assert transport is not None
+            with SCPClient(transport) as scp:
                 scp.get(remote_path, local_path, recursive, preserve_item)
         finally:
             scp.close()
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/group_manager_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/group_manager_client.py
index 7794abd470..7bbee1d111 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/group_manager_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/group_manager_client.py
@@ -14,13 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import ProfileServerSettings
+from airavata.service.profile.groupmanager.cpi.GroupManagerService import Client
 from airavata_sdk.transport import utils
-
-from airavata.api.error.ttypes import TException
+from airavata_sdk.transport.settings import ProfileServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -39,180 +38,26 @@ class GroupManagerClient(object):
     def __init__(self, configuration_file_location=None):
         self.group_manager_settings = ProfileServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.group_manager_client_pool = utils.initialize_group_manager_client(
+        self.client: Client = utils.initialize_group_manager_client(
             self.group_manager_settings.PROFILE_SERVICE_HOST,
             self.group_manager_settings.PROFILE_SERVICE_PORT,
-            self.group_manager_settings.PROFILE_SERVICE_SECURE)
-
-    def get_api_version(self):
-        try:
-            return self.group_manager_client_pool.getAPIVersion()
-        except TException:
-            logger.exception("Error occurred in get_api_version, ")
-            raise
-
-    def create_group(self, authz_token, group_model):
-        """
-        Parameters:
-         - authz_token
-         - group_model
-        """
-        try:
-            return self.group_manager_client_pool.createGroup(authz_token, group_model)
-        except TException:
-            logger.exception("Error occurred in create_group, ")
-            raise
-
-    def update_group(self, authz_token, group_model):
-        """
-        Parameters:
-         - authz_token
-         - group_model
-        """
-        try:
-            return self.group_manager_client_pool.updateGroup(authz_token, group_model)
-        except TException:
-            logger.exception("Error occurred in update_group, ")
-            raise
-
-    def delete_group(self, authz_token, group_id, owner_id):
-        """
-        Parameters:
-         - authz_token
-         - group_id
-         - owner_id
-        """
-        try:
-            return self.group_manager_client_pool.deleteGroup(authz_token, group_id, owner_id)
-        except TException:
-            logger.exception("Error occurred in delete_group,")
-            raise
-
-    def get_group(self, authz_token, group_id):
-        """
-        Parameters:
-         - authz_token
-         - group_id
-        """
-        try:
-            return self.group_manager_client_pool.getGroup(authz_token, group_id)
-        except TException:
-            logger.exception("Error occurred in get_group, ")
-            raise
-
-    def get_groups(self, authz_token):
-        """
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.group_manager_client_pool.getGroups(authz_token)
-        except TException:
-            logger.exception("Error occurred in get_groups, ")
-            raise
-
-    def get_all_groups_user_belongs(self, authz_token, user_name):
-        """
-        Parameters:
-         - authz_token
-         - user_name
-        """
-        try:
-            return self.group_manager_client_pool.getAllGroupsUserBelongs(authz_token, user_name)
-        except TException:
-            logger.exception("Error occurred in get_all_groups_user_belongs, ")
-            raise
-
-    def add_users_to_group(self, authz_token, user_ids, group_id):
-        """
-        Parameters:
-         - authz_token
-         - user_ids
-         - group_id
-        """
-        try:
-            return self.group_manager_client_pool.addUsersToGroup(authz_token, user_ids, group_id)
-        except TException:
-            logger.exception("Error occurred in add_users_to_group, ")
-            raise
-
-    def remove_users_from_group(self, authz_token, user_ids, group_id):
-        """
-        Parameters:
-         - authz_token
-         - user_ids
-         - group_id
-        """
-        try:
-            return self.group_manager_client_pool.removeUsersFromGroup(authz_token, user_ids, group_id)
-        except TException:
-            logger.exception("Error occurred in remove_users_from_group, ")
-            raise
-
-    def transfer_group_ownership(self, authz_token, group_id, new_owner_id):
-        """
-        Parameters:
-         - authzToken
-         - groupId
-         - newOwnerId
-        """
-        try:
-            return self.group_manager_client_pool.transferGroupOwnership(authz_token, group_id, new_owner_id)
-        except TException:
-            logger.exception("Error occurred in transfer_group_ownership, ")
-            raise
-
-    def add_group_admins(self, authz_token, group_id, admin_ids):
-        """
-        Parameters:
-         - authzToken
-         - group_id
-         - admin_ids
-        """
-        try:
-            return self.group_manager_client_pool.addGroupAdmins(authz_token, group_id, admin_ids)
-        except TException:
-            logger.exception("Error occurred in add_group_admins, ")
-            raise
-
-    def remove_group_admins(self, authz_token, group_id, admin_ids):
-        """
-        Parameters:
-         - authz_token
-         - group_id
-         - admin_ids
-        """
-        try:
-            return self.group_manager_client_pool.removeGroupAdmins(authz_token, group_id, admin_ids)
-        except TException:
-            logger.exception("Error occurred in remove_group_admins, ")
-            raise
-
-    def has_admin_access(self, authz_token, group_id, admin_id):
-        """
-        Parameters:
-         - authz_token
-         - group_id
-         - admin_id
-        """
-        try:
-            return self.group_manager_client_pool.hasAdminAccess(authz_token, group_id, admin_id)
-        except TException:
-            logger.exception("Error occurred in has_admin_access, ")
-            raise
-
-    def has_owner_access(self, authz_token, group_id, owner_id):
-        """
-        Parameters:
-         - authz_token
-         - group_id
-         - owner_id
-        """
-        try:
-            return self.group_manager_client_pool.hasOwnerAccess(authz_token, group_id, owner_id)
-        except TException:
-            logger.exception("Error occurred in has_owner_access, ")
-            raise
+            self.group_manager_settings.PROFILE_SERVICE_SECURE
+        )
+        # expose the needed functions
+        self.get_api_version = self.client.getAPIVersion
+        self.create_group = self.client.createGroup
+        self.update_group = self.client.updateGroup
+        self.delete_group = self.client.deleteGroup
+        self.get_group = self.client.getGroup
+        self.get_groups = self.client.getGroups
+        self.get_all_groups_user_belongs = self.client.getAllGroupsUserBelongs
+        self.add_users_to_group = self.client.addUsersToGroup
+        self.remove_users_from_group = self.client.removeUsersFromGroup
+        self.transfer_group_ownership = self.client.transferGroupOwnership
+        self.add_group_admins = self.client.addGroupAdmins
+        self.remove_group_admins = self.client.removeGroupAdmins
+        self.has_admin_access = self.client.hasAdminAccess
+        self.has_owner_access = self.client.hasOwnerAccess
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/iam_admin_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/iam_admin_client.py
index 0c7833e517..d1d4594d17 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/iam_admin_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/iam_admin_client.py
@@ -14,13 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import ProfileServerSettings
+from airavata.service.profile.iam.admin.services.cpi.IamAdminServices import Client
 from airavata_sdk.transport import utils
-
-from airavata.api.error.ttypes import TException
+from airavata_sdk.transport.settings import ProfileServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -39,201 +38,26 @@ class IAMAdminClient(object):
     def __init__(self, configuration_file_location=None):
         self.iam_admin_settings = ProfileServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.iam_admin_client_pool = utils.initialize_iam_admin_client(
+        self.client: Client = utils.initialize_iam_admin_client(
             self.iam_admin_settings.PROFILE_SERVICE_HOST,
             self.iam_admin_settings.PROFILE_SERVICE_PORT,
             self.iam_admin_settings.PROFILE_SERVICE_SECURE)
-
-    def set_up_gateway(self, authz_token, gateway):
-        """
-        Parameters:
-         - authz_token
-         - gateway
-        """
-        try:
-            return self.iam_admin_client_pool.setUpGateway(authz_token, gateway)
-        except TException:
-            logger.exception("Error occurred in set_up_gateway, ", TException)
-            raise
-
-    def is_username_available(self, authz_token, username):
-        """
-        Parameters:
-         - authz_token
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.isUsernameAvailable(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in is_username_available, ", TException)
-            raise
-
-    def register_user(self, authz_token, username, email_address, first_name, last_name, new_password):
-        """
-        Parameters:
-         - authz_token
-         - username
-         - email_address
-         - first_name
-         - last_name
-         - new_password
-        """
-        try:
-            return self.iam_admin_client_pool.registerUser(authz_token, username, email_address,
-                                                              first_name, last_name, new_password)
-        except TException:
-            logger.exception("Error occurred in register_user, ", TException)
-            raise
-
-    def enable_user(self, authz_token, username):
-        """
-        Parameters:
-         - authz_token
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.enableUser(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in enable_user, ", TException)
-            raise
-
-    def is_user_enabled(self, authz_token, username):
-        """
-        Parameters:
-         - authzToken
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.isUserEnabled(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in is_user_enabled, ", TException)
-            raise
-
-    def is_user_exist(self, authz_token, username):
-        """
-        Parameters:
-         - authzToken
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.isUserExist(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in is_user_exist, ", TException)
-            raise
-
-    def get_user(self, authz_token, username):
-        """
-        Parameters:
-         - authzToken
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.getUser(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in get_user, ", TException)
-            raise
-
-    def get_users(self, authz_token, offset, limit, search):
-        """
-        Parameters:
-         - authzToken
-         - offset
-         - limit
-         - search
-        """
-        try:
-            return self.iam_admin_client_pool.getUsers(authz_token, offset, limit, search)
-        except TException:
-            logger.exception("Error occurred in get_users, ", TException)
-            raise
-
-    def reset_user_password(self, authz_token, username, new_password):
-        """
-        Parameters:
-         - authzToken
-         - username
-         - newPassword
-        """
-        try:
-            return self.iam_admin_client_pool.resetUserPassword( authz_token, username, new_password)
-        except TException:
-            logger.exception("Error occurred in reset_user_password, ", TException)
-            raise
-
-    def find_users(self, authz_token, email, user_id):
-        """
-        Parameters:
-         - authzToken
-         - email
-         - userId
-        """
-        try:
-            return self.iam_admin_client_pool.findUsers(authz_token, email, user_id)
-        except TException:
-            logger.exception("Error occurred in find_users, ", TException)
-            raise
-
-    def update_user_profile(self, authz_token, user_details):
-        """
-        Parameters:
-         - authzToken
-         - userDetails
-        """
-        try:
-            return self.iam_admin_client_pool.updateUserProfile(authz_token, user_details)
-        except TException:
-            logger.exception("Error occurred in update_user_profile, ", TException)
-            raise
-
-    def delete_user(self, authz_token, username):
-        """
-        Parameters:
-         - authzToken
-         - username
-        """
-        try:
-            return self.iam_admin_client_pool.deleteUser(authz_token, username)
-        except TException:
-            logger.exception("Error occurred in delete_user, ", TException)
-            raise
-
-    def add_role_to_user(self, authz_token, username, role_name):
-        """
-        Parameters:
-         - authzToken
-         - username
-         - roleName
-        """
-        try:
-            return self.iam_admin_client_pool.addRoleToUser(authz_token, username, role_name)
-        except TException:
-            logger.exception("Error occurred in add_role_to_user, ", TException)
-            raise
-
-    def remove_role_from_user(self, authz_token, username, role_name):
-        """
-        Parameters:
-         - authzToken
-         - username
-         - roleName
-        """
-        try:
-            return self.iam_admin_client_pool.removeRoleFromUser(authz_token, username, role_name)
-        except TException:
-            logger.exception("Error occurred in remove_role_from_user, ", TException)
-            raise
-
-    def get_users_with_role(self, authz_token, role_name):
-        """
-        Parameters:
-         - authzToken
-         - roleName
-        """
-        try:
-            return self.iam_admin_client_pool.getUsersWithRole(authz_token, role_name)
-        except TException:
-            logger.exception("Error occurred in create_group, ", TException)
-            raise
+        # expose the needed functions
+        self.set_up_gateway = self.client.setUpGateway
+        self.is_username_available = self.client.isUsernameAvailable
+        self.register_user = self.client.registerUser
+        self.enable_user = self.client.enableUser
+        self.is_user_enabled = self.client.isUserEnabled
+        self.is_user_exist = self.client.isUserExist
+        self.get_user = self.client.getUser
+        self.get_users = self.client.getUsers
+        self.reset_user_password = self.client.resetUserPassword
+        self.find_users = self.client.findUsers
+        self.update_user_profile = self.client.updateUserProfile
+        self.delete_user = self.client.deleteUser
+        self.add_role_to_user = self.client.addRoleToUser
+        self.remove_role_from_user = self.client.removeRoleFromUser
+        self.get_users_with_role = self.client.getUsersWithRole
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/keycloak_token_fetcher.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/keycloak_token_fetcher.py
index c232e9183e..e1d5e11f4e 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/keycloak_token_fetcher.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/keycloak_token_fetcher.py
@@ -15,23 +15,16 @@
 #
 
 import configparser
+import os
 
-from requests_oauthlib import OAuth2Session
 from oauthlib.oauth2 import LegacyApplicationClient
-from airavata.model.security.ttypes import AuthzToken
+from requests_oauthlib import OAuth2Session
 
+from airavata.model.security.ttypes import AuthzToken
 from airavata_sdk.transport.settings import KeycloakServerSettings
-import os
-
-# since we are using requests 2.13 (< 2.16.0)
-import requests
-from requests.packages.urllib3.exceptions import InsecureRequestWarning
-
-requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 
-
 class Authenticator(object):
 
     def __init__(self, configuration_file_location=None):
@@ -51,7 +44,7 @@ class Authenticator(object):
                                            password=password,
                                            client_id=client_id,
                                            client_secret=client_secret,
-                                           verify=self.keycloak_settings.KEYCLOAK_CA_CERTIFICATE if verify_ssl else False)
+                                           verify=verify_ssl)
 
         claimsMap = {
             "userName": username,
@@ -79,7 +72,7 @@ class Authenticator(object):
                                            password=password,
                                            client_id=client_id,
                                            client_secret=client_secret,
-                                           verify=self.keycloak_settings.KEYCLOAK_CA_CERTIFICATE if verify_ssl else False)
+                                           verify=verify_ssl)
 
         claimsMap = {
             "userName": username,
@@ -95,7 +88,7 @@ class Authenticator(object):
         if configuration_file_location is not None:
             config = configparser.ConfigParser()
             config.read(configuration_file_location)
-            self.keycloak_settings.KEYCLOAK_CA_CERTIFICATE = config.get("KeycloakServer", 'CERTIFICATE_FILE_PATH')
+            # self.keycloak_settings.KEYCLOAK_CA_CERTIFICATE = config.get("KeycloakServer", 'CERTIFICATE_FILE_PATH')
             self.keycloak_settings.CLIENT_ID = config.get('KeycloakServer', 'CLIENT_ID')
             self.keycloak_settings.CLIENT_SECRET = config.get('KeycloakServer', 'CLIENT_SECRET')
             self.keycloak_settings.TOKEN_URL = config.get('KeycloakServer', 'TOKEN_URL')
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sftp_file_handling_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sftp_file_handling_client.py
index 3cbe194e97..c8c306fe63 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sftp_file_handling_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sftp_file_handling_client.py
@@ -16,12 +16,11 @@
 
 import logging
 import os
-import paramiko
-from scp import SCPClient
 from datetime import datetime
 
-from paramiko import Transport, SFTPClient
-
+import paramiko
+from paramiko import SFTPClient, Transport
+from scp import SCPClient
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.INFO)
@@ -58,11 +57,11 @@ class SFTPConnector(object):
                     transport = Transport(sock=(self.host, int(self.port)))
                     transport.connect(username=self.username, password=self.password)
                     connection = SFTPClient.from_transport(transport)
+                    assert connection is not None
                     try:
                         base_path = "/" + project_name
                         connection.chdir(base_path)  # Test if remote_path exists
                     except IOError:
-
                         connection.mkdir(base_path)
                     try:
                         connection.chdir(remote_path)  # Test if remote_path exists
@@ -76,7 +75,9 @@ class SFTPConnector(object):
     def download_files(self, local_path, remote_path):
 
         self.ssh.connect(self.host, self.port, self.username, password = self.password)
-        with SCPClient(self.ssh.get_transport()) as conn:
+        transport = self.ssh.get_transport()
+        assert transport is not None
+        with SCPClient(transport) as conn:
             conn.get(remote_path=remote_path, local_path= local_path, recursive= True)
         self.ssh.close()
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sharing_registry_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sharing_registry_client.py
index 4a1f66974d..120b323a1a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sharing_registry_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/sharing_registry_client.py
@@ -14,13 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import SharingServerSettings
+from airavata.api.sharing.SharingRegistryService import Client
 from airavata_sdk.transport import utils
-
-from airavata.api.error.ttypes import TException
+from airavata_sdk.transport.settings import SharingServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -39,836 +38,70 @@ class SharingRegistryClient(object):
     def __init__(self, configuration_file_location=None):
         self.sharing_registry_client_settings = SharingServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.sharing_registry_client_pool = utils.initialize_sharing_registry_client(
+        self.client: Client = utils.initialize_sharing_registry_client(
             self.sharing_registry_client_settings.SHARING_API_HOST,
             self.sharing_registry_client_settings.SHARING_API_PORT,
-            self.sharing_registry_client_settings.SHARING_API_SECURE)
-
-    def create_domain(self, domain):
-        """
-        <p>API method to create a new domain</p>
-
-        Parameters:
-         - domain
-        """
-        try:
-            return self.sharing_registry_client_pool.createDomain(domain)
-        except TException:
-            logger.exception("Error occurred in create_domain, ", )
-            raise
-
-    def update_domain(self, domain):
-        """
-        <p>API method to update a domain</p>
-
-        Parameters:
-         - domain
-        """
-        try:
-            return self.sharing_registry_client_pool.updateDomain(domain)
-        except TException:
-            logger.exception("Error occurred in update_domain, ", )
-            raise
-
-    def is_domain_exists(self, domain_id):
-        """
-        <p>API method to check Domain Exists</p>
-
-        Parameters:
-         - domainId
-        """
-        try:
-            return self.sharing_registry_client_pool.isDomainExists(domain_id)
-        except TException:
-            logger.exception("Error occurred in is_domain_exists, ", )
-            raise
-
-    def delete_domain(self, domain_id):
-        """
-        <p>API method to delete domain</p>
-
-        Parameters:
-         - domainId
-        """
-        try:
-            return self.sharing_registry_client_pool.deleteDomain(domain_id)
-        except TException:
-            logger.exception("Error occurred in delete_domain, ", )
-            raise
-
-    def get_domain(self, domain_id):
-        """
-        <p>API method to retrieve a domain</p>
-
-        Parameters:
-         - domainId
-        """
-        try:
-            return self.sharing_registry_client_pool.getDomain(domain_id)
-        except TException:
-            logger.exception("Error occurred in get_domain, ", )
-            raise
-
-    def get_domains(self, offset, limit):
-        """
-        <p>API method to get all domain.</p>
-
-        Parameters:
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getDomains(offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_domains, ", )
-            raise
-
-    def create_user(self, user):
-        """
-        <p>API method to register a user in the system</p>
-
-        Parameters:
-         - user
-        """
-        try:
-            return self.sharing_registry_client_pool.createUser(user)
-        except TException:
-            logger.exception("Error occurred in create_user, ", )
-            raise
-
-    def updated_user(self, user):
-        """
-        <p>API method to update existing user</p>
-
-        Parameters:
-         - user
-        """
-        try:
-            return self.sharing_registry_client_pool.updatedUser(user)
-        except TException:
-            logger.exception("Error occurred in updated_user, ", )
-            raise
-
-    def is_user_exists(self, domain_id, user_id):
-        """
-        <p>API method to check User Exists</p>
-
-        Parameters:
-         - domainId
-         - userId
-        """
-        try:
-            return self.sharing_registry_client_pool.isUserExists(domain_id, user_id)
-        except TException:
-            logger.exception("Error occurred in is_user_exists, ", )
-            raise
-
-    def delete_user(self, domain_id, user_id):
-        """
-        <p>API method to delete user</p>
-
-        Parameters:
-         - domainId
-         - userId
-        """
-        try:
-            return self.sharing_registry_client_pool.deleteUser(domain_id, user_id)
-        except TException:
-            logger.exception("Error occurred in delete_user, ", )
-            raise
-
-    def get_user(self, domain_id, user_id):
-        """
-        <p>API method to get a user</p>
-
-        Parameters:
-         - domainId
-         - userId
-        """
-        try:
-            return self.sharing_registry_client_pool.getUser(domain_id, user_id)
-        except TException:
-            logger.exception("Error occurred in get_user, ", )
-            raise
-
-    def get_users(self, domain_id, offset, limit):
-        """
-        <p>API method to get a list of users in a specific domain.</p>
-        <li>domainId : Domain id</li>
-        <li>offset : Starting result number</li>
-        <li>limit : Number of max results to be sent</li>
-
-        Parameters:
-         - domainId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getUsers(domain_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_users, ", )
-            raise
-
-    def create_group(self, group):
-        """
-        <p>API method to create a new group</p>
-
-        Parameters:
-         - group
-        """
-        try:
-            return self.sharing_registry_client_pool.createGroup(group)
-        except TException:
-            logger.exception("Error occurred in create_group, ", )
-            raise
-
-    def update_group(self, group):
-        """
-        <p>API method to update a group</p>
-
-        Parameters:
-         - group
-        """
-        try:
-            return self.sharing_registry_client_pool.updateGroup(group)
-        except TException:
-            logger.exception("Error occurred in update_group, ", )
-            raise
-
-    def is_group_exists(self, domain_id, group_id):
-        """
-        <p>API method to check Group Exists</p>
-
-        Parameters:
-         - domainId
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.isGroupExists(domain_id, group_id)
-        except TException:
-            logger.exception("Error occurred in is_group_exists, ", )
-            raise
-
-    def delete_group(self, domain_id, group_id):
-        """
-        <p>API method to delete a group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.deleteGroup(domain_id, group_id)
-        except TException:
-            logger.exception("Error occurred in delete_group, ", )
-            raise
-
-    def get_group(self, domain_id, group_id):
-        """
-        <p>API method to get a group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.getGroup(domain_id, group_id)
-        except TException:
-            logger.exception("Error occurred in get_group, ", )
-            raise
-
-    def get_groups(self, domain_id, offset, limit):
-        """
-        <p>API method to get groups in a domainId.</p>
-
-        Parameters:
-         - domainId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getGroups(domain_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_groups, ", )
-            raise
-
-    def add_users_to_group(self, domain_id, user_ids, group_id):
-        """
-        <p>API method to add list of users to a group</p>
-
-        Parameters:
-         - domainId
-         - userIds
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.addUsersToGroup(domain_id, user_ids, group_id)
-        except TException:
-            logger.exception("Error occurred in add_users_to_group, ", )
-            raise
-
-    def remove_users_from_group(self, domain_id, user_ids, group_id):
-        """
-        <p>API method to remove users from a group</p>
-
-        Parameters:
-         - domainId
-         - userIds
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.removeUsersFromGroup(domain_id, user_ids, group_id)
-        except TException:
-            logger.exception("Error occurred in remove_users_from_group, ", )
-            raise
-
-    def transfer_group_ownership(self, domain_id, group_id, new_owner_id):
-        """
-        <p>API method to transfer group ownership</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - newOwnerId
-        """
-        try:
-            return self.sharing_registry_client_pool.transferGroupOwnership(domain_id, group_id, new_owner_id)
-        except TException:
-            logger.exception("Error occurred in transfer_group_ownership, ", )
-            raise
-
-    def add_group_admins(self, domain_id, group_id, admin_ids):
-        """
-        <p>API method to add Admin for a group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - adminIds
-        """
-        try:
-            return self.sharing_registry_client_pool.addGroupAdmins(domain_id, group_id, admin_ids)
-        except TException:
-            logger.exception("Error occurred in add_group_admins, ", )
-            raise
-
-    def remove_group_admins(self, domain_id, group_id, admin_ids):
-        """
-        <p>API method to remove Admin for a group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - adminIds
-        """
-        try:
-            return self.sharing_registry_client_pool.removeGroupAdmins(domain_id, group_id, admin_ids)
-        except TException:
-            logger.exception("Error occurred in remove_group_admins, ", )
-            raise
-
-    def has_admin_access(self, domain_id, group_id, admin_id):
-        """
-        <p>API method to check whether the user has Admin access for the group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - adminId
-        """
-        try:
-            return self.sharing_registry_client_pool.hasAdminAccess(domain_id, group_id, admin_id)
-        except TException:
-            logger.exception("Error occurred in has_admin_access, ", )
-            raise
-
-    def has_owner_access(self, domain_id, group_id, owner_id):
-        """
-        <p>API method to check whether the user has Admin access for the group</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - ownerId
-        """
-        try:
-            return self.sharing_registry_client_pool.hasOwnerAccess(domain_id, group_id, owner_id)
-        except TException:
-            logger.exception("Error occurred in has_owner_access, ", )
-            raise
-
-    def get_group_members_of_type_user(self, domain_id, group_id, offset, limit):
-        """
-        <p>API method to get list of child users in a group. Only the direct members will be returned.</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getGroupMembersOfTypeUser(domain_id, group_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_group_members_of_type_user, ", )
-            raise
-
-    def get_group_members_of_type_group(self, domain_id, group_id, offset, limit):
-        """
-        <p>API method to get list of child groups in a group. Only the direct members will be returned.</p>
-
-        Parameters:
-         - domainId
-         - groupId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getGroupMembersOfTypeGroup(domain_id, group_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_group_members_of_type_group, ", )
-            raise
-
-    def add_child_groups_to_parent_group(self, domain_id, child_ids, group_id):
-        """
-        <p>API method to add a child group to a parent group.</p>
-
-        Parameters:
-         - domainId
-         - childIds
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.addChildGroupsToParentGroup(domain_id, child_ids, group_id)
-        except TException:
-            logger.exception("Error occurred in add_child_groups_to_parent_group, ", )
-            raise
-
-    def remove_child_group_from_parent_group(self, domain_id, child_id, group_id):
-        """
-        <p>API method to remove a child group from parent group.</p>
-
-        Parameters:
-         - domainId
-         - childId
-         - groupId
-        """
-        try:
-            return self.sharing_registry_client_pool.removeChildGroupFromParentGroup(domain_id, child_id, group_id)
-        except TException:
-            logger.exception("Error occurred in remove_child_group_from_parent_group, ", )
-            raise
-
-    def get_all_member_groups_for_user(self, domain_id, user_id):
-        """
-        Parameters:
-         - domainId
-         - userId
-        """
-        try:
-            return self.sharing_registry_client_pool.getAllMemberGroupsForUser(domain_id, user_id)
-        except TException:
-            logger.exception("Error occurred in get_all_member_groups_for_user, ", )
-            raise
-
-    def create_entity_type(self, entity_type):
-        """
-        <p>API method to create a new entity type</p>
-
-        Parameters:
-         - entityType
-        """
-        try:
-            return self.sharing_registry_client_pool.createEntityType(entity_type)
-        except TException:
-            logger.exception("Error occurred in create_entity_type, ", )
-            raise
-
-    def update_entity_type(self, entity_type):
-        """
-        <p>API method to update entity type</p>
-
-        Parameters:
-         - entityType
-        """
-        try:
-            return self.sharing_registry_client_pool.updateEntityType(entity_type)
-        except TException:
-            logger.exception("Error occurred in update_entity_type, ", )
-            raise
-
-    def is_entity_type_exists(self, domain_id, entity_type_id):
-        """
-        <p>API method to check EntityType Exists</p>
-
-        Parameters:
-         - domainId
-         - entityTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.isEntityTypeExists(domain_id, entity_type_id)
-        except TException:
-            logger.exception("Error occurred in is_entity_type_exists, ", )
-            raise
-
-    def delete_entity_type(self, domain_id, entity_type_id):
-        """
-        <p>API method to delete entity type</p>
-
-        Parameters:
-         - domainId
-         - entityTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.deleteEntityType(domain_id, entity_type_id)
-        except TException:
-            logger.exception("Error occurred in delete_entity_type, ", )
-            raise
-
-    def get_entity_type(self, domain_id, entity_type_id):
-        """
-        <p>API method to get an entity type</p>
-
-        Parameters:
-         - domainId
-         - entityTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getEntityType(domain_id, entity_type_id)
-        except TException:
-            logger.exception("Error occurred in get_entity_type, ", )
-            raise
-
-    def get_entity_types(self, domain_id, offset, limit):
-        """
-        <p>API method to get entity types in a domainId.</p>
-
-        Parameters:
-         - domainId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getEntityTypes(domain_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_entity_types, ", )
-            raise
-
-    def create_entity(self, entity):
-        """
-        <p>API method to register new entity</p>
-
-        Parameters:
-         - entity
-        """
-        try:
-            return self.sharing_registry_client_pool.createEntity(entity)
-        except TException:
-            logger.exception("Error occurred in create_entity, ", )
-            raise
-
-    def update_entity(self, entity):
-        """
-        <p>API method to update entity</p>
-
-        Parameters:
-         - entity
-        """
-        try:
-            return self.sharing_registry_client_pool.updateEntity(entity)
-        except TException:
-            logger.exception("Error occurred in update_entity, ", )
-            raise
-
-    def is_entity_exists(self, domain_id, entity_id):
-        """
-        <p>API method to check Entity Exists</p>
-
-        Parameters:
-         - domainId
-         - entityId
-        """
-        try:
-            return self.sharing_registry_client_pool.isEntityExists(domain_id, entity_id)
-        except TException:
-            logger.exception("Error occurred in is_entity_exists, ", )
-            raise
-
-    def delete_entity(self, domain_id, entity_id):
-        """
-        <p>API method to delete entity</p>
-
-        Parameters:
-         - domainId
-         - entityId
-        """
-        try:
-            return self.sharing_registry_client_pool.deleteEntity(domain_id, entity_id)
-        except TException:
-            logger.exception("Error occurred in delete_entity, ", )
-            raise
-
-    def get_entity(self, domain_id, entity_id):
-        """
-        <p>API method to get entity</p>
-
-        Parameters:
-         - domainId
-         - entityId
-        """
-        try:
-            return self.sharing_registry_client_pool.getEntity(domain_id, entity_id)
-        except TException:
-            logger.exception("Error occurred in get_entity, ", )
-            raise
-
-    def search_entities(self, domain_id, user_id, filters, offset, limit):
-        """
-        <p>API method to search entities</p>
-
-        Parameters:
-         - domainId
-         - userId
-         - filters
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.searchEntities(domain_id, user_id, filters, offset, limit)
-        except TException:
-            logger.exception("Error occurred in search_entities, ", )
-            raise
-
-    def get_list_of_shared_users(self, domain_id, entity_id, permission_type_id):
-        """
-        <p>API method to get a list of shared users given the entity id</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getListOfSharedUsers(domain_id, entity_id, permission_type_id)
-        except TException:
-            logger.exception("Error occurred in get_list_of_shared_users, ", )
-            raise
-
-    def get_list_of_directly_shared_users(self, domain_id, entity_id, permission_type_id):
-        """
-        <p>API method to get a list of shared users given the entity id where the sharing type is directly applied</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getListOfDirectlySharedUsers(domain_id, entity_id,
-                                                                                  permission_type_id)
-        except TException:
-            logger.exception("Error occurred in get_list_of_directly_shared_users, ", )
-            raise
-
-    def get_list_of_shared_groups(self, domain_id, entity_id, permission_type_id):
-        """
-        <p>API method to get a list of shared groups given the entity id</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getListOfSharedGroups(domain_id, entity_id, permission_type_id)
-        except TException:
-            logger.exception("Error occurred in get_list_of_shared_groups, ", )
-            raise
-
-    def get_list_of_directly_shared_groups(self, domain_id, entity_id, permission_type_id):
-        """
-        <p>API method to get a list of directly shared groups given the entity id where the sharing type is directly applied</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getListOfDirectlySharedGroups(domain_id, entity_id,
-                                                                                   permission_type_id)
-        except TException:
-            logger.exception("Error occurred in get_list_of_directly_shared_groups, ", )
-            raise
-
-    def create_permission_type(self, permission_type):
-        """
-        <p>API method to create permission type</p>
-
-        Parameters:
-         - permissionType
-        """
-        try:
-            return self.sharing_registry_client_pool.createPermissionType(permission_type)
-        except TException:
-            logger.exception("Error occurred in create_permission_type, ", )
-            raise
-
-    def update_permission_type(self, permission_type):
-        """
-        <p>API method to update permission type</p>
-
-        Parameters:
-         - permissionType
-        """
-        try:
-            return self.sharing_registry_client_pool.updatePermissionType(permission_type)
-        except TException:
-            logger.exception("Error occurred in update_permission_type, ", )
-            raise
-
-    def is_permission_exists(self, domain_id, permission_id):
-        """
-        <p>API method to check Permission Exists</p>
-
-        Parameters:
-         - dimainId
-         - permissionId
-        """
-        try:
-            return self.sharing_registry_client_pool.isPermissionExists(domain_id, permission_id)
-        except TException:
-            logger.exception("Error occurred in is_permission_exists, ", )
-            raise
-
-    def delete_permission_type(self, domain_id, permission_type_id):
-        """
-        <p>API method to delete permission type</p>
-
-        Parameters:
-         - domainId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.deletePermissionType(domain_id, permission_type_id)
-        except TException:
-            logger.exception("Error occurred in delete_permission_type, ", )
-            raise
-
-    def get_permission_type(self, domain_id, permission_type_id):
-        """
-        <p>API method to get permission type</p>
-
-        Parameters:
-         - domainId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.getPermissionType(domain_id, permission_type_id)
-        except TException:
-            logger.exception("Error occurred in get_permission_type, ", )
-            raise
-
-    def get_permission_types(self, domain_id, offset, limit):
-        """
-        <p>API method to get list of permission types in a given domainId.</p>
-
-        Parameters:
-         - domainId
-         - offset
-         - limit
-        """
-        try:
-            return self.sharing_registry_client_pool.getPermissionTypes(domain_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in get_permission_types, ", )
-            raise
-
-    def share_entity_with_users(self, domain_id, entity_id, user_list, permission_type_id, cascade_permission):
-        """
-        <p>API method to share an entity with users</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - userList
-         - permissionTypeId
-         - cascadePermission
-        """
-        try:
-            return self.sharing_registry_client_pool.shareEntityWithUsers(domain_id, entity_id, user_list,
-                                                                          permission_type_id, cascade_permission)
-        except TException:
-            logger.exception("Error occurred in share_entity_with_users, ", )
-            raise
-
-    def revoke_entity_sharing_from_users(self, domain_id, entity_id, user_list, permission_type_id):
-        """
-        <p>API method to revoke sharing from a list of users</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - userList
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.revokeEntitySharingFromUsers(domain_id, entity_id, user_list,
-                                                                                  permission_type_id)
-        except TException:
-            logger.exception("Error occurred in revoke_entity_sharing_from_users, ", )
-            raise
-
-    def share_entity_with_groups(self, domain_id, entity_id, group_list, permission_type_id, cascade_permission):
-        """
-        <p>API method to share an entity with list of groups</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - groupList
-         - permissionTypeId
-         - cascadePermission
-        """
-        try:
-            return self.sharing_registry_client_pool.shareEntityWithGroups(domain_id, entity_id, group_list,
-                                                                           permission_type_id, cascade_permission)
-        except TException:
-            logger.exception("Error occurred in share_entity_with_groups, ", )
-            raise
-
-    def revoke_entity_sharing_from_groups(self, domain_id, entity_id, group_list, permission_type_id):
-        """
-        <p>API method to revoke sharing from list of users</p>
-
-        Parameters:
-         - domainId
-         - entityId
-         - groupList
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.revokeEntitySharingFromGroups(domain_id, entity_id, group_list,
-                                                                                   permission_type_id)
-        except TException:
-            logger.exception("Error occurred in revoke_entity_sharing_from_groups, ", )
-            raise
-
-    def user_has_access(self, domain_id, user_id, entity_id, permission_type_id):
-        """
-        <p>API method to check whether a user has access to a specific entity</p>
+            self.sharing_registry_client_settings.SHARING_API_SECURE,
+        )
+        # expose the needed functions
+        self.create_domain = self.client.createDomain
+        self.update_domain = self.client.updateDomain
+        self.is_domain_exists = self.client.isDomainExists
+        self.delete_domain = self.client.deleteDomain
+        self.get_domain = self.client.getDomain
+        self.get_domains = self.client.getDomains
+        self.create_user = self.client.createUser
+        self.updated_user = self.client.updatedUser
+        self.is_user_exists = self.client.isUserExists
+        self.delete_user = self.client.deleteUser
+        self.get_user = self.client.getUser
+        self.get_users = self.client.getUsers
+        self.create_group = self.client.createGroup
+        self.update_group = self.client.updateGroup
+        self.is_group_exists = self.client.isGroupExists
+        self.delete_group = self.client.deleteGroup
+        self.get_group = self.client.getGroup
+        self.get_groups = self.client.getGroups
+        self.add_users_to_group = self.client.addUsersToGroup
+        self.remove_users_from_group = self.client.removeUsersFromGroup
+        self.transfer_group_ownership = self.client.transferGroupOwnership
+        self.add_group_admins = self.client.addGroupAdmins
+        self.remove_group_admins = self.client.removeGroupAdmins
+        self.has_admin_access = self.client.hasAdminAccess
+        self.has_owner_access = self.client.hasOwnerAccess
+        self.get_group_members_of_type_user = self.client.getGroupMembersOfTypeUser
+        self.get_group_members_of_type_group = self.client.getGroupMembersOfTypeGroup
+        self.add_child_groups_to_parent_group = self.client.addChildGroupsToParentGroup
+        self.remove_child_group_from_parent_group = self.client.removeChildGroupFromParentGroup
+        self.get_all_member_groups_for_user = self.client.getAllMemberGroupsForUser
+        self.create_entity_type = self.client.createEntityType
+        self.update_entity_type = self.client.updateEntityType
+        self.is_entity_type_exists = self.client.isEntityTypeExists
+        self.delete_entity_type = self.client.deleteEntityType
+        self.get_entity_type = self.client.getEntityType
+        self.get_entity_types = self.client.getEntityTypes
+        self.create_entity = self.client.createEntity
+        self.update_entity = self.client.updateEntity
+        self.is_entity_exists = self.client.isEntityExists
+        self.delete_entity = self.client.deleteEntity
+        self.get_entity = self.client.getEntity
+        self.search_entities = self.client.searchEntities
+        self.get_list_of_shared_users = self.client.getListOfSharedUsers
+        self.get_list_of_directly_shared_users = self.client.getListOfDirectlySharedUsers
+        self.get_list_of_shared_groups = self.client.getListOfSharedGroups
+        self.get_list_of_directly_shared_groups = self.client.getListOfDirectlySharedGroups
+        self.create_permission_type = self.client.createPermissionType
+        self.update_permission_type = self.client.updatePermissionType
+        self.is_permission_exists = self.client.isPermissionExists
+        self.delete_permission_type = self.client.deletePermissionType
+        self.get_permission_type = self.client.getPermissionType
+        self.get_permission_types = self.client.getPermissionTypes
+        self.share_entity_with_users = self.client.shareEntityWithUsers
+        self.revoke_entity_sharing_from_users = self.client.revokeEntitySharingFromUsers
+        self.share_entity_with_groups = self.client.shareEntityWithGroups
+        self.revoke_entity_sharing_from_groups = self.client.revokeEntitySharingFromGroups
+        self.user_has_access = self.client.userHasAccess
 
-        Parameters:
-         - domainId
-         - userId
-         - entityId
-         - permissionTypeId
-        """
-        try:
-            return self.sharing_registry_client_pool.userHasAccess(domain_id, user_id, entity_id, permission_type_id)
-        except TException:
-            logger.exception("Error occurred in user_has_access, ", )
-            raise
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/tenant_profile_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/tenant_profile_client.py
index 2169e59ce1..e180492388 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/tenant_profile_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/tenant_profile_client.py
@@ -14,13 +14,12 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import ProfileServerSettings
+from airavata.service.profile.tenant.cpi.TenantProfileService import Client
 from airavata_sdk.transport import utils
-
-from airavata.api.error.ttypes import TException
+from airavata_sdk.transport.settings import ProfileServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -39,96 +38,20 @@ class TenantProfileClient(object):
     def __init__(self, configuration_file_location=None):
         self.tenant_profile_settings = ProfileServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.tenant_profile_client_pool = utils.initialize_tenant_profile_client(
+        self.client: Client = utils.initialize_tenant_profile_client(
             self.tenant_profile_settings.PROFILE_SERVICE_HOST,
             self.tenant_profile_settings.PROFILE_SERVICE_PORT,
-            self.tenant_profile_settings.PROFILE_SERVICE_SECURE)
-
-    def add_gateway(self, authz_token, gateway):
-        """
-        Return the airavataInternalGatewayId assigned to given gateway.
-
-        Parameters:
-         - authz_token
-         - gateway
-        """
-        try:
-            return self.tenant_profile_client_pool.addGateway(authz_token, gateway)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def update_gateway(self, authz_token, updated_gateway):
-        """
-        Parameters:
-         - authz_token
-         - updated_gateway
-        """
-        try:
-            return self.tenant_profile_client_pool.updateGateway(authz_token, updated_gateway)
-        except TException:
-            logger.exception("Error occurred in update_gateway, ", TException)
-            raise
-
-    def get_gateway(self, authz_token, airavata_internal_gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - airavata_internal_gateway_id
-        """
-        try:
-            return self.tenant_profile_client_pool.getGateway(authz_token, airavata_internal_gateway_id)
-        except TException:
-            logger.exception("Error occurred in get_gateway, ", TException)
-            raise
-
-    def delete_gateway(self, authz_token, airavata_internal_gateway_id, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - airavata_internal_gateway_id
-         - gateway_id
-        """
-        try:
-            return self.tenant_profile_client_pool.deleteGateway(authz_token, airavata_internal_gateway_id, gateway_id)
-        except TException:
-            logger.exception("Error occurred in delete_gateway, ", TException)
-            raise
-
-    def get_all_gateways(self, authz_token):
-        """
-        Parameters:
-         - authz_token
-        """
-        try:
-            return self.tenant_profile_client_pool.getAllGateways(authz_token)
-        except TException:
-            logger.exception("Error occurred in get_all_gateways, ", TException)
-            raise
-
-    def is_gateway_exist(self, authz_token, gateway_id):
-        """
-        Parameters:
-         - authz_token
-         - gateway_id
-        """
-        try:
-            return self.tenant_profile_client_pool.isGatewayExist(authz_token, gateway_id)
-        except TException:
-            logger.exception("Error occurred in is_gateway_exist, ", TException)
-            raise
+            self.tenant_profile_settings.PROFILE_SERVICE_SECURE,
+        )
+        # expose the needed functions
+        self.add_gateway = self.client.addGateway
+        self.update_gateway = self.client.updateGateway
+        self.get_gateway = self.client.getGateway
+        self.delete_gateway = self.client.deleteGateway
+        self.get_all_gateways = self.client.getAllGateways
+        self.is_gateway_exist = self.client.isGatewayExist
+        self.get_all_gateways_for_user = self.client.getAllGatewaysForUser
 
-    def get_all_gateways_for_user(self, authz_token, requester_username):
-        """
-        Parameters:
-         - authz_token
-         - requester_username
-        """
-        try:
-            return self.tenant_profile_client_pool.getAllGatewaysForUser(authz_token, requester_username)
-        except TException:
-            logger.exception("Error occurred in get_all_gateways_for_user, ", TException)
-            raise
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/user_profile_client.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/user_profile_client.py
index fa4ab1eda2..b90b369323 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/user_profile_client.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/user_profile_client.py
@@ -14,13 +14,13 @@
 #  limitations under the License.
 #
 
-import logging
 import configparser
+import logging
 
-from airavata_sdk.transport.settings import ProfileServerSettings
-from airavata_sdk.transport import utils
-
+from airavata.service.profile.user.cpi.UserProfileService import Client
 from airavata.api.error.ttypes import TException
+from airavata_sdk.transport import utils
+from airavata_sdk.transport.settings import ProfileServerSettings
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -39,107 +39,20 @@ class UserProfileClient(object):
     def __init__(self, configuration_file_location=None):
         self.user_profile_client_settings = ProfileServerSettings(configuration_file_location)
         self._load_settings(configuration_file_location)
-        self.user_profile_client_pool = utils.initialize_user_profile_client(
+        self.client = utils.initialize_user_profile_client(
             self.user_profile_client_settings.PROFILE_SERVICE_HOST,
             self.user_profile_client_settings.PROFILE_SERVICE_PORT,
             self.user_profile_client_settings.PROFILE_SERVICE_SECURE)
+        # expose the needed functions
+        self.get_api_version = self.client.getAPIVersion
+        self.initialize_user_profile = self.client.initializeUserProfile
+        self.add_user_profile = self.client.addUserProfile
+        self.update_user_profile = self.client.updateUserProfile
+        self.get_user_profile_by_id = self.client.getUserProfileById
+        self.delete_user_profile = self.client.deleteUserProfile
+        self.get_all_user_profiles_in_gateway = self.client.getAllUserProfilesInGateway
+        self.does_user_exist = self.client.doesUserExist
 
-    def get_api_version(self):
-        try:
-            return self.user_profile_client_pool.getAPIVersion()
-        except TException:
-            logger.exception("Error occurred in get_api_version, ", TException)
-            raise
-
-    def initialize_user_profile(self, authz_token):
-        """
-        Create an initial UserProfile based on information in the IAM service for this user.
-
-        Parameters:
-         - authzToken
-        """
-        try:
-            return self.user_profile_client_pool.initializeUserProfile(authz_token)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def add_user_profile(self, authz_token, user_profile):
-        """
-        Parameters:
-         - authzToken
-         - userProfile
-        """
-        try:
-            return self.user_profile_client_pool.addUserProfile(authz_token, user_profile)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def update_user_profile(self, authz_token, user_profile):
-        """
-        Parameters:
-         - authzToken
-         - userProfile
-        """
-        try:
-            return self.user_profile_client_pool.updateUserProfile(authz_token, user_profile)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def get_user_profile_by_id(self, authz_token, user_id, gateway_id):
-        """
-        Parameters:
-         - authzToken
-         - userId
-         - gatewayId
-        """
-        try:
-            return self.user_profile_client_pool.getUserProfileById(authz_token, user_id, gateway_id)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def delete_user_profile(self, authz_token, user_id, gateway_id):
-        """
-        Parameters:
-         - authzToken
-         - userId
-         - gatewayId
-        """
-        try:
-            return self.user_profile_client_pool.deleteUserProfile(authz_token, user_id, gateway_id)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def get_all_user_profiles_in_gateway(self, authz_token, gateway_id, offset, limit):
-        """
-        Parameters:
-         - authzToken
-         - gatewayId
-         - offset
-         - limit
-        """
-        try:
-            return self.user_profile_client_pool.getAllUserProfilesInGateway(authz_token, gateway_id, offset, limit)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
-
-    def does_user_exist(self, authz_token, user_id, gateway_id):
-        """
-        Parameters:
-         - authzToken
-         - userId
-         - gatewayId
-        """
-        try:
-            return self.user_profile_client_pool.doesUserExist(authz_token, user_id, gateway_id)
-        except TException:
-            logger.exception("Error occurred in add_gateway, ", TException)
-            raise
 
     def _load_settings(self, configuration_file_location):
         if configuration_file_location is not None:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/api_server_client_util.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/api_server_client_util.py
index c8a60e03ae..f1cb87cc03 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/api_server_client_util.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/api_server_client_util.py
@@ -15,13 +15,10 @@
 #
 
 import logging
-import time
-import logging
-import airavata_sdk.samples.file_utils as fb
-
-from airavata_sdk.clients.keycloak_token_fetcher import Authenticator
+from typing import Optional
 
 from airavata_sdk.clients.api_server_client import APIServerClient
+from airavata_sdk.clients.keycloak_token_fetcher import Authenticator
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.INFO)
@@ -43,7 +40,7 @@ class APIServerClientUtil(object):
         self.username = username
         self.api_server_client = APIServerClient(configuration_file_location)
 
-    def get_project_id(self, project_name):
+    def get_project_id(self, project_name) -> Optional[str]:
         response = self.api_server_client.get_user_projects(self.token, self.gateway_id, self.username, 10, 0)
         for project in response:
             if project.name == project_name and project.owner == self.username:
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/data_model_creation_util.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/data_model_creation_util.py
index 3aed933307..9f4de1c240 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/data_model_creation_util.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/clients/utils/data_model_creation_util.py
@@ -15,21 +15,14 @@
 #
 
 import logging
-import time
-import logging
-import airavata_sdk.samples.file_utils as fb
-
-from airavata_sdk.clients.keycloak_token_fetcher import Authenticator
-
-from airavata_sdk.clients.api_server_client import APIServerClient
-from airavata_sdk.clients.utils.api_server_client_util import APIServerClientUtil
 
+from airavata.model.application.io.ttypes import InputDataObjectType
+from airavata.model.data.replica.ttypes import DataProductModel, DataProductType, DataReplicaLocationModel, ReplicaLocationCategory
 from airavata.model.experiment.ttypes import ExperimentModel, ExperimentType, UserConfigurationDataModel
 from airavata.model.scheduling.ttypes import ComputationalResourceSchedulingModel
-from airavata.model.data.replica.ttypes import DataProductModel, DataProductType, DataReplicaLocationModel, \
-    ReplicaLocationCategory, ReplicaPersistentType
-
-from airavata.model.application.io.ttypes import InputDataObjectType
+from airavata_sdk.clients.api_server_client import APIServerClient
+from airavata_sdk.clients.keycloak_token_fetcher import Authenticator
+from airavata_sdk.clients.utils.api_server_client_util import APIServerClientUtil
 
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
@@ -58,6 +51,7 @@ class DataModelCreationUtil(object):
                                                          description):
         execution_id = self.airavata_util.get_execution_id(application_name)
         project_id = self.airavata_util.get_project_id(project_name)
+        assert project_id is not None
         experiment = ExperimentModel()
         experiment.experimentName = experiment_name
         experiment.gatewayId = self.gateway_id
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/transport/utils.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/transport/utils.py
index f708325ec3..7a1dfa1855 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/transport/utils.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/airavata_sdk/transport/utils.py
@@ -15,7 +15,7 @@
 #
 
 import logging
-from typing import Generic, TypeVar, Optional, cast
+from typing import Generic, Optional, TypeVar
 
 from thrift.protocol import TBinaryProtocol
 from thrift.protocol.TMultiplexedProtocol import TMultiplexedProtocol
@@ -25,15 +25,14 @@ from airavata.api import Airavata
 from airavata.api.credential.store import CredentialStoreService
 from airavata.api.sharing import SharingRegistryService
 from airavata.service.profile.groupmanager.cpi import GroupManagerService
-from airavata.service.profile.iam.admin.services.cpi import IamAdminServices
-from airavata.service.profile.tenant.cpi import TenantProfileService
-from airavata.service.profile.user.cpi import UserProfileService
-from airavata_sdk.transport import settings
-
 from airavata.service.profile.groupmanager.cpi.constants import GROUP_MANAGER_CPI_NAME
+from airavata.service.profile.iam.admin.services.cpi import IamAdminServices
 from airavata.service.profile.iam.admin.services.cpi.constants import IAM_ADMIN_SERVICES_CPI_NAME
+from airavata.service.profile.tenant.cpi import TenantProfileService
 from airavata.service.profile.tenant.cpi.constants import TENANT_PROFILE_CPI_NAME
+from airavata.service.profile.user.cpi import UserProfileService
 from airavata.service.profile.user.cpi.constants import USER_PROFILE_CPI_NAME
+from airavata_sdk.transport import settings
 
 log = logging.getLogger(__name__)
 
@@ -54,13 +53,12 @@ T = TypeVar(
   CredentialStoreService.Client,
 )
 
-class ThriftClient(Generic[T]):
+class ThriftClient:
   host: str
   port: int
   secure: bool
   service_name: Optional[str]
   transport: TTransport.TTransportBase
-  client: T
 
   def __init__(self, klass, host: str, port: int, secure: bool = False, service_name: Optional[str] = None):
     self.host = host
@@ -99,53 +97,53 @@ def initialize_api_client_pool(
     host=default_api_server_settings.API_SERVER_HOST,
     port=default_api_server_settings.API_SERVER_PORT,
     secure=default_api_server_settings.API_SERVER_SECURE,
-):
-  return ThriftClient[Airavata.Client](Airavata.Client, host, port, secure).client
+) -> Airavata.Client:
+  return ThriftClient(Airavata.Client, host, port, secure).client
 
 
 def initialize_group_manager_client(
     host=default_profile_server_settings.PROFILE_SERVICE_HOST,
     port=default_profile_server_settings.PROFILE_SERVICE_PORT,
     secure=default_profile_server_settings.PROFILE_SERVICE_SECURE,
-):
-  return ThriftClient[GroupManagerService.Client](GroupManagerService.Client, host, port, secure, GROUP_MANAGER_CPI_NAME).client
+) -> GroupManagerService.Client:
+  return ThriftClient(GroupManagerService.Client, host, port, secure, GROUP_MANAGER_CPI_NAME).client
 
 
 def initialize_iam_admin_client(
     host=default_profile_server_settings.PROFILE_SERVICE_HOST,
     port=default_profile_server_settings.PROFILE_SERVICE_PORT,
     secure=default_profile_server_settings.PROFILE_SERVICE_SECURE,
-):
-  return ThriftClient[IamAdminServices.Client](IamAdminServices.Client, host, port, secure, IAM_ADMIN_SERVICES_CPI_NAME).client
+) -> IamAdminServices.Client:
+  return ThriftClient(IamAdminServices.Client, host, port, secure, IAM_ADMIN_SERVICES_CPI_NAME).client
 
 
 def initialize_tenant_profile_client(
     host=default_profile_server_settings.PROFILE_SERVICE_HOST,
     port=default_profile_server_settings.PROFILE_SERVICE_PORT,
     secure=default_profile_server_settings.PROFILE_SERVICE_SECURE,
-):
-  return ThriftClient[TenantProfileService.Client](TenantProfileService.Client, host, port, secure, TENANT_PROFILE_CPI_NAME).client
+) -> TenantProfileService.Client:
+  return ThriftClient(TenantProfileService.Client, host, port, secure, TENANT_PROFILE_CPI_NAME).client
 
 
 def initialize_user_profile_client(
     host=default_profile_server_settings.PROFILE_SERVICE_HOST,
     port=default_profile_server_settings.PROFILE_SERVICE_PORT,
     secure=default_profile_server_settings.PROFILE_SERVICE_SECURE,
-):
-  return ThriftClient[UserProfileService.Client](UserProfileService.Client, host, port, secure, USER_PROFILE_CPI_NAME).client
+) -> UserProfileService.Client:
+  return ThriftClient(UserProfileService.Client, host, port, secure, USER_PROFILE_CPI_NAME).client
 
 
 def initialize_sharing_registry_client(
     host=default_sharing_server_settings.SHARING_API_HOST,
     port=default_sharing_server_settings.SHARING_API_PORT,
     secure=default_sharing_server_settings.SHARING_API_SECURE,
-):
-  return ThriftClient[SharingRegistryService.Client](SharingRegistryService.Client, host, port, secure).client
+) -> SharingRegistryService.Client:
+  return ThriftClient(SharingRegistryService.Client, host, port, secure).client
 
 
 def initialize_credential_store_client(
     host=default_credential_store_server_settings.CREDENTIAL_STORE_API_HOST,
     port=default_credential_store_server_settings.CREDENTIAL_STORE_API_PORT,
     secure=default_credential_store_server_settings.CREDENTIAL_STORE_API_SECURE,
-):
-  return ThriftClient[CredentialStoreService.Client](CredentialStoreService.Client, host, port, secure).client
+) -> CredentialStoreService.Client:
+  return ThriftClient(CredentialStoreService.Client, host, port, secure).client