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:01:08 UTC

[28/32] airavata-sandbox git commit: Added_Apache

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
new file mode 100644
index 0000000..b7813c6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
@@ -0,0 +1,38230 @@
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# 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
+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 addGateway(self, authzToken, gateway):
+    """
+    Parameters:
+     - authzToken
+     - gateway
+    """
+    pass
+
+  def updateGateway(self, authzToken, gatewayId, updatedGateway):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - updatedGateway
+    """
+    pass
+
+  def getGateway(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def deleteGateway(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getAllGateways(self, authzToken):
+    """
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def isGatewayExist(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 getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - airavataCredStoreToken
+     - gatewayId
+    """
+    pass
+
+  def getAllUserSSHPubKeys(self, authzToken, userName):
+    """
+    Parameters:
+     - authzToken
+     - userName
+    """
+    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 a Project
+
+
+    Parameters:
+     - authzToken
+     - projectId
+     - updatedProject
+    """
+    pass
+
+  def getProject(self, authzToken, projectId):
+    """
+    Get a Project by ID
+
+
+    Parameters:
+     - authzToken
+     - projectId
+    """
+    pass
+
+  def deleteProject(self, authzToken, projectId):
+    """
+    Parameters:
+     - authzToken
+     - projectId
+    """
+    pass
+
+  def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+    """
+      * Get all Project by 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 searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+    """
+    Get all Project for user by project name 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 projectName
+       The name of the project on which the results to be fetched
+    @param limit
+       The amount results to be fetched
+    @param offset
+       The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - projectName
+     - limit
+     - offset
+    """
+    pass
+
+  def searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+    """
+    Search and get all Projects for user by project description 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 description
+       The description to be matched
+    @param limit
+       The amount results to be fetched
+    @param offset
+       The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - description
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+    """
+    Search Experiments by experiment name with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param expName
+          Experiment name to be matched
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - expName
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperimentsByDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+    """
+    Search Experiments by experiment name with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param description
+          Experiment description to be matched
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - description
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperimentsByApplication(self, authzToken, gatewayId, userName, applicationId, limit, offset):
+    """
+    Search Experiments by application id with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param applicationId
+          Application id to be matched
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - applicationId
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperimentsByStatus(self, authzToken, gatewayId, userName, experimentState, limit, offset):
+    """
+    Search Experiments by experiment status with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param experimentState
+          Experiement state to be matched
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - experimentState
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperimentsByCreationTime(self, authzToken, gatewayId, userName, fromTime, toTime, limit, offset):
+    """
+    Search Experiments by experiment creation time with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param fromTime
+          Start time of the experiments creation time
+    @param toTime
+          End time of the  experiement creation time
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - fromTime
+     - toTime
+     - limit
+     - offset
+    """
+    pass
+
+  def searchExperiments(self, authzToken, gatewayId, userName, filters, limit, offset):
+    """
+    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 requested user
+    @param filters
+          map of multiple filter criteria.
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - filters
+     - limit
+     - offset
+    """
+    pass
+
+  def getExperimentStatistics(self, authzToken, gatewayId, fromTime, toTime):
+    """
+    Get Experiment Statisitics for the given gateway for a specific time period
+    @param gatewayId
+          Identifier of the requested gateway
+    @param fromTime
+          Starting date time
+    @param toTime
+          Ending data time
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - fromTime
+     - toTime
+    """
+    pass
+
+  def getExperimentsInProject(self, authzToken, projectId, limit, offset):
+    """
+    Get Experiments within project with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param projectId
+          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 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 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 an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
+      but inferred from the authentication header. This experiment is just a persistent place holder. The client
+      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 basicExperimentMetadata
+       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):
+    """
+    If the experiment is not already launched experiment can be deleted.
+
+    @param authzToken
+    @param experiementId
+
+    @return boolean identifier for the success or failure of the deletion operation
+
+
+    Parameters:
+     - authzToken
+     - experimentId
+    """
+    pass
+
+  def getExperiment(self, authzToken, airavataExperimentId):
+    """
+    Fetch previously created experiment metadata.
+
+    @param airavataExperimentId
+       The identifier for the requested experiment. This is returned during the create experiment step.
+
+    @return experimentMetada
+      This method will return the previously stored experiment metadata.
+
+    @throws org.apache.airavata.model.error.InvalidRequestException
+       For any incorrect forming of the request itself.
+
+    @throws org.apache.airavata.model.error.ExperimentNotFoundException
+       If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+    @throws org.apache.airavata.model.error.AiravataClientException
+       The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+         
+         UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+            step, then Airavata Registry will not have a provenance area setup. The client has to follow
+            gateway registration steps and retry this request.
+
+         AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+            For now this is a place holder.
+
+         INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+            is implemented, the authorization will be more substantial.
+
+    @throws org.apache.airavata.model.error.AiravataSystemException
+       This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+          rather an Airavata Administrator will be notified to take corrective action.
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def updateExperiment(self, authzToken, airavataExperimentId, experiment):
+    """
+    Configure a previously created experiment with required inputs, scheduling and other quality of service
+      parameters. This method only updates the experiment object within the registry. The experiment has to be launched
+      to make it actionable by the server.
+
+    @param airavataExperimentId
+       The identifier for the requested experiment. This is returned during the create experiment step.
+
+    @param experimentConfigurationData
+       The configuration information of the experiment with application input parameters, computational resource scheduling
+         information, special input output handling and additional quality of service parameters.
+
+    @return
+      This method call does not have a return value.
+
+    @throws org.apache.airavata.model.error.InvalidRequestException
+       For any incorrect forming of the request itself.
+
+    @throws org.apache.airavata.model.error.ExperimentNotFoundException
+       If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+    @throws org.apache.airavata.model.error.AiravataClientException
+       The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+         
+         UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+            step, then Airavata Registry will not have a provenance area setup. The client has to follow
+            gateway registration steps and retry this request.
+
+         AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+            For now this is a place holder.
+
+         INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+            is implemented, the authorization will be more substantial.
+
+    @throws org.apache.airavata.model.error.AiravataSystemException
+       This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+          rather an Airavata Administrator will be notified to take corrective action.
+
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+     - experiment
+    """
+    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 experimentID
+     * @return sucess/failure
+     *
+    *
+
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+    """
+    Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
+      notifications and intermediate and output data will be subsequently available for this experiment.
+
+    @param airavataExperimentId
+       The identifier for the requested experiment. This is returned during the create experiment step.
+
+    @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):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getExperimentOutputs(self, authzToken, airavataExperimentId):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getIntermediateOutputs(self, authzToken, airavataExperimentId):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getJobStatuses(self, authzToken, airavataExperimentId):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def getJobDetails(self, authzToken, airavataExperimentId):
+    """
+    Parameters:
+     - authzToken
+     - airavataExperimentId
+    """
+    pass
+
+  def cloneExperiment(self, authzToken, existingExperimentID, newExperimentName):
+    """
+    Clone an specified experiment with a new name. 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 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.
+
+    @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 registerApplicationModule(self, authzToken, gatewayId, applicationModule):
+    """
+    Register a Application Module.
+
+    @param applicationModule
+       Application Module Object created from the datamodel.
+
+    @return appModuleId
+      Returns a 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 identifier for the requested application module
+
+    @return applicationModule
+      Returns a 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):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def deleteApplicationModule(self, authzToken, appModuleId):
+    """
+    Delete a Application Module.
+
+    @param appModuleId
+      The identifier for the requested 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 a Application Deployment.
+
+    @param applicationModule
+       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 a Application Deployment.
+
+    @param appDeploymentId
+      The identifier for 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 a Application deployment.
+
+    @param appDeploymentId
+      The identifier for the requested 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.
+
+    @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 applicationModule
+       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 getApplicationInterface(self, authzToken, appInterfaceId):
+    """
+    Fetch a Application Interface.
+
+    @param appInterfaceId
+      The identifier for the requested application module
+
+    @return applicationInterface
+      Returns a application Interface Object.
+
+
+
+    Parameters:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def updateApplicationInterface(self, authzToken, appInterfaceId, applicationInterface):
+    """
+    Update a Application Interface.
+
+    @param appInterfaceId
+      The identifier for 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 a 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
+
+
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getApplicationInputs(self, authzToken, appInterfaceId):
+    """
+    Fetch the list of Application Inputs.
+
+    @param appInterfaceId
+      The identifier for the requested application interface
+
+    @return list<application_interface_model.InputDataObjectType>
+      Returns a list of application inputs.
+
+
+    Parameters:
+     - authzToken
+     - appInterfaceId
+    """
+    pass
+
+  def getApplicationOutputs(self, authzToken, appInterfaceId):
+    """
+    Fetch the list of Application Outputs.
+
+    @param appInterfaceId
+      The identifier for the requested application interface
+
+    @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 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 deletion.
+
+
+    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 deletion.
+
+
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - sshJobSubmission
+    """
+    pass
+
+  def updateUnicoreJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, unicoreJobSubmission):
+    """
+    Parameters:
+     - authzToken
+     - jobSubmissionInterfaceId
+     - unicoreJobSubmission
+    """
+    pass
+
+  def addLocalDataMovementDetails(self, authzToken, computeResourceId, 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 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 localDataMovement
+      The LOCALDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - 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, computeResourceId, 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 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 scpDataMovement
+      The SCPDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - 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, computeResourceId, priorityOrder, unicoreDataMovement):
+    """
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - priorityOrder
+     - unicoreDataMovement
+    """
+    pass
+
+  def updateUnicoreDataMovementDetails(self, authzToken, dataMovementInterfaceId, unicoreDataMovement):
+    """
+    Parameters:
+     - authzToken
+     - dataMovementInterfaceId
+     - unicoreDataMovement
+    """
+    pass
+
+  def getUnicoreDataMovement(self, authzToken, dataMovementId):
+    """
+    Parameters:
+     - authzToken
+     - dataMovementId
+    """
+    pass
+
+  def addGridFTPDataMovementDetails(self, authzToken, computeResourceId, 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 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 gridFTPDataMovement
+      The GridFTPDataMovement object to be added to the resource.
+
+    @return status
+      Returns the unique job submission id.
+
+
+    Parameters:
+     - authzToken
+     - computeResourceId
+     - 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 status
+      Returns a success/failure of the updation.
+
+
+    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, computeResourceId, dataMovementInterfaceId):
+    """
+    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
+     - computeResourceId
+     - dataMovementInterfaceId
+    """
+    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):
+    """
+    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 addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    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 getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    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 getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+    """
+    pass
+
+  def getAllGatewayResourceProfiles(self, authzToken):
+    """
+    Fetch all gateway profiles registered
+
+
+    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 updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+     - dataStoragePreference
+    """
+    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 deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayID
+     - dataMoveId
+    """
+    pass
+
+  def getAllWorkflows(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
+  def getWorkflow(self, authzToken, workflowTemplateId):
+    """
+    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
+
+
+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 addGateway(self, authzToken, 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 updateGateway(self, authzToken, gatewayId, updatedGateway):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - updatedGateway
+    """
+    self.send_updateGateway(authzToken, gatewayId, updatedGateway)
+    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.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def getGateway(self, authzToken, gatewayId):
+    """
+    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):
+    """
+    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 None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGateway failed: unknown result");
+
+  def getAllGateways(self, authzToken):
+    """
+    Parameters:
+     - authzToken
+    """
+    self.send_getAllGateways(authzToken)
+    return self.recv_getAllGateways()
+
+  def send_getAllGateways(self, authzToken):
+    self._oprot.writeMessageBegin('getAllGateways', TMessageType.CALL, self._seqid)
+    args = getAllGateways_args()
+    args.authzToken = authzToken
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllGateways(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllGateways_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, "getAllGateways failed: unknown result");
+
+  def isGatewayExist(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_isGatewayExist(authzToken, gatewayId)
+    return self.recv_isGatewayExist()
+
+  def send_isGatewayExist(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('isGatewayExist', TMessageType.CALL, self._seqid)
+    args = isGatewayExist_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_isGatewayExist(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = isGatewayExist_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, "isGatewayExist failed: unknown result");
+
+  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
+    """
+    self.send_generateAndRegisterSSHKeys(authzToken, gatewayId, userName)
+    return self.recv_generateAndRegisterSSHKeys()
+
+  def send_generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+    self._oprot.writeMessageBegin('generateAndRegisterSSHKeys', TMessageType.CALL, self._seqid)
+    args = generateAndRegisterSSHKeys_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_generateAndRegisterSSHKeys(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = generateAndRegisterSSHKeys_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "generateAndRegisterSSHKeys failed: unknown result");
+
+  def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - airavataCredStoreToken
+     - gatewayId
+    """
+    self.send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId)
+    return self.recv_getSSHPubKey()
+
+  def send_getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+    self._oprot.writeMessageBegin('getSSHPubKey', TMessageType.CALL, self._seqid)
+    args = getSSHPubKey_args()
+    args.authzToken = authzToken
+    args.airavataCredStoreToken = airavataCredStoreToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getSSHPubKey(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getSSHPubKey_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getSSHPubKey failed: unknown result");
+
+  def getAllUserSSHPubKeys(self, authzToken, userName):
+    """
+    Parameters:
+     - authzToken
+     - userName
+    """
+    self.send_getAllUserSSHPubKeys(authzToken, userName)
+    return self.recv_getAllUserSSHPubKeys()
+
+  def send_getAllUserSSHPubKeys(self, authzToken, userName):
+    self._oprot.writeMessageBegin('getAllUserSSHPubKeys', TMessageType.CALL, self._seqid)
+    args = getAllUserSSHPubKeys_args()
+    args.authzToken = authzToken
+    args.userName = userName
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllUserSSHPubKeys(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllUserSSHPubKeys_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUserSSHPubKeys failed: unknown result");
+
+  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
+    """
+    self.send_createProject(authzToken, gatewayId, project)
+    return self.recv_createProject()
+
+  def send_createProject(self, authzToken, gatewayId, project):
+    self._oprot.writeMessageBegin('createProject', TMessageType.CALL, self._seqid)
+    args = createProject_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.project = project
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_createProject(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = createProject_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, "createProject failed: unknown result");
+
+  def updateProject(self, authzToken, projectId, updatedProject):
+    """
+    Update a Project
+
+
+    Parameters:
+     - authzToken
+     - projectId
+     - updatedProject
+    """
+    self.send_updateProject(authzToken, projectId, updatedProject)
+    self.recv_updateProject()
+
+  def send_updateProject(self, authzToken, projectId, updatedProject):
+    self._oprot.writeMessageBegin('updateProject', TMessageType.CALL, self._seqid)
+    args = updateProject_args()
+    args.authzToken = authzToken
+    args.projectId = projectId
+    args.updatedProject = updatedProject
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateProject(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateProject_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.pnfe is not None:
+      raise result.pnfe
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def getProject(self, authzToken, projectId):
+    """
+    Get a Project by ID
+
+
+    Parameters:
+     - authzToken
+     - projectId
+    """
+    self.send_getProject(authzToken, projectId)
+    return self.recv_getProject()
+
+  def send_getProject(self, authzToken, projectId):
+    self._oprot.writeMessageBegin('getProject', TMessageType.CALL, self._seqid)
+    args = getProject_args()
+    args.authzToken = authzToken
+    args.projectId = projectId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getProject(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getProject_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.pnfe is not None:
+      raise result.pnfe
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getProject failed: unknown result");
+
+  def deleteProject(self, authzToken, projectId):
+    """
+    Parameters:
+     - authzToken
+     - projectId
+    """
+    self.send_deleteProject(authzToken, projectId)
+    return self.recv_deleteProject()
+
+  def send_deleteProject(self, authzToken, projectId):
+    self._oprot.writeMessageBegin('deleteProject', TMessageType.CALL, self._seqid)
+    args = deleteProject_args()
+    args.authzToken = authzToken
+    args.projectId = projectId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteProject(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteProject_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.pnfe is not None:
+      raise result.pnfe
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteProject failed: unknown result");
+
+  def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+    """
+      * Get all Project by 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
+    """
+    self.send_getUserProjects(authzToken, gatewayId, userName, limit, offset)
+    return self.recv_getUserProjects()
+
+  def send_getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+    self._oprot.writeMessageBegin('getUserProjects', TMessageType.CALL, self._seqid)
+    args = getUserProjects_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.limit = limit
+    args.offset = offset
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getUserProjects(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getUserProjects_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, "getUserProjects failed: unknown result");
+
+  def searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+    """
+    Get all Project for user by project name 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 projectName
+       The name of the project on which the results to be fetched
+    @param limit
+       The amount results to be fetched
+    @param offset
+       The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - projectName
+     - limit
+     - offset
+    """
+    self.send_searchProjectsByProjectName(authzToken, gatewayId, userName, projectName, limit, offset)
+    return self.recv_searchProjectsByProjectName()
+
+  def send_searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+    self._oprot.writeMessageBegin('searchProjectsByProjectName', TMessageType.CALL, self._seqid)
+    args = searchProjectsByProjectName_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.projectName = projectName
+    args.limit = limit
+    args.offset = offset
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_searchProjectsByProjectName(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = searchProjectsByProjectName_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, "searchProjectsByProjectName failed: unknown result");
+
+  def searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+    """
+    Search and get all Projects for user by project description 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 description
+       The description to be matched
+    @param limit
+       The amount results to be fetched
+    @param offset
+       The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - description
+     - limit
+     - offset
+    """
+    self.send_searchProjectsByProjectDesc(authzToken, gatewayId, userName, description, limit, offset)
+    return self.recv_searchProjectsByProjectDesc()
+
+  def send_searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+    self._oprot.writeMessageBegin('searchProjectsByProjectDesc', TMessageType.CALL, self._seqid)
+    args = searchProjectsByProjectDesc_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.description = description
+    args.limit = limit
+    args.offset = offset
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_searchProjectsByProjectDesc(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = searchProjectsByProjectDesc_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, "searchProjectsByProjectDesc failed: unknown result");
+
+  def searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+    """
+    Search Experiments by experiment name with pagination. Results will be sorted
+    based on creation time DESC
+
+    @param gatewayId
+          Identifier of the requested gateway
+    @param userName
+          Username of the requested user
+    @param expName
+          Experiment name to be matched
+    @param limit
+          Amount of results to be fetched
+    @param offset
+          The starting point of the results to be fetched
+
+    Parameters:
+     - authzToken
+     - gatewayId
+     - userName
+     - expName
+     - limit
+     - offset
+    """
+    self.send_searchExperimentsByName(authzToken, gatewayId, userName, expName, limit, offset)
+    return self.recv_searchExperimentsByName()
+
+  def send_searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+    self._oprot.writeMessageBegin('searchExperimentsByName', TMessageType.CALL, self._seqid)
+    args = searchExperimentsByName_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.userName = userName
+    args.expName = expName
+    args.limit = limit
+    args.offset = offset
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_searchExperimentsByName(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = searchExperimentsByName_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, "searchExperimentsByName failed: unknown result");
+
+  def searchExperimentsByDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+    """
+    Search Experiments by experiment name with pagi

<TRUNCATED>