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 2015/06/11 19:12:23 UTC

[13/16] airavata git commit: Updating Airavata to use Thrift version 0.9.2 - AIRAVATA-1707

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5cb91f0/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 08503bd..25e967d 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -16,7 +16,7 @@
  */
 
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -25,13 +25,19 @@
 #define Airavata_H
 
 #include <thrift/TDispatchProcessor.h>
-#include "airavataAPI_types.h"
+#include "airavata_api_types.h"
 
 namespace apache { namespace airavata { namespace api {
 
 class AiravataIf {
  public:
   virtual ~AiravataIf() {}
+
+  /**
+   * Fetch Apache Airavata API version
+   * 
+   * @param authzToken
+   */
   virtual void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 0;
   virtual void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) = 0;
   virtual void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) = 0;
@@ -39,40 +45,677 @@ class AiravataIf {
   virtual bool deleteGateway(const std::string& gatewayId) = 0;
   virtual void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return) = 0;
   virtual bool isGatewayExist(const std::string& gatewayId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * 
+   * @param gatewayId
+   * @param userName
+   */
   virtual void generateAndRegisterSSHKeys(std::string& _return, const std::string& gatewayId, const std::string& userName) = 0;
   virtual void getSSHPubKey(std::string& _return, const std::string& airavataCredStoreToken) = 0;
   virtual void getAllUserSSHPubKeys(std::map<std::string, std::string> & _return, const std::string& userName) = 0;
+
+  /**
+   * 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
+   * 
+   * 
+   * @param gatewayId
+   * @param project
+   */
   virtual void createProject(std::string& _return, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Project& project) = 0;
+
+  /**
+   * Update a Project
+   * 
+   * 
+   * @param projectId
+   * @param updatedProject
+   */
   virtual void updateProject(const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject) = 0;
+
+  /**
+   * Get a Project by ID
+   * 
+   * 
+   * @param projectId
+   */
   virtual void getProject( ::apache::airavata::model::workspace::Project& _return, const std::string& projectId) = 0;
   virtual bool deleteProject(const std::string& projectId) = 0;
+
+  /**
+   *   * Get all Project by user
+   *   *
+   *   * @param gatewayId
+   *   *    The identifier for the requested gateway.
+   *   *
+   *   * @param userName
+   *   *    The Project Object described in the workspace_model
+   *   * @deprecated Instead use getAllUserProjectsWithPagination
+   * *
+   * 
+   * @param gatewayId
+   * @param userName
+   */
   virtual void getAllUserProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName) = 0;
+
+  /**
+   *   * 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
+   * *
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param limit
+   * @param offset
+   */
   virtual void getAllUserProjectsWithPagination(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Get all Project for user by project name
+   * 
+   * @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
+   * @deprecated Instead use searchProjectsByProjectNameWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param projectName
+   */
   virtual void searchProjectsByProjectName(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName, const std::string& projectName) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param projectName
+   * @param limit
+   * @param offset
+   */
   virtual void searchProjectsByProjectNameWithPagination(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName, const std::string& projectName, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Get all Project for user by project description
+   * @param gatewayId
+   *    The identifier for the requested gateway.
+   * @param userName
+   *    The identifier of the user
+   * @param description
+   *    The description to be matched
+   * @deprecated Instead use searchProjectsByProjectDescWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param description
+   */
   virtual void searchProjectsByProjectDesc(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName, const std::string& description) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param description
+   * @param limit
+   * @param offset
+   */
   virtual void searchProjectsByProjectDescWithPagination(std::vector< ::apache::airavata::model::workspace::Project> & _return, const std::string& gatewayId, const std::string& userName, const std::string& description, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Search Experiments by experiment name
+   * 
+   * @param gatewayId
+   *       Identifier of the requested gateway
+   * @param useNname
+   *       Username of the requested user
+   * @param expName
+   *       Experiment name to be matched
+   * @deprecated
+   *       Instead use searchExperimentsByNameWithPagination
+   * 
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param expName
+   */
   virtual void searchExperimentsByName(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& expName) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param expName
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperimentsByNameWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& expName, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Search Experiments by experiment name
+   * 
+   * @param gatewayId
+   *       Identifier of the requested gateway
+   * @param userName
+   *       Username of the requested user
+   * @param description
+   *       Experiment description to be matched
+   * @deprecated
+   *       Instead use searchExperimentsByDescWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param description
+   */
   virtual void searchExperimentsByDesc(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& description) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param description
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperimentsByDescWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& description, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Search Experiments by application id
+   * 
+   * @param gatewayId
+   *       Identifier of the requested gateway
+   * @param userName
+   *       Username of the requested user
+   * @param applicationId
+   *       Application id to be matched
+   * @deprecated
+   *       Instead use searchExperimentsByApplicationWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param applicationId
+   */
   virtual void searchExperimentsByApplication(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& applicationId) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param applicationId
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperimentsByApplicationWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::string& applicationId, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Search Experiments by experiment status
+   * 
+   * @param gatewayId
+   *       Identifier of the requested gateway
+   * @param userName
+   *       Username of the requested user
+   * @param experimentState
+   *       Experiement state to be matched
+   * @deprecated
+   *       Instead use searchExperimentsByStatusWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param experimentState
+   */
   virtual void searchExperimentsByStatus(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const  ::apache::airavata::model::workspace::experiment::ExperimentState::type experimentState) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param experimentState
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperimentsByStatusWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const  ::apache::airavata::model::workspace::experiment::ExperimentState::type experimentState, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Search Experiments by experiment creation time
+   * 
+   * @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
+   * @deprecated
+   *       Instead use searchExperimentsByCreationTimeWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param fromTime
+   * @param toTime
+   */
   virtual void searchExperimentsByCreationTime(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param fromTime
+   * @param toTime
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperimentsByCreationTimeWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param filters
+   * @param limit
+   * @param offset
+   */
   virtual void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * 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
+   * 
+   * 
+   * @param gatewayId
+   * @param fromTime
+   * @param toTime
+   */
+  virtual void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime) = 0;
+
+  /**
+   * Get all Experiments within a Project
+   * 
+   * @param projectId
+   *       Identifier of the project
+   * @deprecated
+   *       Instead use  getAllExperimentsInProjectWithPagination
+   * 
+   * @param projectId
+   */
   virtual void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId) = 0;
+
+  /**
+   * Get all 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
+   * 
+   * @param projectId
+   * @param limit
+   * @param offset
+   */
   virtual void getAllExperimentsInProjectWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * Get all Experiments by user
+   * 
+   * @param gatewayId
+   *       Identifier of the requesting gateway
+   * @param userName
+   *       Username of the requested user
+   * @deprecated
+   *       Instead use getAllUserExperimentsWithPagination
+   * 
+   * @param gatewayId
+   * @param userName
+   */
   virtual void getAllUserExperiments(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& gatewayId, const std::string& userName) = 0;
+
+  /**
+   * Get all Experiments by user 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
+   * 
+   * @param gatewayId
+   * @param userName
+   * @param limit
+   * @param offset
+   */
   virtual void getAllUserExperimentsWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayId
+   * @param experiment
+   */
   virtual void createExperiment(std::string& _return, const std::string& gatewayId, const  ::apache::airavata::model::workspace::experiment::Experiment& experiment) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param airavataExperimentId
+   */
   virtual void getExperiment( ::apache::airavata::model::workspace::experiment::Experiment& _return, const std::string& airavataExperimentId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param airavataExperimentId
+   * @param experiment
+   */
   virtual void updateExperiment(const std::string& airavataExperimentId, const  ::apache::airavata::model::workspace::experiment::Experiment& experiment) = 0;
   virtual void updateExperimentConfiguration(const std::string& airavataExperimentId, const  ::apache::airavata::model::workspace::experiment::UserConfigurationData& userConfiguration) = 0;
   virtual void updateResourceScheduleing(const std::string& airavataExperimentId, const  ::apache::airavata::model::workspace::experiment::ComputationalResourceScheduling& resourceScheduling) = 0;
+
+  /**
+   *  *
+   *  * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
+   *  *
+   *  * @param experimentID
+   *  * @return sucess/failure
+   *  *
+   * *
+   * 
+   * @param airavataExperimentId
+   */
   virtual bool validateExperiment(const std::string& airavataExperimentId) = 0;
+
+  /**
+   * 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.
+   * 
+   * @param airavataCredStoreToken:
+   *   A requirement to execute experiments within Airavata is to first register the targeted remote computational account
+   *     credentials with Airavata Credential Store. The administrative API (related to credential store) will return a
+   *     generated token associated with the registered credentials. The client has to security posses this token id and is
+   *     required to pass it to Airavata Server for all execution requests.
+   *   Note: At this point only the credential store token is required so the string is directly passed here. In future if
+   *     if more security credentials are enables, then the structure ExecutionSecurityParameters should be used.
+   *   Note: This parameter is not persisted within Airavata Registry for security reasons.
+   * 
+   * @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.
+   * 
+   * 
+   * @param airavataExperimentId
+   * @param airavataCredStoreToken
+   */
   virtual void launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken) = 0;
   virtual void getExperimentStatus( ::apache::airavata::model::workspace::experiment::ExperimentStatus& _return, const std::string& airavataExperimentId) = 0;
   virtual void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId) = 0;
@@ -80,77 +723,1049 @@ class AiravataIf {
   virtual void getJobStatuses(std::map<std::string,  ::apache::airavata::model::workspace::experiment::JobStatus> & _return, const std::string& airavataExperimentId) = 0;
   virtual void getJobDetails(std::vector< ::apache::airavata::model::workspace::experiment::JobDetails> & _return, const std::string& airavataExperimentId) = 0;
   virtual void getDataTransferDetails(std::vector< ::apache::airavata::model::workspace::experiment::DataTransferDetails> & _return, const std::string& airavataExperimentId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param existingExperimentID
+   * @param newExperimentName
+   */
   virtual void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperimentName) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param airavataExperimentId
+   * @param tokenId
+   */
   virtual void terminateExperiment(const std::string& airavataExperimentId, const std::string& tokenId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayId
+   * @param applicationModule
+   */
   virtual void registerApplicationModule(std::string& _return, const std::string& gatewayId, const  ::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& applicationModule) = 0;
+
+  /**
+   * Fetch a Application Module.
+   * 
+   * @param appModuleId
+   *   The identifier for the requested application module
+   * 
+   * @return applicationModule
+   *   Returns a application Module Object.
+   * 
+   * 
+   * @param appModuleId
+   */
   virtual void getApplicationModule( ::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& _return, const std::string& appModuleId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appModuleId
+   * @param applicationModule
+   */
   virtual bool updateApplicationModule(const std::string& appModuleId, const  ::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& applicationModule) = 0;
   virtual void getAllAppModules(std::vector< ::apache::airavata::model::appcatalog::appdeployment::ApplicationModule> & _return, const std::string& gatewayId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appModuleId
+   */
   virtual bool deleteApplicationModule(const std::string& appModuleId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayId
+   * @param applicationDeployment
+   */
   virtual void registerApplicationDeployment(std::string& _return, const std::string& gatewayId, const  ::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription& applicationDeployment) = 0;
+
+  /**
+   * Fetch a Application Deployment.
+   * 
+   * @param appDeploymentId
+   *   The identifier for the requested application module
+   * 
+   * @return applicationDeployment
+   *   Returns a application Deployment Object.
+   * 
+   * 
+   * @param appDeploymentId
+   */
   virtual void getApplicationDeployment( ::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription& _return, const std::string& appDeploymentId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appDeploymentId
+   * @param applicationDeployment
+   */
   virtual bool updateApplicationDeployment(const std::string& appDeploymentId, const  ::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription& applicationDeployment) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appDeploymentId
+   */
   virtual bool deleteApplicationDeployment(const std::string& appDeploymentId) = 0;
+
+  /**
+   * Fetch all Application Deployment Descriptions.
+   * 
+   * @return list<applicationDeployment.
+   *   Returns the list of all application Deployment Objects.
+   * 
+   * 
+   * @param gatewayId
+   */
   virtual void getAllApplicationDeployments(std::vector< ::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription> & _return, const std::string& gatewayId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appModuleId
+   */
   virtual void getAppModuleDeployedResources(std::vector<std::string> & _return, const std::string& appModuleId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayId
+   * @param applicationInterface
+   */
   virtual void registerApplicationInterface(std::string& _return, const std::string& gatewayId, const  ::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription& applicationInterface) = 0;
+
+  /**
+   * Fetch a Application Interface.
+   * 
+   * @param appInterfaceId
+   *   The identifier for the requested application module
+   * 
+   * @return applicationInterface
+   *   Returns a application Interface Object.
+   * 
+   * 
+   * 
+   * @param appInterfaceId
+   */
   virtual void getApplicationInterface( ::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription& _return, const std::string& appInterfaceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * 
+   * @param appInterfaceId
+   * @param applicationInterface
+   */
   virtual bool updateApplicationInterface(const std::string& appInterfaceId, const  ::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription& applicationInterface) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * 
+   * @param appInterfaceId
+   */
   virtual bool deleteApplicationInterface(const std::string& appInterfaceId) = 0;
+
+  /**
+   * Fetch name and id of  Application Interface documents.
+   * 
+   * 
+   * @return map<applicationId, applicationInterfaceNames>
+   *   Returns a list of application interfaces with corresponsing id's
+   * 
+   * 
+   * @param gatewayId
+   */
   virtual void getAllApplicationInterfaceNames(std::map<std::string, std::string> & _return, const std::string& gatewayId) = 0;
+
+  /**
+   * Fetch all Application Interface documents.
+   * 
+   * 
+   * @return map<applicationId, applicationInterfaceNames>
+   *   Returns a list of application interfaces documents
+   * 
+   * 
+   * @param gatewayId
+   */
   virtual void getAllApplicationInterfaces(std::vector< ::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription> & _return, const std::string& gatewayId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appInterfaceId
+   */
   virtual void getApplicationInputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appInterfaceId
+   */
   virtual void getApplicationOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param appInterfaceId
+   */
   virtual void getAvailableAppInterfaceComputeResources(std::map<std::string, std::string> & _return, const std::string& appInterfaceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceDescription
+   */
   virtual void registerComputeResource(std::string& _return, const  ::apache::airavata::model::appcatalog::computeresource::ComputeResourceDescription& computeResourceDescription) = 0;
+
+  /**
+   * Fetch the given Compute Resource.
+   * 
+   * @param computeResourceId
+   *   The identifier for the requested compute resource
+   * 
+   * @return computeResourceDescription
+   *    Compute Resource Object created from the datamodel..
+   * 
+   * 
+   * @param computeResourceId
+   */
   virtual void getComputeResource( ::apache::airavata::model::appcatalog::computeresource::ComputeResourceDescription& _return, const std::string& computeResourceId) = 0;
+
+  /**
+   * 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..
+   * 
+   */
   virtual void getAllComputeResourceNames(std::map<std::string, std::string> & _return) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param computeResourceDescription
+   */
   virtual bool updateComputeResource(const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::computeresource::ComputeResourceDescription& computeResourceDescription) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   */
   virtual bool deleteComputeResource(const std::string& computeResourceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param localSubmission
+   */
   virtual void addLocalSubmissionDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::LOCALSubmission& localSubmission) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param jobSubmissionInterfaceId
+   * @param localSubmission
+   */
   virtual bool updateLocalSubmissionDetails(const std::string& jobSubmissionInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::LOCALSubmission& localSubmission) = 0;
+
+  /**
+   * This method returns localJobSubmission object
+   * @param jobSubmissionInterfaceId
+   *   The identifier of the JobSubmission Interface to be retrieved.
+   *  @return LOCALSubmission instance
+   * 
+   * 
+   * @param jobSubmissionId
+   */
   virtual void getLocalJobSubmission( ::apache::airavata::model::appcatalog::computeresource::LOCALSubmission& _return, const std::string& jobSubmissionId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param sshJobSubmission
+   */
   virtual void addSSHJobSubmissionDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& sshJobSubmission) = 0;
+
+  /**
+   * This method returns SSHJobSubmission object
+   * @param jobSubmissionInterfaceId
+   *   The identifier of the JobSubmission Interface to be retrieved.
+   *  @return SSHJobSubmission instance
+   * 
+   * 
+   * @param jobSubmissionId
+   */
   virtual void getSSHJobSubmission( ::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& _return, const std::string& jobSubmissionId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param unicoreJobSubmission
+   */
   virtual void addUNICOREJobSubmissionDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::UnicoreJobSubmission& unicoreJobSubmission) = 0;
+
+  /**
+   *   * This method returns UnicoreJobSubmission object
+   *   * @param jobSubmissionInterfaceId
+   *   *   The identifier of the JobSubmission Interface to be retrieved.
+   *   *  @return UnicoreJobSubmission instance
+   * *
+   * 
+   * @param jobSubmissionId
+   */
   virtual void getUnicoreJobSubmission( ::apache::airavata::model::appcatalog::computeresource::UnicoreJobSubmission& _return, const std::string& jobSubmissionId) = 0;
+
+  /**
+   *    * 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.
+   * *
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param cloudSubmission
+   */
   virtual void addCloudJobSubmissionDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& cloudSubmission) = 0;
+
+  /**
+   *    * This method returns cloudJobSubmission object
+   *    * @param jobSubmissionInterfaceI
+   *        *   The identifier of the JobSubmission Interface to be retrieved.
+   *    *  @return CloudJobSubmission instance
+   * *
+   * 
+   * @param jobSubmissionId
+   */
   virtual void getCloudJobSubmission( ::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& _return, const std::string& jobSubmissionId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param jobSubmissionInterfaceId
+   * @param sshJobSubmission
+   */
   virtual bool updateSSHJobSubmissionDetails(const std::string& jobSubmissionInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& sshJobSubmission) = 0;
+
+  /**
+   * Update the given SSH 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.
+   * 
+   * 
+   * @param jobSubmissionInterfaceId
+   * @param sshJobSubmission
+   */
   virtual bool updateCloudJobSubmissionDetails(const std::string& jobSubmissionInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& sshJobSubmission) = 0;
   virtual bool updateUnicoreJobSubmissionDetails(const std::string& jobSubmissionInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::UnicoreJobSubmission& unicoreJobSubmission) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param localDataMovement
+   */
   virtual void addLocalDataMovementDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::LOCALDataMovement& localDataMovement) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param dataMovementInterfaceId
+   * @param localDataMovement
+   */
   virtual bool updateLocalDataMovementDetails(const std::string& dataMovementInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::LOCALDataMovement& localDataMovement) = 0;
+
+  /**
+   *         * This method returns local datamovement object
+   *         * @param dataMovementId
+   *         *   The identifier of the datamovement Interface to be retrieved.
+   *         *  @return LOCALDataMovement instance
+   * *
+   * 
+   * @param dataMovementId
+   */
   virtual void getLocalDataMovement( ::apache::airavata::model::appcatalog::computeresource::LOCALDataMovement& _return, const std::string& dataMovementId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param scpDataMovement
+   */
   virtual void addSCPDataMovementDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::SCPDataMovement& scpDataMovement) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param dataMovementInterfaceId
+   * @param scpDataMovement
+   */
   virtual bool updateSCPDataMovementDetails(const std::string& dataMovementInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::SCPDataMovement& scpDataMovement) = 0;
+
+  /**
+   *   * This method returns SCP datamovement object
+   *   * @param dataMovementId
+   *      *   The identifier of the datamovement Interface to be retrieved.
+   *      *  @return SCPDataMovement instance
+   * *
+   * 
+   * @param dataMovementId
+   */
   virtual void getSCPDataMovement( ::apache::airavata::model::appcatalog::computeresource::SCPDataMovement& _return, const std::string& dataMovementId) = 0;
   virtual void addUnicoreDataMovementDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::UnicoreDataMovement& unicoreDataMovement) = 0;
   virtual bool updateUnicoreDataMovementDetails(const std::string& dataMovementInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::UnicoreDataMovement& unicoreDataMovement) = 0;
   virtual void getUnicoreDataMovement( ::apache::airavata::model::appcatalog::computeresource::UnicoreDataMovement& _return, const std::string& dataMovementId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param priorityOrder
+   * @param gridFTPDataMovement
+   */
   virtual void addGridFTPDataMovementDetails(std::string& _return, const std::string& computeResourceId, const int32_t priorityOrder, const  ::apache::airavata::model::appcatalog::computeresource::GridFTPDataMovement& gridFTPDataMovement) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param dataMovementInterfaceId
+   * @param gridFTPDataMovement
+   */
   virtual bool updateGridFTPDataMovementDetails(const std::string& dataMovementInterfaceId, const  ::apache::airavata::model::appcatalog::computeresource::GridFTPDataMovement& gridFTPDataMovement) = 0;
+
+  /**
+   *   * This method returns GridFTP datamovement object
+   *   * @param dataMovementId
+   *      *   The identifier of the datamovement Interface to be retrieved.
+   *   *  @return GridFTPDataMovement instance
+   * *
+   * 
+   * @param dataMovementId
+   */
   virtual void getGridFTPDataMovement( ::apache::airavata::model::appcatalog::computeresource::GridFTPDataMovement& _return, const std::string& dataMovementId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param jobSubmissionInterfaceId
+   * @param newPriorityOrder
+   */
   virtual bool changeJobSubmissionPriority(const std::string& jobSubmissionInterfaceId, const int32_t newPriorityOrder) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param dataMovementInterfaceId
+   * @param newPriorityOrder
+   */
   virtual bool changeDataMovementPriority(const std::string& dataMovementInterfaceId, const int32_t newPriorityOrder) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param jobSubmissionPriorityMap
+   */
   virtual bool changeJobSubmissionPriorities(const std::map<std::string, int32_t> & jobSubmissionPriorityMap) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param dataMovementPriorityMap
+   */
   virtual bool changeDataMovementPriorities(const std::map<std::string, int32_t> & dataMovementPriorityMap) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param jobSubmissionInterfaceId
+   */
   virtual bool deleteJobSubmissionInterface(const std::string& computeResourceId, const std::string& jobSubmissionInterfaceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param computeResourceId
+   * @param dataMovementInterfaceId
+   */
   virtual bool deleteDataMovementInterface(const std::string& computeResourceId, const std::string& dataMovementInterfaceId) = 0;
   virtual void registerResourceJobManager(std::string& _return, const  ::apache::airavata::model::appcatalog::computeresource::ResourceJobManager& resourceJobManager) = 0;
   virtual bool updateResourceJobManager(const std::string& resourceJobManagerId, const  ::apache::airavata::model::appcatalog::computeresource::ResourceJobManager& updatedResourceJobManager) = 0;
   virtual void getResourceJobManager( ::apache::airavata::model::appcatalog::computeresource::ResourceJobManager& _return, const std::string& resourceJobManagerId) = 0;
   virtual bool deleteResourceJobManager(const std::string& resourceJobManagerId) = 0;
   virtual bool deleteBatchQueue(const std::string& computeResourceId, const std::string& queueName) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayResourceProfile
+   */
   virtual void registerGatewayResourceProfile(std::string& _return, const  ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& gatewayResourceProfile) = 0;
+
+  /**
+   * Fetch the given Gateway Resource Profile.
+   * 
+   * @param gatewayID
+   *   The identifier for the requested gateway resource
+   * 
+   * @return gatewayResourceProfile
+   *    Gateway Resource Profile Object.
+   * 
+   * 
+   * @param gatewayID
+   */
   virtual void getGatewayResourceProfile( ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& _return, const std::string& gatewayID) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   * @param gatewayResourceProfile
+   */
   virtual bool updateGatewayResourceProfile(const std::string& gatewayID, const  ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& gatewayResourceProfile) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   */
   virtual bool deleteGatewayResourceProfile(const std::string& gatewayID) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
   virtual bool addGatewayComputeResourcePreference(const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   * @param computeResourceId
+   */
   virtual void getGatewayComputeResourcePreference( ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& _return, const std::string& gatewayID, const std::string& computeResourceId) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   */
   virtual void getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const std::string& gatewayID) = 0;
+
+  /**
+   * Fetch all gateway profiles registered
+   * 
+   */
   virtual void getAllGatewayComputeResources(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & _return) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
   virtual bool updateGatewayComputeResourcePreference(const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+
+  /**
+   * 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.
+   * 
+   * 
+   * @param gatewayID
+   * @param computeResourceId
+   */
   virtual bool deleteGatewayComputeResourcePreference(const std::string& gatewayID, const std::string& computeResourceId) = 0;
   virtual void getAllWorkflows(std::vector<std::string> & _return, const std::string& gatewayId) = 0;
   virtual void getWorkflow( ::Workflow& _return, const std::string& workflowTemplateId) = 0;
@@ -284,6 +1899,9 @@ class AiravataNull : virtual public AiravataIf {
   void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & /* _return */, const std::string& /* gatewayId */, const std::string& /* userName */, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & /* filters */, const int32_t /* limit */, const int32_t /* offset */) {
     return;
   }
+  void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& /* _return */, const std::string& /* gatewayId */, const int64_t /* fromTime */, const int64_t /* toTime */) {
+    return;
+  }
   void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & /* _return */, const std::string& /* projectId */) {
     return;
   }
@@ -610,16 +2228,18 @@ class AiravataNull : virtual public AiravataIf {
 class Airavata_getAPIVersion_args {
  public:
 
+  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
+  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
+
+  Airavata_getAPIVersion_args(const Airavata_getAPIVersion_args&);
+  Airavata_getAPIVersion_args& operator=(const Airavata_getAPIVersion_args&);
   Airavata_getAPIVersion_args() {
   }
 
-  virtual ~Airavata_getAPIVersion_args() throw() {}
-
+  virtual ~Airavata_getAPIVersion_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
 
-  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val) {
-    authzToken = val;
-  }
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
   bool operator == (const Airavata_getAPIVersion_args & rhs) const
   {
@@ -636,38 +2256,46 @@ class Airavata_getAPIVersion_args {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAPIVersion_args& obj);
 };
 
 
 class Airavata_getAPIVersion_pargs {
  public:
 
+  static const char* ascii_fingerprint; // = "75A7E945AEBB96C8FA8998CBCEB31C27";
+  static const uint8_t binary_fingerprint[16]; // = {0x75,0xA7,0xE9,0x45,0xAE,0xBB,0x96,0xC8,0xFA,0x89,0x98,0xCB,0xCE,0xB3,0x1C,0x27};
 
-  virtual ~Airavata_getAPIVersion_pargs() throw() {}
 
+  virtual ~Airavata_getAPIVersion_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAPIVersion_pargs& obj);
 };
 
 typedef struct _Airavata_getAPIVersion_result__isset {
   _Airavata_getAPIVersion_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success;
-  bool ire;
-  bool ace;
-  bool ase;
-  bool ae;
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
 } _Airavata_getAPIVersion_result__isset;
 
 class Airavata_getAPIVersion_result {
  public:
 
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
+
+  Airavata_getAPIVersion_result(const Airavata_getAPIVersion_result&);
+  Airavata_getAPIVersion_result& operator=(const Airavata_getAPIVersion_result&);
   Airavata_getAPIVersion_result() : success() {
   }
 
-  virtual ~Airavata_getAPIVersion_result() throw() {}
-
+  virtual ~Airavata_getAPIVersion_result() throw();
   std::string success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -676,25 +2304,15 @@ class Airavata_getAPIVersion_result {
 
   _Airavata_getAPIVersion_result__isset __isset;
 
-  void __set_success(const std::string& val) {
-    success = val;
-  }
+  void __set_success(const std::string& val);
 
-  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
-    ire = val;
-  }
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
-  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
-    ace = val;
-  }
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
 
-  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
-    ase = val;
-  }
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
-  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val) {
-    ae = val;
-  }
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
   bool operator == (const Airavata_getAPIVersion_result & rhs) const
   {
@@ -719,23 +2337,26 @@ class Airavata_getAPIVersion_result {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAPIVersion_result& obj);
 };
 
 typedef struct _Airavata_getAPIVersion_presult__isset {
   _Airavata_getAPIVersion_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success;
-  bool ire;
-  bool ace;
-  bool ase;
-  bool ae;
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
 } _Airavata_getAPIVersion_presult__isset;
 
 class Airavata_getAPIVersion_presult {
  public:
 
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
 
-  virtual ~Airavata_getAPIVersion_presult() throw() {}
 
+  virtual ~Airavata_getAPIVersion_presult() throw();
   std::string* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -746,22 +2367,25 @@ class Airavata_getAPIVersion_presult {
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_getAPIVersion_presult& obj);
 };
 
 
 class Airavata_addGateway_args {
  public:
 
+  static const char* ascii_fingerprint; // = "D64A104FD7F91B8A042C379A972C0256";
+  static const uint8_t binary_fingerprint[16]; // = {0xD6,0x4A,0x10,0x4F,0xD7,0xF9,0x1B,0x8A,0x04,0x2C,0x37,0x9A,0x97,0x2C,0x02,0x56};
+
+  Airavata_addGateway_args(const Airavata_addGateway_args&);
+  Airavata_addGateway_args& operator=(const Airavata_addGateway_args&);
   Airavata_addGateway_args() {
   }
 
-  virtual ~Airavata_addGateway_args() throw() {}
-
+  virtual ~Airavata_addGateway_args() throw();
    ::apache::airavata::model::workspace::Gateway gateway;
 
-  void __set_gateway(const  ::apache::airavata::model::workspace::Gateway& val) {
-    gateway = val;
-  }
+  void __set_gateway(const  ::apache::airavata::model::workspace::Gateway& val);
 
   bool operator == (const Airavata_addGateway_args & rhs) const
   {
@@ -778,37 +2402,45 @@ class Airavata_addGateway_args {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGateway_args& obj);
 };
 
 
 class Airavata_addGateway_pargs {
  public:
 
+  static const char* ascii_fingerprint; // = "D64A104FD7F91B8A042C379A972C0256";
+  static const uint8_t binary_fingerprint[16]; // = {0xD6,0x4A,0x10,0x4F,0xD7,0xF9,0x1B,0x8A,0x04,0x2C,0x37,0x9A,0x97,0x2C,0x02,0x56};
 
-  virtual ~Airavata_addGateway_pargs() throw() {}
 
+  virtual ~Airavata_addGateway_pargs() throw();
   const  ::apache::airavata::model::workspace::Gateway* gateway;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGateway_pargs& obj);
 };
 
 typedef struct _Airavata_addGateway_result__isset {
   _Airavata_addGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
-  bool success;
-  bool ire;
-  bool ace;
-  bool ase;
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
 } _Airavata_addGateway_result__isset;
 
 class Airavata_addGateway_result {
  public:
 
+  static const char* ascii_fingerprint; // = "765449DB00DA08377C7E82BB71F66398";
+  static const uint8_t binary_fingerprint[16]; // = {0x76,0x54,0x49,0xDB,0x00,0xDA,0x08,0x37,0x7C,0x7E,0x82,0xBB,0x71,0xF6,0x63,0x98};
+
+  Airavata_addGateway_result(const Airavata_addGateway_result&);
+  Airavata_addGateway_result& operator=(const Airavata_addGateway_result&);
   Airavata_addGateway_result() : success() {
   }
 
-  virtual ~Airavata_addGateway_result() throw() {}
-
+  virtual ~Airavata_addGateway_result() throw();
   std::string success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -816,21 +2448,13 @@ class Airavata_addGateway_result {
 
   _Airavata_addGateway_result__isset __isset;
 
-  void __set_success(const std::string& val) {
-    success = val;
-  }
+  void __set_success(const std::string& val);
 
-  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
-    ire = val;
-  }
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
-  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
-    ace = val;
-  }
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
 
-  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
-    ase = val;
-  }
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
   bool operator == (const Airavata_addGateway_result & rhs) const
   {
@@ -853,22 +2477,25 @@ class Airavata_addGateway_result {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGateway_result& obj);
 };
 
 typedef struct _Airavata_addGateway_presult__isset {
   _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
-  bool success;
-  bool ire;
-  bool ace;
-  bool ase;
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
 } _Airavata_addGateway_presult__isset;
 
 class Airavata_addGateway_presult {
  public:
 
+  static const char* ascii_fingerprint; // = "765449DB00DA08377C7E82BB71F66398";
+  static const uint8_t binary_fingerprint[16]; // = {0x76,0x54,0x49,0xDB,0x00,0xDA,0x08,0x37,0x7C,0x7E,0x82,0xBB,0x71,0xF6,0x63,0x98};
 
-  virtual ~Airavata_addGateway_presult() throw() {}
 
+  virtual ~Airavata_addGateway_presult() throw();
   std::string* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -878,27 +2505,28 @@ class Airavata_addGateway_presult {
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_addGateway_presult& obj);
 };
 
 
 class Airavata_updateGateway_args {
  public:
 
+  static const char* ascii_fingerprint; // = "2A9862CB68530D7349BD553AD283D721";
+  static const uint8_t binary_fingerprint[16]; // = {0x2A,0x98,0x62,0xCB,0x68,0x53,0x0D,0x73,0x49,0xBD,0x55,0x3A,0xD2,0x83,0xD7,0x21};
+
+  Airavata_updateGateway_args(const Airavata_updateGateway_args&);
+  Airavata_updateGateway_args& operator=(const Airavata_updateGateway_args&);
   Airavata_updateGateway_args() : gatewayId() {
   }
 
-  virtual ~Airavata_updateGateway_args() throw() {}
-
+  virtual ~Airavata_updateGateway_args() throw();
   std::string gatewayId;
    ::apache::airavata::model::workspace::Gateway updatedGateway;
 
-  void __set_gatewayId(const std::string& val) {
-    gatewayId = val;
-  }
+  void __set_gatewayId(const std::string& val);
 
-  void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val) {
-    updatedGateway = val;
-  }
+  void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val);
 
   bool operator == (const Airavata_updateGateway_args & rhs) const
   {
@@ -917,54 +2545,56 @@ class Airavata_updateGateway_args {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGateway_args& obj);
 };
 
 
 class Airavata_updateGateway_pargs {
  public:
 
+  static const char* ascii_fingerprint; // = "2A9862CB68530D7349BD553AD283D721";
+  static const uint8_t binary_fingerprint[16]; // = {0x2A,0x98,0x62,0xCB,0x68,0x53,0x0D,0x73,0x49,0xBD,0x55,0x3A,0xD2,0x83,0xD7,0x21};
 
-  virtual ~Airavata_updateGateway_pargs() throw() {}
 
+  virtual ~Airavata_updateGateway_pargs() throw();
   const std::string* gatewayId;
   const  ::apache::airavata::model::workspace::Gateway* updatedGateway;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGateway_pargs& obj);
 };
 
 typedef struct _Airavata_updateGateway_result__isset {
   _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false) {}
-  bool ire;
-  bool ace;
-  bool ase;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
 } _Airavata_updateGateway_result__isset;
 
 class Airavata_updateGateway_result {
  public:
 
+  static const char* ascii_fingerprint; // = "7A8CA38D7195145C4646F28719CA4673";
+  static const uint8_t binary_fingerprint[16]; // = {0x7A,0x8C,0xA3,0x8D,0x71,0x95,0x14,0x5C,0x46,0x46,0xF2,0x87,0x19,0xCA,0x46,0x73};
+
+  Airavata_updateGateway_result(const Airavata_updateGateway_result&);
+  Airavata_updateGateway_result& operator=(const Airavata_updateGateway_result&);
   Airavata_updateGateway_result() {
   }
 
-  virtual ~Airavata_updateGateway_result() throw() {}
-
+  virtual ~Airavata_updateGateway_result() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
 
   _Airavata_updateGateway_result__isset __isset;
 
-  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
-    ire = val;
-  }
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
-  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
-    ace = val;
-  }
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
 
-  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
-    ase = val;
-  }
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
   bool operator == (const Airavata_updateGateway_result & rhs) const
   {
@@ -985,21 +2615,24 @@ class Airavata_updateGateway_result {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGateway_result& obj);
 };
 
 typedef struct _Airavata_updateGateway_presult__isset {
   _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false) {}
-  bool ire;
-  bool ace;
-  bool ase;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
 } _Airavata_updateGateway_presult__isset;
 
 class Airavata_updateGateway_presult {
  public:
 
+  static const char* ascii_fingerprint; // = "7A8CA38D7195145C4646F28719CA4673";
+  static const uint8_t binary_fingerprint[16]; // = {0x7A,0x8C,0xA3,0x8D,0x71,0x95,0x14,0x5C,0x46,0x46,0xF2,0x87,0x19,0xCA,0x46,0x73};
 
-  virtual ~Airavata_updateGateway_presult() throw() {}
 
+  virtual ~Airavata_updateGateway_presult() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
@@ -1008,22 +2641,25 @@ class Airavata_updateGateway_presult {
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_updateGateway_presult& obj);
 };
 
 
 class Airavata_getGateway_args {
  public:
 
+  static const char* ascii_fingerprint; // = "EFB929595D312AC8F305D5A794CFEDA1";
+  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
+
+  Airavata_getGateway_args(const Airavata_getGateway_args&);
+  Airavata_getGateway_args& operator=(const Airavata_getGateway_args

<TRUNCATED>