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>
