You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/08/09 18:00:53 UTC

[13/32] airavata-sandbox git commit: adding jupyter note books for Airavata

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
new file mode 100644
index 0000000..9e58d3f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
@@ -0,0 +1,47815 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+import logging
+from ttypes import *
+from thrift.Thrift import TProcessor
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class Iface:
+  def getAPIVersion(self, authzToken):
+    """
+    Fetch Apache Airavata API version
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def isUserExists(self, authzToken, gatewayId, userName):
+    """
+    Verify if User Exists within Airavata.
+
+    @param gatewayId
+
+     @param userName
+
+    @return true/false
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+    """
+    pass
+
+  def addGateway(self, authzToken, gateway):
+    """
+    Register a Gateway with Airavata.
+
+    @param gateway
+       The gateway data model.
+
+    @return gatewayId
+      Th unique identifier of the  newly registered gateway.
+
+
+
+    Parameters:
+     - authzToken
+     - gateway
+    """
+    pass
+
+  def getAllUsersInGateway(self, authzToken, gatewayId):
+    """
+    Get all users in the gateway
+
+    @param gatewayId
+       The gateway data model.
+
+    @return users
+      list of usernames of the users in the gateway
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def updateGateway(self, authzToken, gatewayId, updatedGateway):
+    """
+    Update previously registered Gateway metadata.
+
+    @param gatewayId
+       The gateway Id of the Gateway which require an update.
+
+    @return gateway
+       Modified gateway obejct.
+
+    @exception AiravataClientException
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - updatedGateway
+    """
+    pass
+
+  def getGateway(self, authzToken, gatewayId):
+    """
+    Get Gateway details by providing gatewayId
+
+    @param gatewayId
+       The gateway Id of the Gateway.
+
+    @return gateway
+       Gateway obejct.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def deleteGateway(self, authzToken, gatewayId):
+    """
+    Delete a Gateway
+
+    @param gatewayId
+       The gateway Id of the Gateway to be deleted.
+
+    @return boolean
+       Boolean identifier for the success or failure of the deletion operation.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getAllGateways(self, authzToken):
+    """
+    Get All the Gateways Connected to Airavata.
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def isGatewayExist(self, authzToken, gatewayId):
+    """
+    Check for the Existance of a Gateway within Airavata
+
+    @param gatewayId
+      Provide the gatewayId of the gateway you want to check the existancy
+
+    @return boolean
+      Boolean idetifier for the existance or non-existane of the gatewayId
+
+    @return gatewayId
+      return the gatewayId of the existing gateway.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def createNotification(self, authzToken, notification):
+    """
+      * API methods to retrieve notifications
+    *
+
+    Parameters:
+     - authzToken
+     - notification
+    """
+    pass
+
+  def updateNotification(self, authzToken, notification):
+    """
+    Parameters:
+     - authzToken
+     - notification
+    """
+    pass
+
+  def deleteNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    pass
+
+  def getNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    pass
+
+  def getAllNotifications(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+    """
+    Generate and Register SSH Key Pair with Airavata Credential Store.
+
+    @param gatewayId
+       The identifier for the requested Gateway.
+
+    @param userName
+       The User for which the credential should be registered. For community accounts, this user is the name of the
+       community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+    @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:
+     - authzToken
+     - gatewayId
+     - userName
+    """
+    pass
+
+  def registerPwdCredential(self, authzToken, gatewayId, portalUserName, loginUserName, password, description):
+    """
+    Generate and Register Username PWD Pair with Airavata Credential Store.
+
+    @param gatewayId
+       The identifier for the requested Gateway.
+
+    @param portalUserName
+       The User for which the credential should be registered. For community accounts, this user is the name of the
+       community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+    @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:
+     - authzToken
+     - gatewayId
+     - portalUserName
+     - loginUserName
+     - password
+     - description
+    """
+    pass
+
+  def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+    """
+    Get a Public Key by Providing the Token
+
+    @param CredStoreToken
+       Credential Store Token which you want to find the Public Key for.
+
+    @param gatewayId
+       This is the unique identifier of your gateway where the token and public key was generated from.
+
+    @return publicKey
+
+
+
+    Parameters:
+     - authzToken
+     - airavataCredStoreToken
+     - gatewayId
+    """
+    pass
+
+  def getAllGatewaySSHPubKeys(self, authzToken, gatewayId):
+    """
+
+    Get all Public Keys of the Gateway
+
+    @param CredStoreToken
+       Credential Store Token which you want to find the Public Key for.
+
+    @param gatewayId
+       This is the unique identifier of your gateway where the token and public key was generated from.
+
+    @return publicKey
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getAllGatewayPWDCredentials(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def deleteSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+    """
+
+    Delete a Gateway
+
+    @param gatewayId
+       The gateway Id of the Gateway to be deleted.
+
+    @return boolean
+       Boolean identifier for the success or failure of the deletion operation.
+
+
+
+    Parameters:
+     - authzToken
+     - airavataCredStoreToken
+     - gatewayId
+    """
+    pass
+
+  def deletePWDCredential(self, authzToken, airavataCredStoreToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - airavataCredStoreToken
+     - gatewayId
+    """
+    pass
+
+  def createProject(self, authzToken, gatewayId, 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:
+     - authzToken
+     - gatewayId
+     - project
+    """
+    pass
+
+  def updateProject(self, authzToken, projectId, updatedProject):
+    """
+
+    Update an Existing Project
+
+    @param projectId
+       The projectId of the project needed an update.
+
+    @return void
+       Currently this does not return any value.
+
+
+
+    Parameters:
+     - authzToken
+     - projectId
+     - updatedProject
+    """
+    pass
+
+  def getProject(self, authzToken, projectId):
+    """
+
+    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:
+     - authzToken
+     - projectId
+    """
+    pass
+
+  def deleteProject(self, authzToken, projectId):
+    """
+
+    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:
+     - authzToken
+     - projectId
+    """
+    pass
+
+  def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+    """
+
+    Get All User Projects
+    Get all Project for the user with pagination. Results will be ordered based on creation time DESC.
+
+    @param gatewayId
+       The identifier for the requested gateway.
+
+    @param userName
+       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:
+     - authzToken
+     - gatewayId
+     - userName
+     - limit
+     - offset
+    """
+    pass
+
+  def searchProjects(self, authzToken, gatewayId, userName, 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:
+     - authzToken
+     - gatewayId
+     - userName
+     - filters
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperiments(self, authzToken, gatewayId, userName, 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:
+     - authzToken
+     - gatewayId
+     - userName
+     - filters
+     - limit
+     - offset
+    """
+    pass
+
+  def getExperimentStatistics(self, authzToken, gatewayId, fromTime, toTime):
+    """
+
+    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 gatewayId
+          Unique identifier of the gateway making the request to fetch statistics.
+
+    @param fromTime
+          Starting date time.
+
+    @param toTime
+          Ending data time.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - fromTime
+     - toTime
+    """
+    pass
+
+  def getExperimentsInProject(self, authzToken, projectId, limit, offset):
+    """
+
+    Get All Experiments of the Project
+    Get Experiments within project with pagination. Results will be sorted based on creation time DESC.
+
+    @param projectId
+          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:
+     - authzToken
+     - projectId
+     - limit
+     - offset
+    """
+    pass
+
+  def getUserExperiments(self, authzToken, gatewayId, userName, 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:
+     - authzToken
+     - gatewayId
+     - userName
+     - limit
+     - offset
+    """
+    pass
+
+  def createExperiment(self, authzToken, gatewayId, 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:
+     - authzToken
+     - gatewayId
+     - experiment
+    """
+    pass
+
+  def deleteExperiment(self, authzToken, experimentId):
+    """
+
+    Delete an Experiment
+    If the experiment is not already launched experiment can be deleted.
+
+    @param authzToken
+
+    @param experiementId
+        Experiment ID of the experimnet you want to delete.
+
+    @return boolean
+        Identifier for the success or failure of the deletion operation.
+
+
+
+    Parameters:
+     - authzToken
+     - experimentId
+    """
+    pass
+
+  def getExperiment(self, authzToken, airavataExperimentId):
+    """
+      *
+      * 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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getDetailedExperimentTree(self, authzToken, airavataExperimentId):
+    """
+
+    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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def updateExperiment(self, authzToken, airavataExperimentId, 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:
+     - authzToken
+     - airavataExperimentId
+     - experiment
+    """
+    pass
+
+  def updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - userConfiguration
+    """
+    pass
+
+  def updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - resourceScheduling
+    """
+    pass
+
+  def validateExperiment(self, authzToken, airavataExperimentId):
+    """
+     *
+     * 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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+    """
+
+    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.
+
+    @gatewayId
+       ID of the gateway which will launch the experiment.
+
+    @param airavataExperimentId
+       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:
+     - authzToken
+     - airavataExperimentId
+     - gatewayId
+    """
+    pass
+
+  def getExperimentStatus(self, authzToken, airavataExperimentId):
+    """
+
+    Get Experiment Status
+
+    Obtain the status of an experiment by providing the Experiment Id
+
+    @param authzToken
+
+    @param airavataExperimentId
+        Experiment ID of the experimnet you require the status.
+
+    @return ExperimentStatus
+        ExperimentStatus model with the current status will be returned.
+
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getExperimentOutputs(self, authzToken, airavataExperimentId):
+    """
+
+    Get Experiment Outputs
+    This method to be used when need to obtain final outputs of a certain Experiment
+
+    @param authzToken
+
+    @param airavataExperimentId
+        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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getIntermediateOutputs(self, authzToken, airavataExperimentId):
+    """
+
+    Get Intermediate Experiment Outputs
+    This method to be used when need to obtain intermediate outputs of a certain Experiment
+
+    @param authzToken
+
+    @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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getJobStatuses(self, authzToken, airavataExperimentId):
+    """
+
+    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 authzToken
+
+    @param experiementId
+        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:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getJobDetails(self, authzToken, airavataExperimentId):
+    """
+
+    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 authzToken
+
+    @param experiementId
+        Experiment ID of the experimnet you need job details.
+
+    @return list of JobDetails
+        Job details.
+
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def cloneExperiment(self, authzToken, existingExperimentID, newExperimentName):
+    """
+
+    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 newExperimentName
+       experiment name that should be used in the cloned experiment
+
+    @param updatedExperiment
+       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.
+
+    @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:
+     - authzToken
+     - existingExperimentID
+     - newExperimentName
+    """
+    pass
+
+  def terminateExperiment(self, authzToken, airavataExperimentId, gatewayId):
+    """
+
+    Terminate a running Experiment.
+
+    @gatewayId
+       ID of the gateway which will terminate the running Experiment.
+
+    @param airavataExperimentId
+       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:
+     - authzToken
+     - airavataExperimentId
+     - gatewayId
+    """
+    pass
+
+  def registerApplicationModule(self, authzToken, gatewayId, applicationModule):
+    """
+
+    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:
+     - authzToken
+     - gatewayId
+     - applicationModule
+    """
+    pass
+
+  def getApplicationModule(self, authzToken, appModuleId):
+    """
+
+    Fetch a Application Module.
+
+    @param appModuleId
+      The unique identifier of the application module required
+
+    @return applicationModule
+      Returns an Application Module Object.
+
+
+    Parameters:
+     - authzToken
+     - appModuleId
+    """
+    pass
+
+  def updateApplicationModule(self, authzToken, appModuleId, applicationModule):
+    """
+
+    Update a Application Module.
+
+    @param appModuleId
+      The identifier for the requested application module to be updated.
+
+    @param applicationModule
+       Application Module Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - appModuleId
+     - applicationModule
+    """
+    pass
+
+  def getAllAppModules(self, authzToken, gatewayId):
+    """
+
+    Fetch all Application Module Descriptions.
+
+    @param gatewayId
+       ID of the gateway which need to list all available application deployment documentation.
+
+    @return list
+       Returns the list of all Application Module Objects.
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def deleteApplicationModule(self, authzToken, appModuleId):
+    """
+
+    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:
+     - authzToken
+     - appModuleId
+    """
+    pass
+
+  def registerApplicationDeployment(self, authzToken, gatewayId, applicationDeployment):
+    """
+
+    Register an Application Deployment.
+
+    @param gatewayId
+       ID of the gateway which is registering the new Application Deployment.
+
+    @param applicationDeployment
+       Application Module Object created from the datamodel.
+
+    @return appDeploymentId
+      Returns a server-side generated airavata appDeployment globally unique identifier.
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - applicationDeployment
+    """
+    pass
+
+  def getApplicationDeployment(self, authzToken, appDeploymentId):
+    """
+
+    Fetch a Application Deployment.
+
+    @param appDeploymentId
+      The identifier for the requested application module
+
+    @return applicationDeployment
+      Returns a application Deployment Object.
+
+
+    Parameters:
+     - authzToken
+     - appDeploymentId
+    """
+    pass
+
+  def updateApplicationDeployment(self, authzToken, appDeploymentId, applicationDeployment):
+    """
+
+    Update an Application Deployment.
+
+    @param appDeploymentId
+      The identifier of the requested application deployment to be updated.
+
+    @param appDeployment
+       Application Deployment Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - appDeploymentId
+     - applicationDeployment
+    """
+    pass
+
+  def deleteApplicationDeployment(self, authzToken, appDeploymentId):
+    """
+
+    Delete an Application Deployment.
+
+    @param appDeploymentId
+      The unique identifier of application deployment to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - appDeploymentId
+    """
+    pass
+
+  def getAllApplicationDeployments(self, authzToken, gatewayId):
+    """
+
+    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:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getAppModuleDeployedResources(self, authzToken, appModuleId):
+    """
+    Fetch a list of Deployed Compute Hosts.
+
+    @param appModuleId
+      The identifier for the requested application module
+
+    @return list<string>
+      Returns a list of Deployed Resources.
+
+
+    Parameters:
+     - authzToken
+     - appModuleId
+    """
+    pass
+
+  def registerApplicationInterface(self, authzToken, gatewayId, applicationInterface):
+    """
+
+    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:
+     - authzToken
+     - gatewayId
+     - applicationInterface
+    """
+    pass
+
+  def cloneApplicationInterface(self, authzToken, existingAppInterfaceID, newApplicationName, gatewayId):
+    """
+
+    Clone an Application Interface.
+
+    @gatewayId
+       The identifier for the gateway profile to be requested
+
+    @param existingAppInterfaceID
+       Identifier of the existing Application interface you wich to clone.
+
+    @param newApplicationName
+       Name for the new application interface.
+
+    @return appInterfaceId
+       Returns a server-side generated globally unique identifier for the newly cloned application interface.
+
+
+    Parameters:
+     - authzToken
+     - existingAppInterfaceID
+     - newApplicationName
+     - gatewayId
+    """
+    pass
+
+  def getApplicationInterface(self, authzToken, appInterfaceId):
+    """
+
+    Fetch an Application Interface.
+
+    @param appInterfaceId
+      The identifier for the requested application interface.
+
+    @return applicationInterface
+      Returns an application Interface Object.
+
+
+    Parameters:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def updateApplicationInterface(self, authzToken, appInterfaceId, applicationInterface):
+    """
+
+    Update a Application Interface.
+
+    @param appInterfaceId
+      The identifier of the requested application deployment to be updated.
+
+    @param appInterface
+       Application Interface Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - appInterfaceId
+     - applicationInterface
+    """
+    pass
+
+  def deleteApplicationInterface(self, authzToken, appInterfaceId):
+    """
+
+    Delete an Application Interface.
+
+    @param appInterfaceId
+      The identifier for the requested application interface to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def getAllApplicationInterfaceNames(self, authzToken, gatewayId):
+    """
+
+    Fetch name and ID of  Application Interface documents.
+
+
+    @return map<applicationId, applicationInterfaceNames>
+      Returns a list of application interfaces with corresponsing ID's
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getAllApplicationInterfaces(self, authzToken, gatewayId):
+    """
+
+    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:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getApplicationInputs(self, authzToken, appInterfaceId):
+    """
+
+    Fetch the list of Application Inputs.
+
+    @param appInterfaceId
+      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:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def getApplicationOutputs(self, authzToken, appInterfaceId):
+    """
+
+    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:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def getAvailableAppInterfaceComputeResources(self, authzToken, appInterfaceId):
+    """
+
+    Fetch a list of all deployed Compute Hosts for a given application interfaces.
+
+    @param appInterfaceId
+      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:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def registerComputeResource(self, authzToken, computeResourceDescription):
+    """
+    Register a Compute Resource.
+
+    @param computeResourceDescription
+       Compute Resource Object created from the datamodel.
+
+    @return computeResourceId
+      Returns a server-side generated airavata compute resource globally unique identifier.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceDescription
+    """
+    pass
+
+  def getComputeResource(self, authzToken, computeResourceId):
+    """
+    Fetch the given Compute Resource.
+
+    @param computeResourceId
+      The identifier for the requested compute resource
+
+    @return computeResourceDescription
+       Compute Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+    """
+    pass
+
+  def getAllComputeResourceNames(self, authzToken):
+    """
+
+    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:
+     - authzToken
+    """
+    pass
+
+  def updateComputeResource(self, authzToken, computeResourceId, computeResourceDescription):
+    """
+    Update a Compute Resource.
+
+    @param computeResourceId
+      The identifier for the requested compute resource to be updated.
+
+    @param computeResourceDescription
+       Compute Resource Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - computeResourceDescription
+    """
+    pass
+
+  def deleteComputeResource(self, authzToken, computeResourceId):
+    """
+    Delete a Compute Resource.
+
+    @param computeResourceId
+      The identifier for the requested compute resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+    """
+    pass
+
+  def registerStorageResource(self, authzToken, storageResourceDescription):
+    """
+    Register a Storage Resource.
+
+    @param storageResourceDescription
+       Storge Resource Object created from the datamodel.
+
+    @return storageResourceId
+      Returns a server-side generated airavata storage resource globally unique identifier.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceDescription
+    """
+    pass
+
+  def getStorageResource(self, authzToken, storageResourceId):
+    """
+    Fetch the given Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested storage resource
+
+    @return storageResourceDescription
+       Storage Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    pass
+
+  def getAllStorageResourceNames(self, authzToken):
+    """
+    Fetch all registered Storage Resources.
+
+    @return A map of registered compute resource id's and thier corresponding hostnames.
+       Compute Resource Object created from the datamodel..
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def updateStorageResource(self, authzToken, storageResourceId, storageResourceDescription):
+    """
+    Update a Storage Resource.
+
+    @param storageResourceId
+      The identifier for the requested compute resource to be updated.
+
+    @param storageResourceDescription
+       Storage Resource Object created from the datamodel.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+     - storageResourceDescription
+    """
+    pass
+
+  def deleteStorageResource(self, authzToken, storageResourceId):
+    """
+    Delete a Storage Resource.
+
+    @param storageResourceId
+      The identifier of the requested compute resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - storageResourceId
+    """
+    pass
+
+  def addLocalSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, localSubmission):
+    """
+    Add a Local Job Submission details to a compute resource
+     App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+    @param computeResourceId
+      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 localSubmission
+      The LOCALSubmission object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - localSubmission
+    """
+    pass
+
+  def updateLocalSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, localSubmission):
+    """
+    Update the given Local Job Submission details
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be updated.
+
+    @param localSubmission
+      The LOCALSubmission object to be updated.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - localSubmission
+    """
+    pass
+
+  def getLocalJobSubmission(self, authzToken, jobSubmissionId):
+    """
+    This method returns localJobSubmission object
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be retrieved.
+     @return LOCALSubmission instance
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionId
+    """
+    pass
+
+  def addSSHJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+    """
+    Add a SSH Job Submission details to a compute resource
+     App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+    @param computeResourceId
+      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 sshJobSubmission
+      The SSHJobSubmission object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - sshJobSubmission
+    """
+    pass
+
+  def addSSHForkJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+    """
+    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 computeResourceId
+      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 sshJobSubmission
+      The SSHJobSubmission object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - sshJobSubmission
+    """
+    pass
+
+  def getSSHJobSubmission(self, authzToken, jobSubmissionId):
+    """
+    This method returns SSHJobSubmission object
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be retrieved.
+     @return SSHJobSubmission instance
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionId
+    """
+    pass
+
+  def addUNICOREJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, unicoreJobSubmission):
+    """
+
+    Add a UNICORE Job Submission details to a compute resource
+     App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+    @param computeResourceId
+      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 unicoreJobSubmission
+      The UnicoreJobSubmission object to be added to the resource.
+
+    @return status
+     Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - unicoreJobSubmission
+    """
+    pass
+
+  def getUnicoreJobSubmission(self, authzToken, jobSubmissionId):
+    """
+      *
+      * This method returns UnicoreJobSubmission object
+      *
+      * @param jobSubmissionInterfaceId
+      *   The identifier of the JobSubmission Interface to be retrieved.
+      *  @return UnicoreJobSubmission instance
+      *
+    *
+
+    Parameters:
+     - authzToken
+     - jobSubmissionId
+    """
+    pass
+
+  def addCloudJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, cloudSubmission):
+    """
+       *
+       * Add a Cloud Job Submission details to a compute resource
+       *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+       *
+       * @param computeResourceId
+       *   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 sshJobSubmission
+       *   The SSHJobSubmission object to be added to the resource.
+       *
+       * @return status
+       *   Returns the unique job submission id.
+       *
+    *
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - cloudSubmission
+    """
+    pass
+
+  def getCloudJobSubmission(self, authzToken, jobSubmissionId):
+    """
+       *
+       * This method returns cloudJobSubmission object
+       * @param jobSubmissionInterfaceI
+           *   The identifier of the JobSubmission Interface to be retrieved.
+       *  @return CloudJobSubmission instance
+    *
+
+    Parameters:
+     - authzToken
+     - jobSubmissionId
+    """
+    pass
+
+  def updateSSHJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+    """
+
+    Update the given SSH Job Submission details
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be updated.
+
+    @param sshJobSubmission
+      The SSHJobSubmission object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - sshJobSubmission
+    """
+    pass
+
+  def updateCloudJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+    """
+
+    Update the cloud Job Submission details
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be updated.
+
+    @param cloudJobSubmission
+      The CloudJobSubmission object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - sshJobSubmission
+    """
+    pass
+
+  def updateUnicoreJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, unicoreJobSubmission):
+    """
+
+    Update the UNIOCRE Job Submission details
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be updated.
+
+    @param UnicoreJobSubmission
+      The UnicoreJobSubmission object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - unicoreJobSubmission
+    """
+    pass
+
+  def addLocalDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, localDataMovement):
+    """
+
+    Add a Local data movement details to a compute resource
+     App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+    @param productUri
+      The identifier of the compute resource to which JobSubmission protocol to be added
+
+    @param DMType
+      DMType object to be added to the resource.
+
+    @param priorityOrder
+      Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+    @param localDataMovement
+      The LOCALDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+
+    Parameters:
+     - authzToken
+     - productUri
+     - dataMoveType
+     - priorityOrder
+     - localDataMovement
+    """
+    pass
+
+  def updateLocalDataMovementDetails(self, authzToken, dataMovementInterfaceId, localDataMovement):
+    """
+
+    Update the given Local data movement details
+
+    @param dataMovementInterfaceId
+      The identifier of the data movement Interface to be updated.
+
+    @param localDataMovement
+      The LOCALDataMovement object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - localDataMovement
+    """
+    pass
+
+  def getLocalDataMovement(self, authzToken, dataMovementId):
+    """
+
+    This method returns local datamovement object.
+
+    @param dataMovementId
+      The identifier of the datamovement Interface to be retrieved.
+
+     @return LOCALDataMovement instance
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementId
+    """
+    pass
+
+  def addSCPDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, scpDataMovement):
+    """
+
+    Add a SCP data movement details to a compute resource
+     App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+    @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:
+     - authzToken
+     - productUri
+     - dataMoveType
+     - priorityOrder
+     - scpDataMovement
+    """
+    pass
+
+  def updateSCPDataMovementDetails(self, authzToken, dataMovementInterfaceId, scpDataMovement):
+    """
+
+    Update the given scp data movement details
+     App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+    @param dataMovementInterfaceId
+      The identifier of the data movement Interface to be updated.
+
+    @param scpDataMovement
+      The SCPDataMovement object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - scpDataMovement
+    """
+    pass
+
+  def getSCPDataMovement(self, authzToken, dataMovementId):
+    """
+    This method returns SCP datamovement object
+
+    @param dataMovementId
+      The identifier of the datamovement Interface to be retrieved.
+
+    @return SCPDataMovement instance
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementId
+    """
+    pass
+
+  def addUnicoreDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, unicoreDataMovement):
+    """
+
+    Add a UNICORE 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 data movement 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 UnicoreDataMovement
+      The UnicoreDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique data movement id.
+
+
+    Parameters:
+     - authzToken
+     - productUri
+     - dataMoveType
+     - priorityOrder
+     - unicoreDataMovement
+    """
+    pass
+
+  def updateUnicoreDataMovementDetails(self, authzToken, dataMovementInterfaceId, unicoreDataMovement):
+    """
+
+    Update a selected UNICORE data movement details
+     App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+    @param dataMovementInterfaceId
+      The identifier of the data movement Interface to be updated.
+
+    @param UnicoreDataMovement
+      The UnicoreDataMovement object to be updated.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - unicoreDataMovement
+    """
+    pass
+
+  def getUnicoreDataMovement(self, authzToken, dataMovementId):
+    """
+
+    This method returns UNICORE datamovement object
+
+    @param dataMovementId
+      The identifier of the datamovement Interface to be retrieved.
+
+    @return UnicoreDataMovement instance
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementId
+    """
+    pass
+
+  def addGridFTPDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, gridFTPDataMovement):
+    """
+
+    Add a GridFTP data movement details to a compute resource
+     App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+    @param productUri
+      The identifier of the compute resource to which dataMovement protocol to be added
+
+    @param DMType
+       The DMType object to be added to the resource.
+
+    @param priorityOrder
+      Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+    @param gridFTPDataMovement
+      The GridFTPDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique data movement id.
+
+
+
+    Parameters:
+     - authzToken
+     - productUri
+     - dataMoveType
+     - priorityOrder
+     - gridFTPDataMovement
+    """
+    pass
+
+  def updateGridFTPDataMovementDetails(self, authzToken, dataMovementInterfaceId, gridFTPDataMovement):
+    """
+    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 dataMovementInterfaceId
+      The identifier of the data movement Interface to be updated.
+
+    @param gridFTPDataMovement
+      The GridFTPDataMovement object to be updated.
+
+    @return boolean
+      Returns a success/failure of the update.
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - gridFTPDataMovement
+    """
+    pass
+
+  def getGridFTPDataMovement(self, authzToken, dataMovementId):
+    """
+    This method returns GridFTP datamovement object
+
+    @param dataMovementId
+      The identifier of the datamovement Interface to be retrieved.
+
+     @return GridFTPDataMovement instance
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementId
+    """
+    pass
+
+  def changeJobSubmissionPriority(self, authzToken, jobSubmissionInterfaceId, newPriorityOrder):
+    """
+    Change the priority of a given job submisison interface
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be changed
+
+    @param priorityOrder
+      The new priority of the job manager interface.
+
+    @return status
+      Returns a success/failure of the change.
+
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - newPriorityOrder
+    """
+    pass
+
+  def changeDataMovementPriority(self, authzToken, dataMovementInterfaceId, newPriorityOrder):
+    """
+    Change the priority of a given data movement interface
+
+    @param dataMovementInterfaceId
+      The identifier of the DataMovement Interface to be changed
+
+    @param priorityOrder
+      The new priority of the data movement interface.
+
+    @return status
+      Returns a success/failure of the change.
+
+
+
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - newPriorityOrder
+    """
+    pass
+
+  def changeJobSubmissionPriorities(self, authzToken, jobSubmissionPriorityMap):
+    """
+    Change the priorities of a given set of job submission interfaces
+
+    @param jobSubmissionPriorityMap
+      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:
+     - authzToken
+     - jobSubmissionPriorityMap
+    """
+    pass
+
+  def changeDataMovementPriorities(self, authzToken, dataMovementPriorityMap):
+    """
+    Change the priorities of a given set of data movement interfaces
+
+    @param dataMovementPriorityMap
+      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:
+     - authzToken
+     - dataMovementPriorityMap
+    """
+    pass
+
+  def deleteJobSubmissionInterface(self, authzToken, computeResourceId, jobSubmissionInterfaceId):
+    """
+    Delete a given job submisison interface
+
+    @param jobSubmissionInterfaceId
+      The identifier of the JobSubmission Interface to be changed
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - jobSubmissionInterfaceId
+    """
+    pass
+
+  def deleteDataMovementInterface(self, authzToken, productUri, dataMovementInterfaceId, dataMoveType):
+    """
+    Delete a given data movement interface
+
+    @param dataMovementInterfaceId
+      The identifier of the DataMovement Interface to be changed
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+
+    Parameters:
+     - authzToken
+     - productUri
+     - dataMovementInterfaceId
+     - dataMoveType
+    """
+    pass
+
+  def registerResourceJobManager(self, authzToken, resourceJobManager):
+    """
+    Parameters:
+     - authzToken
+     - resourceJobManager
+    """
+    pass
+
+  def updateResourceJobManager(self, authzToken, resourceJobManagerId, updatedResourceJobManager):
+    """
+    Parameters:
+     - authzToken
+     - resourceJobManagerId
+     - updatedResourceJobManager
+    """
+    pass
+
+  def getResourceJobManager(self, authzToken, resourceJobManagerId):
+    """
+    Parameters:
+     - authzToken
+     - resourceJobManagerId
+    """
+    pass
+
+  def deleteResourceJobManager(self, authzToken, resourceJobManagerId):
+    """
+    Parameters:
+     - authzToken
+     - resourceJobManagerId
+    """
+    pass
+
+  def deleteBatchQueue(self, authzToken, computeResourceId, queueName):
+    """
+    Delete a Compute Resource Queue
+
+    @param computeResourceId
+      The identifier of the compute resource which has the queue to be deleted
+
+    @param queueName
+      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:
+     - authzToken
+     - computeResourceId
+     - queueName
+    """
+    pass
+
+  def registerGatewayResourceProfile(self, authzToken, gatewayResourceProfile):
+    """
+    Register a Gateway Resource Profile.
+
+    @param gatewayResourceProfile
+       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:
+     - authzToken
+     - gatewayResourceProfile
+    """
+    pass
+
+  def getGatewayResourceProfile(self, authzToken, gatewayID):
+    """
+    Fetch the given Gateway Resource Profile.
+
+    @param gatewayID
+      The identifier for the requested gateway resource.
+
+    @return gatewayResourceProfile
+       Gateway Resource Profile Object.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
+  def updateGatewayResourceProfile(self, authzToken, gatewayID, gatewayResourceProfile):
+    """
+    Update a Gateway Resource Profile.
+
+    @param gatewayID
+      The identifier for the requested gateway resource to be updated.
+
+    @param gatewayResourceProfile
+       Gateway Resource Profile Object.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - gatewayResourceProfile
+    """
+    pass
+
+  def deleteGatewayResourceProfile(self, authzToken, gatewayID):
+    """
+    Delete the given Gateway Resource Profile.
+
+    @param gatewayID
+      The identifier for the requested gateway resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
+  def addGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+    """
+    Add a Compute Resource Preference to a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be added.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      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:
+     - authzToken
+     - gatewayID
+     - computeResourceId
+     - computeResourcePreference
+    """
+    pass
+
+  def addGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId, storagePreference):
+    """
+    Add a Storage Resource Preference to a registered gateway profile.
+
+    @param gatewayID
+      The identifier of the gateway profile to be added.
+
+    @param storageResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      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:
+     - authzToken
+     - gatewayID
+     - storageResourceId
+     - storagePreference
+    """
+    pass
+
+  def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+    """
+
+    Fetch a Compute Resource Preference of a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be requested
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return computeResourcePreference
+      Returns the ComputeResourcePreference object.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - computeResourceId
+    """
+    pass
+
+  def getGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId):
+    """
+
+    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:
+     - authzToken
+     - gatewayID
+     - storageResourceId
+    """
+    pass
+
+  def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
+    """
+
+    Fetch all Compute Resource Preferences of a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be requested
+
+    @return computeResourcePreference
+      Returns the ComputeResourcePreference object.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
+  def getAllGatewayStoragePreferences(self, authzToken, gatewayID):
+    """
+    Fetch all Storage Resource Preferences of a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be requested
+
+    @return StoragePreference
+      Returns the StoragePreference object.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
+  def getAllGatewayResourceProfiles(self, authzToken):
+    """
+
+    Fetch all Gateway Profiles registered
+
+    @return GatewayResourceProfile
+      Returns all the GatewayResourcePrifle list object.
+
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def updateGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+    """
+    Update a Compute Resource Preference to a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be updated.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - computeResourceId
+     - computeResourcePreference
+    """
+    pass
+
+  def updateGatewayStoragePreference(self, authzToken, gatewayID, storageId, storagePreference):
+    """
+    Update a Storage Resource Preference of a registered gateway profile.
+
+    @param gatewayID
+      The identifier of the gateway profile to be updated.
+
+    @param storageId
+      The Storage resource identifier of the one that you want to update
+
+    @param storagePreference
+      The storagePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - storageId
+     - storagePreference
+    """
+    pass
+
+  def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+    """
+    Delete the Compute Resource Preference of a registered gateway profile.
+
+    @param gatewayID
+      The identifier for the gateway profile to be deleted.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - computeResourceId
+    """
+    pass
+
+  def deleteGatewayStoragePreference(self, authzToken, gatewayID, storageId):
+    """
+    Delete the Storage Resource Preference of a registered gateway profile.
+
+    @param gatewayID
+      The identifier of the gateway profile to be deleted.
+
+    @param storageId
+      ID of the storage preference you want to delete.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - gatewayID
+     - storageId
+    """
+    pass
+
+  def getAllWorkflows(self, authzToken, gatewayId):
+    """
+    Delete the Storage Resource Preference of a registered gateway profile.
+
+    @param gatewayID
+      The identifier of the gateway profile to be deleted.
+
+    @param storageId
+      ID of the storage preference you want to delete.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getWorkflow(self, authzToken, workflowTemplateId):
+    """
+
+    API Methods Related for Work-Flow Submission Features.
+
+
+    Parameters:
+     - authzToken
+     - workflowTemplateId
+    """
+    pass
+
+  def deleteWorkflow(self, authzToken, workflowTemplateId):
+    """
+    Parameters:
+     - authzToken
+     - workflowTemplateId
+    """
+    pass
+
+  def registerWorkflow(self, authzToken, gatewayId, workflow):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - workflow
+    """
+    pass
+
+  def updateWorkflow(self, authzToken, workflowTemplateId, workflow):
+    """
+    Parameters:
+     - authzToken
+     - workflowTemplateId
+     - workflow
+    """
+    pass
+
+  def getWorkflowTemplateId(self, authzToken, workflowName):
+    """
+    Parameters:
+     - authzToken
+     - workflowName
+    """
+    pass
+
+  def isWorkflowExistWithName(self, authzToken, workflowName):
+    """
+    Parameters:
+     - authzToken
+     - workflowName
+    """
+    pass
+
+  def registerDataProduct(self, authzToken, dataProductModel):
+    """
+    API Methods related to replica catalog
+
+
+    Parameters:
+     - authzToken
+     - dataProductModel
+    """
+    pass
+
+  def getDataProduct(self, authzToken, dataProductUri):
+    """
+    Parameters:
+     - authzToken
+     - dataProductUri
+    """
+    pass
+
+  def registerReplicaLocation(self, authzToken, replicaLocationModel):
+    """
+    Parameters:
+     - authzToken
+     - replicaLocationModel
+    """
+    pass
+
+  def getParentDataProduct(self, authzToken, productUri):
+    """
+    Parameters:
+     - authzToken
+     - productUri
+    """
+    pass
+
+  def getChildDataProducts(self, authzToken, productUri):
+    """
+    Parameters:
+     - authzToken
+     - productUri
+    """
+    pass
+
+  def shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+    """
+    Group Manager and Data Sharing Related API methods
+
+
+    Parameters:
+     - authzToken
+     - resourceId
+     - resourceType
+     - userPermissionList
+    """
+    pass
+
+  def revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+     - resourceType
+     - userPermissionList
+    """
+    pass
+
+  def getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+     - resourceType
+     - permissionType
+    """
+    pass
+
+  def createGroup(self, authzToken, groupModel):
+    """
+    Parameters:
+     - authzToken
+     - groupModel
+    """
+    pass
+
+  def updateGroup(self, authzToken, groupModel):
+    """
+    Parameters:
+     - authzToken
+     - groupModel
+    """
+    pass
+
+  def deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - groupId
+     - ownerId
+     - gatewayId
+    """
+    pass
+
+  def getGroup(self, authzToken, groupId):
+    """
+    Parameters:
+     - authzToken
+     - groupId
+    """
+    pass
+
+  def getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userName
+     - gatewayId
+    """
+    pass
+
+
+class Client(Iface):
+  def __init__(self, iprot, oprot=None):
+    self._iprot = self._oprot = iprot
+    if oprot is not None:
+      self._oprot = oprot
+    self._seqid = 0
+
+  def getAPIVersion(self, authzToken):
+    """
+    Fetch Apache Airavata API version
+
+
+    Parameters:
+     - authzToken
+    """
+    self.send_getAPIVersion(authzToken)
+    return self.recv_getAPIVersion()
+
+  def send_getAPIVersion(self, authzToken):
+    self._oprot.writeMessageBegin('getAPIVersion', TMessageType.CALL, self._seqid)
+    args = getAPIVersion_args()
+    args.authzToken = authzToken
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAPIVersion(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAPIVersion_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAPIVersion failed: unknown result")
+
+  def isUserExists(self, authzToken, gatewayId, userName):
+    """
+    Verify if User Exists within Airavata.
+
+    @param gatewayId
+
+     @param userName
+
+    @return true/false
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+    """
+    self.send_isUserExists(authzToken, gatewayId, userName)
+    return self.recv_isUserExists()
+
+  def send_isUserExists(self, authzToken, gatewayId, userName):
+    self._oprot.writeMessageBegin('isUserExists', TMessageType.CALL, self._seqid)
+    args = isUserExists_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_isUserExists(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = isUserExists_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "isUserExists failed: unknown result")
+
+  def addGateway(self, authzToken, gateway):
+    """
+    Register a Gateway with Airavata.
+
+    @param gateway
+       The gateway data model.
+
+    @return gatewayId
+      Th unique identifier of the  newly registered gateway.
+
+
+
+    Parameters:
+     - authzToken
+     - gateway
+    """
+    self.send_addGateway(authzToken, gateway)
+    return self.recv_addGateway()
+
+  def send_addGateway(self, authzToken, gateway):
+    self._oprot.writeMessageBegin('addGateway', TMessageType.CALL, self._seqid)
+    args = addGateway_args()
+    args.authzToken = authzToken
+    args.gateway = gateway
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_addGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = addGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "addGateway failed: unknown result")
+
+  def getAllUsersInGateway(self, authzToken, gatewayId):
+    """
+    Get all users in the gateway
+
+    @param gatewayId
+       The gateway data model.
+
+    @return users
+      list of usernames of the users in the gateway
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_getAllUsersInGateway(authzToken, gatewayId)
+    return self.recv_getAllUsersInGateway()
+
+  def send_getAllUsersInGateway(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('getAllUsersInGateway', TMessageType.CALL, self._seqid)
+    args = getAllUsersInGateway_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllUsersInGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllUsersInGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUsersInGateway failed: unknown result")
+
+  def updateGateway(self, authzToken, gatewayId, updatedGateway):
+    """
+    Update previously registered Gateway metadata.
+
+    @param gatewayId
+       The gateway Id of the Gateway which require an update.
+
+    @return gateway
+       Modified gateway obejct.
+
+    @exception AiravataClientException
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - updatedGateway
+    """
+    self.send_updateGateway(authzToken, gatewayId, updatedGateway)
+    return self.recv_updateGateway()
+
+  def send_updateGateway(self, authzToken, gatewayId, updatedGateway):
+    self._oprot.writeMessageBegin('updateGateway', TMessageType.CALL, self._seqid)
+    args = updateGateway_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.updatedGateway = updatedGateway
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGateway failed: unknown result")
+
+  def getGateway(self, authzToken, gatewayId):
+    """
+    Get Gateway details by providing gatewayId
+
+    @param gatewayId
+       The gateway Id of the Gateway.
+
+    @return gateway
+       Gateway obejct.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_getGateway(authzToken, gatewayId)
+    return self.recv_getGateway()
+
+  def send_getGateway(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('getGateway', TMessageType.CALL, self._seqid)
+    args = getGateway_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getGateway failed: unknown result")
+
+  def deleteGateway(self, authzToken, gatewayId):
+    """
+    Delete a Gateway
+
+    @param gatewayId
+       The gateway Id of the Gateway to be deleted.
+
+    @return boolean
+       Boolean identifier for the success or failure of the deletion operation.
+
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_deleteGateway(authzToken, gatewayId)
+    return self.recv_deleteGateway()
+
+  def send_deleteGateway(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('deleteGateway', TMessageType.CALL, self._seqid)
+    args = deleteGateway_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not 

<TRUNCATED>