http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d55608f1/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
deleted file mode 100644
index 94d408e..0000000
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ /dev/null
@@ -1,30635 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-#ifndef Airavata_H
-#define Airavata_H
-
-#include <thrift/TDispatchProcessor.h>
-#include <thrift/async/TConcurrentClientSyncInfo.h>
-#include "airavata_api_types.h"
-
-namespace apache { namespace airavata { namespace api {
-
-#ifdef _WIN32
-  #pragma warning( push )
-  #pragma warning (disable : 4250 ) //inheriting methods via dominance 
-#endif
-
-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;
-
-  /**
-   * Verify if User Exists within Airavata.
-   * 
-   * @param gatewayId
-   * 
-   *  @param userName
-   * 
-   * @return true/false
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   */
-  virtual bool isUserExists(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName) = 0;
-
-  /**
-   * Register a Gateway with Airavata.
-   * 
-   * @param gateway
-   *    The gateway data model.
-   * 
-   * @return gatewayId
-   *   Th unique identifier of the  newly registered gateway.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gateway
-   */
-  virtual void addGateway(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Gateway& gateway) = 0;
-
-  /**
-   * Get all users in the gateway
-   * 
-   * @param gatewayId
-   *    The gateway data model.
-   * 
-   * @return users
-   *   list of usernames of the users in the gateway
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllUsersInGateway(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId) = 0;
-
-  /**
-   * Update previously registered Gateway metadata.
-   * 
-   * @param gatewayId
-   *    The gateway Id of the Gateway which require an update.
-   * 
-   * @return gateway
-   *    Modified gateway obejct.
-   * 
-   * @exception AiravataClientException
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param updatedGateway
-   */
-  virtual bool updateGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Gateway& 
updatedGateway) = 0;
-
-  /**
-   * Get Gateway details by providing gatewayId
-   * 
-   * @param gatewayId
-   *    The gateway Id of the Gateway.
-   * 
-   * @return gateway
-   *    Gateway obejct.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getGateway( ::apache::airavata::model::workspace::Gateway& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * Delete a Gateway
-   * 
-   * @param gatewayId
-   *    The gateway Id of the Gateway to be deleted.
-   * 
-   * @return boolean
-   *    Boolean identifier for the success or failure of the deletion 
operation.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual bool deleteGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId) = 0;
-
-  /**
-   * Get All the Gateways Connected to Airavata.
-   * 
-   * 
-   * @param authzToken
-   */
-  virtual void getAllGateways(std::vector< 
::apache::airavata::model::workspace::Gateway> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken) = 0;
-
-  /**
-   * Check for the Existance of a Gateway within Airavata
-   * 
-   * @param gatewayId
-   *   Provide the gatewayId of the gateway you want to check the existancy
-   * 
-   * @return boolean
-   *   Boolean idetifier for the existance or non-existane of the gatewayId
-   * 
-   * @return gatewayId
-   *   return the gatewayId of the existing gateway.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual bool isGatewayExist(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId) = 0;
-
-  /**
-   *   * API methods to retrieve notifications
-   * *
-   * 
-   * @param authzToken
-   * @param notification
-   */
-  virtual void createNotification(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification) = 0;
-  virtual bool updateNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification) = 0;
-  virtual bool deleteNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId) = 0;
-  virtual void getNotification( 
::apache::airavata::model::workspace::Notification& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId) = 0;
-  virtual void getAllNotifications(std::vector< 
::apache::airavata::model::workspace::Notification> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param gatewayId
-   * @param userName
-   */
-  virtual void generateAndRegisterSSHKeys(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName) = 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.
-   * 
-   * @param description
-   *    The description field for a credential type, all type of credential 
can have a description.
-   * 
-   * @return airavataCredStoreToken
-   *   An SSH Key pair is generated and stored in the credential store and 
associated with users or community account
-   *   belonging to a Gateway.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   * @param description
-   */
-  virtual void generateAndRegisterSSHKeysWithDescription(std::string& _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId, const std::string& userName, const std::string& 
description) = 0;
-
-  /**
-   * Generate and Register Username PWD Pair with Airavata Credential Store.
-   * 
-   * @param gatewayId
-   *    The identifier for the requested Gateway.
-   * 
-   * @param portalUserName
-   *    The User for which the credential should be registered. For community 
accounts, this user is the name of the
-   *    community user name. For computational resources, this user name need 
not be the same user name on resoruces.
-   * 
-   * @param loginUserName
-   * 
-   * @param password
-   * 
-   * @return airavataCredStoreToken
-   *   An SSH Key pair is generated and stored in the credential store and 
associated with users or community account
-   *   belonging to a Gateway.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param portalUserName
-   * @param loginUserName
-   * @param password
-   * @param description
-   */
-  virtual void registerPwdCredential(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& portalUserName, const std::string& loginUserName, 
const std::string& password, const std::string& description) = 0;
-
-  /**
-   * Get a Public Key by Providing the Token
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and 
public key was generated from.
-   * 
-   * @return publicKey
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataCredStoreToken
-   * @param gatewayId
-   */
-  virtual void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Get all Public Keys of the Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and 
public key was generated from.
-   * 
-   * @return publicKey
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Get all Public Keys of the Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and 
public key was generated from.
-   * 
-   * @return publicKey
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllGatewaySSHPubKeysSummary(std::vector< 
::apache::airavata::model::appcatalog::credentialsummary::CredentialSummary> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Get all Public Key summaries for user in a Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and 
public key was generated from.
-   * 
-   * @param userId
-   *    This is the unique identifier of user whose public keys are to be 
fetched.
-   * 
-   * @return CredentialSummary
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userId
-   */
-  virtual void getAllSSHPubKeysSummaryForUserInGateway(std::vector< 
::apache::airavata::model::appcatalog::credentialsummary::CredentialSummary> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId, const std::string& userId) = 0;
-  virtual void getAllGatewayPWDCredentials(std::map<std::string, std::string> 
& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Delete a Gateway
-   * 
-   * @param gatewayId
-   *    The gateway Id of the Gateway to be deleted.
-   * 
-   * @return boolean
-   *    Boolean identifier for the success or failure of the deletion 
operation.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataCredStoreToken
-   * @param gatewayId
-   */
-  virtual bool deleteSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) = 0;
-  virtual bool deletePWDCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId) = 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 authzToken
-   * @param gatewayId
-   * @param project
-   */
-  virtual void createProject(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Project& project) = 0;
-
-  /**
-   * 
-   * Update an Existing Project
-   * 
-   * @param projectId
-   *    The projectId of the project needed an update.
-   * 
-   * @return void
-   *    Currently this does not return any value.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param projectId
-   * @param updatedProject
-   */
-  virtual void updateProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const  ::apache::airavata::model::workspace::Project& 
updatedProject) = 0;
-
-  /**
-   * 
-   * Get a Project by ID
-   *    This method is to obtain a project by providing a projectId.
-   * 
-   * @param projectId
-   *    projectId of the project you require.
-   * 
-   * @return project
-   *    project data model will be returned.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param projectId
-   */
-  virtual void getProject( ::apache::airavata::model::workspace::Project& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& projectId) = 0;
-
-  /**
-   * 
-   * Delete a Project
-   *    This method is used to delete an existing Project.
-   * 
-   * @param projectId
-   *    projectId of the project you want to delete.
-   * 
-   * @return boolean
-   *    Boolean identifier for the success or failure of the deletion 
operation.
-   * 
-   *    NOTE: This method is not used within gateways connected with Airavata.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param projectId
-   */
-  virtual bool deleteProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId) = 0;
-
-  /**
-   * 
-   * Get All User Projects
-   * Get all Project for the user with pagination. Results will be ordered 
based on creation time DESC.
-   * 
-   * @param gatewayId
-   *    The identifier for the requested gateway.
-   * 
-   * @param userName
-   *    The identifier of the user.
-   * 
-   * @param limit
-   *    The amount results to be fetched.
-   * 
-   * @param offset
-   *    The starting point of the results to be fetched.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   * @param limit
-   * @param offset
-   */
-  virtual void getUserProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset) = 0;
-
-  /**
-   * 
-   * Search User Projects
-   * Search and get all Projects for user by project description or/and 
project name  with pagination.
-   * Results will be ordered based on creation time DESC.
-   * 
-   * @param gatewayId
-   *    The unique identifier of the gateway making the request.
-   * 
-   * @param userName
-   *    The identifier of the user.
-   * 
-   * @param filters
-   *    Map of multiple filter criteria. Currenlt search filters includes 
Project Name and Project Description
-   * 
-   * @param limit
-   *    The amount results to be fetched.
-   * 
-   * @param offset
-   *    The starting point of the results to be fetched.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   * @param filters
-   * @param limit
-   * @param offset
-   */
-  virtual void searchProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> 
& filters, const int32_t limit, const int32_t offset) = 0;
-
-  /**
-   * Search Experiments.
-   * Search Experiments by using multiple filter criteria with pagination. 
Results will be sorted based on creation time DESC.
-   * 
-   * @param gatewayId
-   *       Identifier of the requested gateway.
-   * 
-   * @param userName
-   *       Username of the user requesting the search function.
-   * 
-   * @param filters
-   *       Map of multiple filter criteria. Currenlt search filters includes 
Experiment Name, Description, Application, etc....
-   * 
-   * @param limit
-   *       Amount of results to be fetched.
-   * 
-   * @param offset
-   *       The starting point of the results to be fetched.
-   * 
-   * @return ExperimentSummaryModel
-   *    List of experiments for the given search filter. Here only the 
Experiment summary will be returned.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   * @param filters
-   * @param limit
-   * @param offset
-   */
-  virtual void searchExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentSummaryModel> & _return, const 
 ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ExperimentSearchFields::type, 
std::string> & filters, const int32_t limit, const int32_t offset) = 0;
-
-  /**
-   * 
-   * Get Experiment Statistics
-   * Get Experiment Statisitics for a given gateway for a specific time 
period. This feature is available only for admins of a particular gateway. 
Gateway admin access is managed by the user roles.
-   * 
-   * @param gatewayId
-   *       Unique identifier of the gateway making the request to fetch 
statistics.
-   * 
-   * @param fromTime
-   *       Starting date time.
-   * 
-   * @param toTime
-   *       Ending data time.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param fromTime
-   * @param toTime
-   */
-  virtual void getExperimentStatistics( 
::apache::airavata::model::experiment::ExperimentStatistics& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const int64_t fromTime, const int64_t toTime) = 0;
-
-  /**
-   * 
-   * Get All Experiments of the Project
-   * Get Experiments within project with pagination. Results will be sorted 
based on creation time DESC.
-   * 
-   * @param projectId
-   *       Uniqie identifier of the project.
-   * 
-   * @param limit
-   *       Amount of results to be fetched.
-   * 
-   * @param offset
-   *       The starting point of the results to be fetched.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param projectId
-   * @param limit
-   * @param offset
-   */
-  virtual void getExperimentsInProject(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const int32_t limit, const int32_t offset) = 0;
-
-  /**
-   * 
-   * Get All Experiments of the User
-   * Get experiments by user with pagination. Results will be sorted based on 
creation time DESC.
-   * 
-   * @param gatewayId
-   *       Identifier of the requesting gateway.
-   * 
-   * @param userName
-   *       Username of the requested end user.
-   * 
-   * @param limit
-   *       Amount of results to be fetched.
-   * 
-   * @param offset
-   *       The starting point of the results to be fetched.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param userName
-   * @param limit
-   * @param offset
-   */
-  virtual void getUserExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset) = 0;
-
-  /**
-   *   *
-   *   * Create New Experiment
-   *   * Create an experiment for the specified user belonging to the gateway. 
The gateway identity is not explicitly passed
-   *   *   but inferred from the sshKeyAuthentication header. This experiment 
is just a persistent place holder. The client
-   *   *   has to subsequently configure and launch the created experiment. No 
action is taken on Airavata Server except
-   *   *   registering the experiment in a persistent store.
-   *   *
-   *   * @param gatewayId
-   *   *    The unique ID of the gateway where the experiment is been created.
-   *   *
-   *   * @param ExperimentModel
-   *   *    The create experiment will require the basic experiment metadata 
like the name and description, intended user,
-   *   *      the gateway identifer and if the experiment should be shared 
public by defualt. During the creation of an experiment
-   *   *      the ExperimentMetadata is a required field.
-   *   *
-   *   * @return
-   *   *   The server-side 
generated.airavata.registry.core.experiment.globally unique identifier.
-   *   *
-   *   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *   *    For any incorrect forming of the request itself.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataClientException
-   *   *    The following list of exceptions are thrown which Airavata Client 
can take corrective actions to resolve:
-   *   *
-   *   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with 
Airavata as a one time administrative
-   *   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *   *         gateway registration steps and retry this request.
-   *   *
-   *   *      AUTHENTICATION_FAILURE - How Authentication will be implemented 
is yet to be determined.
-   *   *         For now this is a place holder.
-   *   *
-   *   *      INVALID_AUTHORIZATION - This will throw an authorization 
exception. When a more robust security hand-shake
-   *   *         is implemented, the authorization will be more substantial.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *   *    This exception will be thrown for any Airavata Server side issues 
and if the problem cannot be corrected by the client
-   *   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   *   *
-   * *
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param experiment
-   */
-  virtual void createExperiment(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& 
experiment) = 0;
-
-  /**
-   * 
-   * Delete an Experiment
-   * If the experiment is not already launched experiment can be deleted.
-   * 
-   * @param authzToken
-   * 
-   * @param experiementId
-   *     Experiment ID of the experimnet you want to delete.
-   * 
-   * @return boolean
-   *     Identifier for the success or failure of the deletion operation.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param experimentId
-   */
-  virtual bool deleteExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
experimentId) = 0;
-
-  /**
-   *   *
-   *   * Get Experiment
-   *   * Fetch previously created experiment metadata.
-   *   *
-   *   * @param airavataExperimentId
-   *   *    The unique identifier of the requested experiment. This ID is 
returned during the create experiment step.
-   *   *
-   *   * @return ExperimentModel
-   *   *   This method will return the previously stored experiment metadata.
-   *   *
-   *   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *   *    For any incorrect forming of the request itself.
-   *   *
-   *   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataClientException
-   *   *    The following list of exceptions are thrown which Airavata Client 
can take corrective actions to resolve:
-   *   *
-   *   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with 
Airavata as a one time administrative
-   *   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *   *         gateway registration steps and retry this request.
-   *   *
-   *   *      AUTHENTICATION_FAILURE - How Authentication will be implemented 
is yet to be determined.
-   *   *         For now this is a place holder.
-   *   *
-   *   *      INVALID_AUTHORIZATION - This will throw an authorization 
exception. When a more robust security hand-shake
-   *   *         is implemented, the authorization will be more substantial.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *   *    This exception will be thrown for any Airavata Server side issues 
and if the problem cannot be corrected by the client
-   *   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   *   *
-   * *
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getExperiment( 
::apache::airavata::model::experiment::ExperimentModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   *   *
-   *   * Get Experiment by an admin user
-   *   *
-   *   * Used by an admin user to fetch previously created experiment metadata.
-   *   *
-   *   * @param airavataExperimentId
-   *   *    The unique identifier of the requested experiment. This ID is 
returned during the create experiment step.
-   *   *
-   *   * @return ExperimentModel
-   *   *   This method will return the previously stored experiment metadata.
-   *   *
-   *   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *   *    For any incorrect forming of the request itself.
-   *   *
-   *   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataClientException
-   *   *    The following list of exceptions are thrown which Airavata Client 
can take corrective actions to resolve:
-   *   *
-   *   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with 
Airavata as a one time administrative
-   *   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *   *         gateway registration steps and retry this request.
-   *   *
-   *   *      AUTHENTICATION_FAILURE - How Authentication will be implemented 
is yet to be determined.
-   *   *         For now this is a place holder.
-   *   *
-   *   *      INVALID_AUTHORIZATION - This will throw an authorization 
exception. When a more robust security hand-shake
-   *   *         is implemented, the authorization will be more substantial.
-   *   *
-   *   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *   *    This exception will be thrown for any Airavata Server side issues 
and if the problem cannot be corrected by the client
-   *   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   *   *
-   * *
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getExperimentByAdmin( 
::apache::airavata::model::experiment::ExperimentModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Get Complete Experiment Details
-   * Fetch the completed nested tree structue of previously created experiment 
metadata which includes processes ->
-   * tasks -> jobs information.
-   * 
-   * @param airavataExperimentId
-   *    The identifier for the requested experiment. This is returned during 
the create experiment step.
-   * 
-   * @return ExperimentModel
-   *   This method will return the previously stored experiment metadata 
including application input parameters, computational resource scheduling
-   *   information, special input output handling and additional quality of 
service parameters.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   * 
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getDetailedExperimentTree( 
::apache::airavata::model::experiment::ExperimentModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Update a Previously Created Experiment
-   * Configure the CREATED experiment with required inputs, scheduling and 
other quality of service parameters. This method only updates the experiment 
object within the registry.
-   * The experiment has to be launched to make it actionable by the server.
-   * 
-   * @param airavataExperimentId
-   *    The identifier for the requested experiment. This is returned during 
the create experiment step.
-   * 
-   * @param ExperimentModel
-   *    The configuration information of the experiment with application input 
parameters, computational resource scheduling
-   *      information, special input output handling and additional quality of 
service parameters.
-   * 
-   * @return
-   *   This method call does not have a return value.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   *      
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   * @param experiment
-   */
-  virtual void updateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::ExperimentModel& experiment) = 0;
-  virtual void updateExperimentConfiguration(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::UserConfigurationDataModel& 
userConfiguration) = 0;
-  virtual void updateResourceScheduleing(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& 
resourceScheduling) = 0;
-
-  /**
-   *  *
-   *  * Validate experiment configuration.
-   *  * A true in general indicates, the experiment is ready to be launched.
-   *  *
-   *  * @param airavataExperimentId
-   *  *    Unique identifier of the experiment (Experimnent ID) of the 
experiment which need to be validated.
-   *  *
-   *  * @return boolean
-   *  *      Identifier for the success or failure of the validation operation.
-   *  *
-   * *
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual bool validateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Launch a Previously Created & Configured Experiment.
-   * Airavata Server will then start processing the request and appropriate 
notifications and intermediate and output data will be subsequently available 
for this experiment.
-   * 
-   * @gatewayId
-   *    ID of the gateway which will launch the experiment.
-   * 
-   * @param airavataExperimentId
-   *    The identifier for the requested experiment. This is returned during 
the create experiment step.
-   * 
-   * @return
-   *   This method call does not have a return value.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   *      
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   * @param gatewayId
-   */
-  virtual void launchExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Get Experiment Status
-   * 
-   * Obtain the status of an experiment by providing the Experiment Id
-   * 
-   * @param authzToken
-   * 
-   * @param airavataExperimentId
-   *     Experiment ID of the experimnet you require the status.
-   * 
-   * @return ExperimentStatus
-   *     ExperimentStatus model with the current status will be returned.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getExperimentStatus( 
::apache::airavata::model::status::ExperimentStatus& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Get Experiment Outputs
-   * This method to be used when need to obtain final outputs of a certain 
Experiment
-   * 
-   * @param authzToken
-   * 
-   * @param airavataExperimentId
-   *     Experiment ID of the experimnet you need the outputs.
-   * 
-   * @return list
-   *     List of experiment outputs will be returned. They will be returned as 
a list of OutputDataObjectType for the experiment.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getExperimentOutputs(std::vector< 
::apache::airavata::model::application::io::OutputDataObjectType> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Get Intermediate Experiment Outputs
-   * This method to be used when need to obtain intermediate outputs of a 
certain Experiment
-   * 
-   * @param authzToken
-   * 
-   * @param airavataExperimentId
-   *     Experiment ID of the experimnet you need intermediate outputs.
-   * 
-   * @return list
-   *     List of intermediate experiment outputs will be returned. They will 
be returned as a list of OutputDataObjectType for the experiment.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getIntermediateOutputs(std::vector< 
::apache::airavata::model::application::io::OutputDataObjectType> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Get Job Statuses for an Experiment
-   * This method to be used when need to get the job status of an Experiment. 
An experiment may have one or many jobs; there for one or many job statuses may 
turnup
-   * 
-   * @param authzToken
-   * 
-   * @param experiementId
-   *     Experiment ID of the experimnet you need the job statuses.
-   * 
-   * @return JobStatus
-   *     Job status (string) for all all the existing jobs for the experiment 
will be returned in the form of a map
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getJobStatuses(std::map<std::string,  
::apache::airavata::model::status::JobStatus> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Get Job Details for all the jobs within an Experiment.
-   * This method to be used when need to get the job details for one or many 
jobs of an Experiment.
-   * 
-   * @param authzToken
-   * 
-   * @param experiementId
-   *     Experiment ID of the experimnet you need job details.
-   * 
-   * @return list of JobDetails
-   *     Job details.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   */
-  virtual void getJobDetails(std::vector< 
::apache::airavata::model::job::JobModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId) = 0;
-
-  /**
-   * 
-   * Clone an Existing Experiment
-   * Existing specified experiment is cloned and a new name is provided. A 
copy of the experiment configuration is made and is persisted with new metadata.
-   *   The client has to subsequently update this configuration if needed and 
launch the cloned experiment.
-   * 
-   * @param newExperimentName
-   *    experiment name that should be used in the cloned experiment
-   * 
-   * @param updatedExperiment
-   *    Once an experiment is cloned, to disambiguate, the users are suggested 
to provide new metadata. This will again require
-   *      the basic experiment metadata like the name and description, 
intended user, the gateway identifier and if the experiment
-   *      should be shared public by default.
-   * @param newExperimentProjectId
-   *    The project in which to create the cloned experiment. This is optional 
and if null the experiment will be created
-   *      in the same project as the existing experiment.
-   * 
-   * @return
-   *   The server-side generated.airavata.registry.core.experiment.globally 
unique identifier (Experiment ID) for the newly cloned experiment.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   *      
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param existingExperimentID
-   * @param newExperimentName
-   * @param newExperimentProjectId
-   */
-  virtual void cloneExperiment(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
existingExperimentID, const std::string& newExperimentName, const std::string& 
newExperimentProjectId) = 0;
-
-  /**
-   * 
-   * Clone an Existing Experiment by an admin user
-   * Existing specified experiment is cloned and a new name is provided. A 
copy of the experiment configuration is made and is persisted with new metadata.
-   *   The client has to subsequently update this configuration if needed and 
launch the cloned experiment.
-   * 
-   * @param 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.
-   * @param newExperimentProjectId
-   *    The project in which to create the cloned experiment. This is optional 
and if null the experiment will be created
-   *      in the same project as the existing experiment.
-   * 
-   * @return
-   *   The server-side generated.airavata.registry.core.experiment.globally 
unique identifier (Experiment ID) for the newly cloned experiment.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   * 
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param existingExperimentID
-   * @param newExperimentName
-   * @param newExperimentProjectId
-   */
-  virtual void cloneExperimentByAdmin(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
existingExperimentID, const std::string& newExperimentName, const std::string& 
newExperimentProjectId) = 0;
-
-  /**
-   * 
-   * Terminate a running Experiment.
-   * 
-   * @gatewayId
-   *    ID of the gateway which will terminate the running Experiment.
-   * 
-   * @param airavataExperimentId
-   *    The identifier of the experiment required termination. This ID is 
returned during the create experiment step.
-   * 
-   * @return status
-   *   This method call does not have a return value.
-   * 
-   * @throws org.apache.airavata.model.error.InvalidRequestException
-   *    For any incorrect forming of the request itself.
-   * 
-   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataClientException
-   *    The following list of exceptions are thrown which Airavata Client can 
take corrective actions to resolve:
-   *      
-   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as 
a one time administrative
-   *         step, then Airavata Registry will not have a provenance area 
setup. The client has to follow
-   *         gateway registration steps and retry this request.
-   * 
-   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is 
yet to be determined.
-   *         For now this is a place holder.
-   * 
-   *      INVALID_AUTHORIZATION - This will throw an authorization exception. 
When a more robust security hand-shake
-   *         is implemented, the authorization will be more substantial.
-   * 
-   * @throws org.apache.airavata.model.error.AiravataSystemException
-   *    This exception will be thrown for any Airavata Server side issues and 
if the problem cannot be corrected by the client
-   *       rather an Airavata Administrator will be notified to take 
corrective action.
-   * 
-   * 
-   * @param authzToken
-   * @param airavataExperimentId
-   * @param gatewayId
-   */
-  virtual void terminateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Register a Application Module.
-   * 
-   * @gatewayId
-   *    ID of the gateway which is registering the new Application Module.
-   * 
-   * @param applicationModule
-   *    Application Module Object created from the datamodel.
-   * 
-   * @return appModuleId
-   *   Returns the server-side generated airavata appModule globally unique 
identifier.
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param applicationModule
-   */
-  virtual void registerApplicationModule(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  
::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& 
applicationModule) = 0;
-
-  /**
-   * 
-   * Fetch a Application Module.
-   * 
-   * @param appModuleId
-   *   The unique identifier of the application module required
-   * 
-   * @return applicationModule
-   *   Returns an Application Module Object.
-   * 
-   * 
-   * @param authzToken
-   * @param appModuleId
-   */
-  virtual void getApplicationModule( 
::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 authzToken
-   * @param appModuleId
-   * @param applicationModule
-   */
-  virtual bool updateApplicationModule(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
appModuleId, const  
::apache::airavata::model::appcatalog::appdeployment::ApplicationModule& 
applicationModule) = 0;
-
-  /**
-   * 
-   * Fetch all Application Module Descriptions.
-   * 
-   * @param gatewayId
-   *    ID of the gateway which need to list all available application 
deployment documentation.
-   * 
-   * @return list
-   *    Returns the list of all Application Module Objects.
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllAppModules(std::vector< 
::apache::airavata::model::appcatalog::appdeployment::ApplicationModule> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Delete an Application Module.
-   * 
-   * @param appModuleId
-   *   The identifier of the Application Module to be deleted.
-   * 
-   * @return status
-   *   Returns a success/failure of the deletion.
-   * 
-   * 
-   * @param authzToken
-   * @param appModuleId
-   */
-  virtual bool deleteApplicationModule(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
appModuleId) = 0;
-
-  /**
-   * 
-   * Register an Application Deployment.
-   * 
-   * @param gatewayId
-   *    ID of the gateway which is registering the new Application Deployment.
-   * 
-   * @param applicationDeployment
-   *    Application Module Object created from the datamodel.
-   * 
-   * @return appDeploymentId
-   *   Returns a server-side generated airavata appDeployment globally unique 
identifier.
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param applicationDeployment
-   */
-  virtual void registerApplicationDeployment(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param appDeploymentId
-   */
-  virtual void getApplicationDeployment( 
::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription&
 _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& appDeploymentId) = 0;
-
-  /**
-   * 
-   * Update an Application Deployment.
-   * 
-   * @param appDeploymentId
-   *   The identifier of the requested application deployment to be updated.
-   * 
-   * @param appDeployment
-   *    Application Deployment Object created from the datamodel.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * @param authzToken
-   * @param appDeploymentId
-   * @param applicationDeployment
-   */
-  virtual bool updateApplicationDeployment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
appDeploymentId, const  
::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription&
 applicationDeployment) = 0;
-
-  /**
-   * 
-   * Delete an Application Deployment.
-   * 
-   * @param appDeploymentId
-   *   The unique identifier of application deployment to be deleted.
-   * 
-   * @return status
-   *   Returns a success/failure of the deletion.
-   * 
-   * 
-   * @param authzToken
-   * @param appDeploymentId
-   */
-  virtual bool deleteApplicationDeployment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
appDeploymentId) = 0;
-
-  /**
-   * 
-   * Fetch all Application Deployment Descriptions.
-   * 
-   * @param gatewayId
-   *    ID of the gateway which need to list all available application 
deployment documentation.
-   * 
-   * @return list<applicationDeployment.
-   *    Returns the list of all application Deployment Objects.
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllApplicationDeployments(std::vector< 
::apache::airavata::model::appcatalog::appdeployment::ApplicationDeploymentDescription>
 & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 authzToken
-   * @param appModuleId
-   */
-  virtual void getAppModuleDeployedResources(std::vector<std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& appModuleId) = 0;
-
-  /**
-   * 
-   * Register a Application Interface.
-   * 
-   * @param applicationInterface
-   *    Application Module Object created from the datamodel.
-   * 
-   * @return appInterfaceId
-   *   Returns a server-side generated airavata application interface globally 
unique identifier.
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   * @param applicationInterface
-   */
-  virtual void registerApplicationInterface(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  
::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription&
 applicationInterface) = 0;
-
-  /**
-   * 
-   * Clone an Application Interface.
-   * 
-   * @gatewayId
-   *    The identifier for the gateway profile to be requested
-   * 
-   * @param existingAppInterfaceID
-   *    Identifier of the existing Application interface you wich to clone.
-   * 
-   * @param newApplicationName
-   *    Name for the new application interface.
-   * 
-   * @return appInterfaceId
-   *    Returns a server-side generated globally unique identifier for the 
newly cloned application interface.
-   * 
-   * 
-   * @param authzToken
-   * @param existingAppInterfaceID
-   * @param newApplicationName
-   * @param gatewayId
-   */
-  virtual void cloneApplicationInterface(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
existingAppInterfaceID, const std::string& newApplicationName, const 
std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Fetch an Application Interface.
-   * 
-   * @param appInterfaceId
-   *   The identifier for the requested application interface.
-   * 
-   * @return applicationInterface
-   *   Returns an application Interface Object.
-   * 
-   * 
-   * @param authzToken
-   * @param appInterfaceId
-   */
-  virtual void getApplicationInterface( 
::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription&
 _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& appInterfaceId) = 0;
-
-  /**
-   * 
-   * Update a Application Interface.
-   * 
-   * @param appInterfaceId
-   *   The identifier of the requested application deployment to be updated.
-   * 
-   * @param appInterface
-   *    Application Interface Object created from the datamodel.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * @param authzToken
-   * @param appInterfaceId
-   * @param applicationInterface
-   */
-  virtual bool updateApplicationInterface(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
appInterfaceId, const  
::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription&
 applicationInterface) = 0;
-
-  /**
-   * 
-   * Delete an Application Interface.
-   * 
-   * @param appInterfaceId
-   *   The identifier for the requested application interface to be deleted.
-   * 
-   * @return status
-   *   Returns a success/failure of the deletion.
-   * 
-   * 
-   * @param authzToken
-   * @param appInterfaceId
-   */
-  virtual bool deleteApplicationInterface(const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param gatewayId
-   */
-  virtual void getAllApplicationInterfaceNames(std::map<std::string, 
std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Fetch all Application Interface documents.
-   * 
-   * 
-   * @return map<applicationId, applicationInterfaceNames>
-   *   Returns a list of application interfaces documents (Application 
Interface ID, name, description, Inputs and Outputs objects).
-   * 
-   * 
-   * @param authzToken
-   * @param gatewayId
-   */
-  virtual void getAllApplicationInterfaces(std::vector< 
::apache::airavata::model::appcatalog::appinterface::ApplicationInterfaceDescription>
 & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId) = 0;
-
-  /**
-   * 
-   * Fetch the list of Application Inputs.
-   * 
-   * @param appInterfaceId
-   *   The identifier of the application interface which need inputs to be 
fetched.
-   * 
-   * @return list<application_interface_model.InputDataObjectType>
-   *   Returns a list of application inputs.
-   * 
-   * 
-   * @param authzToken
-   * @param appInterfaceId
-   */
-  virtual void getApplicationInputs(std::vector< 
::apache::airavata::model::application::io::InputDataObjectType> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& appInterfaceId) = 0;
-
-  /**
-   * 
-   * Fetch list of Application Outputs.
-   * 
-   * @param appInterfaceId
-   *   The identifier of the application interface which need outputs to be 
fetched.
-   * 
-   * @return list<application_interface_model.OutputDataObjectType>
-   *   Returns a list of application outputs.
-   * 
-   * 
-   * @param authzToken
-   * @param appInterfaceId
-   */
-  virtual void getApplicationOutputs(std::vector< 
::apache::airavata::model::application::io::OutputDataObjectType> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param appInterfaceId
-   */
-  virtual void getAvailableAppInterfaceComputeResources(std::map<std::string, 
std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& 
authzToken, 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 authzToken
-   * @param computeResourceDescription
-   */
-  virtual void registerComputeResource(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param computeResourceId
-   */
-  virtual void getComputeResource( 
::apache::airavata::model::appcatalog::computeresource::ComputeResourceDescription&
 _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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..
-   * 
-   * 
-   * @param authzToken
-   */
-  virtual void getAllComputeResourceNames(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 
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 authzToken
-   * @param computeResourceId
-   * @param computeResourceDescription
-   */
-  virtual bool updateComputeResource(const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param computeResourceId
-   */
-  virtual bool deleteComputeResource(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
computeResourceId) = 0;
-
-  /**
-   * Register a Storage Resource.
-   * 
-   * @param storageResourceDescription
-   *    Storge Resource Object created from the datamodel.
-   * 
-   * @return storageResourceId
-   *   Returns a server-side generated airavata storage resource globally 
unique identifier.
-   * 
-   * 
-   * @param authzToken
-   * @param storageResourceDescription
-   */
-  virtual void registerStorageResource(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::appcatalog::storageresource::StorageResourceDescription&
 storageResourceDescription) = 0;
-
-  /**
-   * Fetch the given Storage Resource.
-   * 
-   * @param storageResourceId
-   *   The identifier for the requested storage resource
-   * 
-   * @return storageResourceDescription
-   *    Storage Resource Object created from the datamodel..
-   * 
-   * 
-   * @param authzToken
-   * @param storageResourceId
-   */
-  virtual void getStorageResource( 
::apache::airavata::model::appcatalog::storageresource::StorageResourceDescription&
 _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& storageResourceId) = 0;
-
-  /**
-   * Fetch all registered Storage Resources.
-   * 
-   * @return A map of registered compute resource id's and thier corresponding 
hostnames.
-   *    Compute Resource Object created from the datamodel..
-   * 
-   * 
-   * @param authzToken
-   */
-  virtual void getAllStorageResourceNames(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 
0;
-
-  /**
-   * Update a Storage Resource.
-   * 
-   * @param storageResourceId
-   *   The identifier for the requested compute resource to be updated.
-   * 
-   * @param storageResourceDescription
-   *    Storage Resource Object created from the datamodel.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * @param authzToken
-   * @param storageResourceId
-   * @param storageResourceDescription
-   */
-  virtual bool updateStorageResource(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
storageResourceId, const  
::apache::airavata::model::appcatalog::storageresource::StorageResourceDescription&
 storageResourceDescription) = 0;
-
-  /**
-   * Delete a Storage Resource.
-   * 
-   * @param storageResourceId
-   *   The identifier of the requested compute resource to be deleted.
-   * 
-   * @return status
-   *   Returns a success/failure of the deletion.
-   * 
-   * 
-   * @param authzToken
-   * @param storageResourceId
-   */
-  virtual bool deleteStorageResource(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
storageResourceId) = 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 authzToken
-   * @param computeResourceId
-   * @param priorityOrder
-   * @param localSubmission
-   */
-  virtual void addLocalSubmissionDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param jobSubmissionInterfaceId
-   * @param localSubmission
-   */
-  virtual bool updateLocalSubmissionDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param jobSubmissionId
-   */
-  virtual void getLocalJobSubmission( 
::apache::airavata::model::appcatalog::computeresource::LOCALSubmission& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 authzToken
-   * @param computeResourceId
-   * @param priorityOrder
-   * @param sshJobSubmission
-   */
-  virtual void addSSHJobSubmissionDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
computeResourceId, const int32_t priorityOrder, const  
::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& 
sshJobSubmission) = 0;
-
-  /**
-   * 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.
-   * 
-   * 
-   * @param authzToken
-   * @param computeResourceId
-   * @param priorityOrder
-   * @param sshJobSubmission
-   */
-  virtual void addSSHForkJobSubmissionDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param jobSubmissionId
-   */
-  virtual void getSSHJobSubmission( 
::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 authzToken
-   * @param computeResourceId
-   * @param priorityOrder
-   * @param unicoreJobSubmission
-   */
-  virtual void addUNICOREJobSubmissionDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param jobSubmissionId
-   */
-  virtual void getUnicoreJobSubmission( 
::apache::airavata::model::appcatalog::computeresource::UnicoreJobSubmission& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 authzToken
-   * @param computeResourceId
-   * @param priorityOrder
-   * @param cloudSubmission
-   */
-  virtual void addCloudJobSubmissionDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 authzToken
-   * @param jobSubmissionId
-   */
-  virtual void getCloudJobSubmission( 
::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
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 update.
-   * 
-   * 
-   * @param authzToken
-   * @param jobSubmissionInterfaceId
-   * @param sshJobSubmission
-   */
-  virtual bool updateSSHJobSubmissionDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
jobSubmissionInterfaceId, const  
::apache::airavata::model::appcatalog::computeresource::SSHJobSubmission& 
sshJobSubmission) = 0;
-
-  /**
-   * 
-   * Update the cloud Job Submission details
-   * 
-   * @param jobSubmissionInterfaceId
-   *   The identifier of the JobSubmission Interface to be updated.
-   * 
-   * @param cloudJobSubmission
-   *   The CloudJobSubmission object to be updated.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * @param authzToken
-   * @param jobSubmissionInterfaceId
-   * @param sshJobSubmission
-   */
-  virtual bool updateCloudJobSubmissionDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
jobSubmissionInterfaceId, const  
::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& 
sshJobSubmission) = 0;
-
-  /**
-   * 
-   * Update the UNIOCRE Job Submission details
-   * 
-   * @param jobSubmissionInterfaceId
-   *   The identifier of the JobSubmission Interface to be updated.
-   * 
-   * @param UnicoreJobSubmission
-   *   The UnicoreJobSubmission object to be updated.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param jobSubmissionInterfaceId
-   * @param unicoreJobSubmission
-   */
-  virtual bool updateUnicoreJobSubmissionDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 productUri
-   *   The identifier of the compute resource to which JobSubmission protocol 
to be added
-   * 
-   * @param DMType
-   *   DMType object to be added to the resource.
-   * 
-   * @param priorityOrder
-   *   Specify the priority of this job manager. If this is the only 
jobmanager, the priority can be zero.
-   * 
-   * @param localDataMovement
-   *   The LOCALDataMovement object to be added to the resource.
-   * 
-   * @return status
-   *   Returns the unique job submission id.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param productUri
-   * @param dataMoveType
-   * @param priorityOrder
-   * @param localDataMovement
-   */
-  virtual void addLocalDataMovementDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
productUri, const  ::apache::airavata::model::data::movement::DMType::type 
dataMoveType, const int32_t priorityOrder, const  
::apache::airavata::model::data::movement::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 authzToken
-   * @param dataMovementInterfaceId
-   * @param localDataMovement
-   */
-  virtual bool updateLocalDataMovementDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementInterfaceId, const  
::apache::airavata::model::data::movement::LOCALDataMovement& 
localDataMovement) = 0;
-
-  /**
-   * 
-   * This method returns local datamovement object.
-   * 
-   * @param dataMovementId
-   *   The identifier of the datamovement Interface to be retrieved.
-   * 
-   *  @return LOCALDataMovement instance
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementId
-   */
-  virtual void getLocalDataMovement( 
::apache::airavata::model::data::movement::LOCALDataMovement& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 productUri
-   *   The identifier of the compute resource to which JobSubmission protocol 
to be added
-   * 
-   * @param priorityOrder
-   *   Specify the priority of this job manager. If this is the only 
jobmanager, the priority can be zero.
-   * 
-   * @param scpDataMovement
-   *   The SCPDataMovement object to be added to the resource.
-   * 
-   * @return status
-   *   Returns the unique job submission id.
-   * 
-   * 
-   * @param authzToken
-   * @param productUri
-   * @param dataMoveType
-   * @param priorityOrder
-   * @param scpDataMovement
-   */
-  virtual void addSCPDataMovementDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
productUri, const  ::apache::airavata::model::data::movement::DMType::type 
dataMoveType, const int32_t priorityOrder, const  
::apache::airavata::model::data::movement::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 authzToken
-   * @param dataMovementInterfaceId
-   * @param scpDataMovement
-   */
-  virtual bool updateSCPDataMovementDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementInterfaceId, const  
::apache::airavata::model::data::movement::SCPDataMovement& scpDataMovement) = 
0;
-
-  /**
-   * This method returns SCP datamovement object
-   * 
-   * @param dataMovementId
-   *   The identifier of the datamovement Interface to be retrieved.
-   * 
-   * @return SCPDataMovement instance
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementId
-   */
-  virtual void getSCPDataMovement( 
::apache::airavata::model::data::movement::SCPDataMovement& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementId) = 0;
-
-  /**
-   * 
-   * Add a UNICORE data movement details to a compute resource
-   *  App catalog will return a dataMovementInterfaceId which will be added to 
the dataMovementInterfaces.
-   * 
-   * @param productUri
-   *   The identifier of the compute resource to which data movement protocol 
to be added
-   * 
-   * @param priorityOrder
-   *   Specify the priority of this job manager. If this is the only 
jobmanager, the priority can be zero.
-   * 
-   * @param UnicoreDataMovement
-   *   The UnicoreDataMovement object to be added to the resource.
-   * 
-   * @return status
-   *   Returns the unique data movement id.
-   * 
-   * 
-   * @param authzToken
-   * @param productUri
-   * @param dataMoveType
-   * @param priorityOrder
-   * @param unicoreDataMovement
-   */
-  virtual void addUnicoreDataMovementDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
productUri, const  ::apache::airavata::model::data::movement::DMType::type 
dataMoveType, const int32_t priorityOrder, const  
::apache::airavata::model::data::movement::UnicoreDataMovement& 
unicoreDataMovement) = 0;
-
-  /**
-   * 
-   * Update a selected UNICORE data movement details
-   *  App catalog will return a dataMovementInterfaceId which will be added to 
the dataMovementInterfaces.
-   * 
-   * @param dataMovementInterfaceId
-   *   The identifier of the data movement Interface to be updated.
-   * 
-   * @param UnicoreDataMovement
-   *   The UnicoreDataMovement object to be updated.
-   * 
-   * @return status
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementInterfaceId
-   * @param unicoreDataMovement
-   */
-  virtual bool updateUnicoreDataMovementDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementInterfaceId, const  
::apache::airavata::model::data::movement::UnicoreDataMovement& 
unicoreDataMovement) = 0;
-
-  /**
-   * 
-   * This method returns UNICORE datamovement object
-   * 
-   * @param dataMovementId
-   *   The identifier of the datamovement Interface to be retrieved.
-   * 
-   * @return UnicoreDataMovement instance
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementId
-   */
-  virtual void getUnicoreDataMovement( 
::apache::airavata::model::data::movement::UnicoreDataMovement& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, 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 productUri
-   *   The identifier of the compute resource to which dataMovement protocol 
to be added
-   * 
-   * @param DMType
-   *    The DMType object to be added to the resource.
-   * 
-   * @param priorityOrder
-   *   Specify the priority of this job manager. If this is the only 
jobmanager, the priority can be zero.
-   * 
-   * @param gridFTPDataMovement
-   *   The GridFTPDataMovement object to be added to the resource.
-   * 
-   * @return status
-   *   Returns the unique data movement id.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param productUri
-   * @param dataMoveType
-   * @param priorityOrder
-   * @param gridFTPDataMovement
-   */
-  virtual void addGridFTPDataMovementDetails(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
productUri, const  ::apache::airavata::model::data::movement::DMType::type 
dataMoveType, const int32_t priorityOrder, const  
::apache::airavata::model::data::movement::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 boolean
-   *   Returns a success/failure of the update.
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementInterfaceId
-   * @param gridFTPDataMovement
-   */
-  virtual bool updateGridFTPDataMovementDetails(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementInterfaceId, const  
::apache::airavata::model::data::movement::GridFTPDataMovement& 
gridFTPDataMovement) = 0;
-
-  /**
-   * This method returns GridFTP datamovement object
-   * 
-   * @param dataMovementId
-   *   The identifier of the datamovement Interface to be retrieved.
-   * 
-   *  @return GridFTPDataMovement instance
-   * 
-   * 
-   * 
-   * @param authzToken
-   * @param dataMovementId
-   */
-  virtual void getGridFTPDataMovement( 
::apache::airavata::model::data::movement::GridFTPDataMovement& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
dataMovementId) = 0;
-
-  /**
-   * Change the priority of a given job submisison interface
-   * 
-   * @param jobSubmissionInterfaceId
-   *   The identifier of the JobSubmission Interface to be change

<TRUNCATED>

Reply via email to