http://git-wip-us.apache.org/repos/asf/airavata/blob/2d9fd253/thrift-interface-descriptions/component-cpis/registry-api.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/component-cpis/registry-api.thrift b/thrift-interface-descriptions/component-cpis/registry-api.thrift new file mode 100644 index 0000000..825b30a --- /dev/null +++ b/thrift-interface-descriptions/component-cpis/registry-api.thrift @@ -0,0 +1,2072 @@ +/* + * 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. + * + */ + +/* + * Component Programming Interface definition for Apache Airavata Registry Service. + * +*/ + +include "../data-models/airavata_data_models.thrift" +include "../data-models/experiment-catalog-models/status_models.thrift" +include "../data-models/experiment-catalog-models/job_model.thrift" +include "../data-models/experiment-catalog-models/experiment_model.thrift" +include "../data-models/experiment-catalog-models/workspace_model.thrift" +include "../data-models/experiment-catalog-models/scheduling_model.thrift" +include "../data-models/app-catalog-models/application_io_models.thrift" +include "../data-models/app-catalog-models/application_deployment_model.thrift" +include "../data-models/app-catalog-models/application_interface_model.thrift" +include "../data-models/resource-catalog-models/compute_resource_model.thrift" +include "../data-models/resource-catalog-models/storage_resource_model.thrift" +include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift" +include "../data-models/resource-catalog-models/data_movement_models.thrift" +include "../data-models/workflow-models/workflow_data_model.thrift" +include "../data-models/replica-catalog-models/replica_catalog_models.thrift" + +include "registry_api_errors.thrift" + +namespace java org.apache.airavata.registry.api + +const string REGISTRY_API_VERSION = "0.17.0" + +service RegistryService { + /** + * Fetch Apache Registry API version + **/ + string getAPIVersion() + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Verify if User Exists within Airavata. + * + * @param gatewayId + * + * @param userName + * + * @return true/false + * + **/ + bool isUserExists (1: required string gatewayId, + 2: required string userName) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Register a Gateway with Airavata. + * + * @param gateway + * The gateway data model. + * + * @return gatewayId + * Th unique identifier of the newly registered gateway. + * + **/ + string addGateway(1: required workspace_model.Gateway gateway) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * Get all users in the gateway + * + * @param gatewayId + * The gateway data model. + * + * @return users + * list of usernames of the users in the gateway + * + **/ + list<string> getAllUsersInGateway(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Update previously registered Gateway metadata. + * + * @param gatewayId + * The gateway Id of the Gateway which require an update. + * + * @return gateway + * Modified gateway obejct. + * + * @exception AiravataClientException + * + **/ + + bool updateGateway(1: required string gatewayId, 2: required workspace_model.Gateway updatedGateway) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Get Gateway details by providing gatewayId + * + * @param gatewayId + * The gateway Id of the Gateway. + * + * @return gateway + * Gateway obejct. + * + **/ + + workspace_model.Gateway getGateway(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + **/ + + bool deleteGateway(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Get All the Gateways Connected to Airavata. + **/ + + list<workspace_model.Gateway> getAllGateways() + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + **/ + bool isGatewayExist(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * API methods to retrieve notifications + **/ + string createNotification(1: required workspace_model.Notification notification) + throws (1: registry_api_errors.RegistryServiceException rse) + + bool updateNotification(1: required workspace_model.Notification notification) + throws (1: registry_api_errors.RegistryServiceException rse) + + + bool deleteNotification(1: required string gatewayId, 2: required string notificationId) + throws (1: registry_api_errors.RegistryServiceException rse) + + workspace_model.Notification getNotification(1: required string gatewayId, 2: required string notificationId) + throws (1: registry_api_errors.RegistryServiceException rse) + + list<workspace_model.Notification> getAllNotifications(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + string createProject (1: required string gatewayId, + 2: required workspace_model.Project project) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Update an Existing Project + * + * @param projectId + * The projectId of the project needed an update. + * + * @return void + * Currently this does not return any value. + * + **/ + void updateProject (1: required string projectId, + 2: required workspace_model.Project updatedProject) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + workspace_model.Project getProject (1: required string projectId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + bool deleteProject (1: required string projectId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + list<workspace_model.Project> getUserProjects(1: required string gatewayId, + 2: required string userName, + 3: required i32 limit, + 4: required i32 offset) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + list<workspace_model.Project> searchProjects( + 1: required string gatewayId, + 2: required string userName, + 3: map<experiment_model.ProjectSearchFields, string> filters, + 4: required i32 limit, + 5: required i32 offset) + throws (1: registry_api_errors.RegistryServiceException rse) + + + + /** + * 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. + * + **/ + + list<experiment_model.ExperimentSummaryModel> searchExperiments(1: required string gatewayId, + 2: required string userName, + 3: map<experiment_model.ExperimentSearchFields, string> filters, + 4: required i32 limit, + 5: required i32 offset) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + experiment_model.ExperimentStatistics getExperimentStatistics(1: required string gatewayId, + 2: required i64 fromTime, + 3: required i64 toTime) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + list<experiment_model.ExperimentModel> getExperimentsInProject(1: required string projectId, + 2: required i32 limit, + 3: required i32 offset) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + list<experiment_model.ExperimentModel> getUserExperiments(1: required string gatewayId, + 2: required string userName, + 3: required i32 limit, + 4: required i32 offset) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + string createExperiment(1: required string gatewayId, + 2: required experiment_model.ExperimentModel experiment) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + bool deleteExperiment(1: required string experimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + experiment_model.ExperimentModel getExperiment(1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + */ + experiment_model.ExperimentModel getDetailedExperimentTree(1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + */ + void updateExperiment(1: required string airavataExperimentId, + 2: required experiment_model.ExperimentModel experiment) + throws (1: registry_api_errors.RegistryServiceException rse) + + void updateExperimentConfiguration(1: required string airavataExperimentId, + 2: required experiment_model.UserConfigurationDataModel userConfiguration) + throws (1: registry_api_errors.RegistryServiceException rse) + + void updateResourceScheduleing(1: required string airavataExperimentId, + 2: required scheduling_model.ComputationalResourceSchedulingModel resourceScheduling) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + status_models.ExperimentStatus getExperimentStatus(1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + list<application_io_models.OutputDataObjectType> getExperimentOutputs (1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + list<application_io_models.OutputDataObjectType> getIntermediateOutputs (1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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 + * + **/ + map<string, status_models.JobStatus> getJobStatuses(1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + list<job_model.JobModel> getJobDetails(1: required string airavataExperimentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /* + * + * API definitions for App Catalog related operations + * + */ + + /** + * + * 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. + * + */ + string registerApplicationModule(1: required string gatewayId, + 2: required application_deployment_model.ApplicationModule applicationModule) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch a Application Module. + * + * @param appModuleId + * The unique identifier of the application module required + * + * @return applicationModule + * Returns an Application Module Object. + * + */ + application_deployment_model.ApplicationModule getApplicationModule(1: required string appModuleId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool updateApplicationModule(1: required string appModuleId, + 2: required application_deployment_model.ApplicationModule applicationModule) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + list<application_deployment_model.ApplicationModule> getAllAppModules (1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Delete an Application Module. + * + * @param appModuleId + * The identifier of the Application Module to be deleted. + * + * @return status + * Returns a success/failure of the deletion. + * + */ + bool deleteApplicationModule(1: required string appModuleId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /* + * + * Application Deployment + * Registers a deployment of an Application Module on a Compute Resource. + * + */ + + /** + * + * 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. + * + */ + string registerApplicationDeployment(1: required string gatewayId, + 2: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch a Application Deployment. + * + * @param appDeploymentId + * The identifier for the requested application module + * + * @return applicationDeployment + * Returns a application Deployment Object. + * + */ + application_deployment_model.ApplicationDeploymentDescription getApplicationDeployment(1: required string appDeploymentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool updateApplicationDeployment(1: required string appDeploymentId, + 2: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Delete an Application Deployment. + * + * @param appDeploymentId + * The unique identifier of application deployment to be deleted. + * + * @return status + * Returns a success/failure of the deletion. + * + */ + bool deleteApplicationDeployment(1: required string appDeploymentId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + list<application_deployment_model.ApplicationDeploymentDescription> getAllApplicationDeployments(1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + list<string> getAppModuleDeployedResources(1: required string appModuleId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /* + * + * Application Interface + * + */ + + /** + * + * 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. + * + */ + string registerApplicationInterface(1: required string gatewayId, + 2: required application_interface_model.ApplicationInterfaceDescription applicationInterface) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * Fetch an Application Interface. + * + * @param appInterfaceId + * The identifier for the requested application interface. + * + * @return applicationInterface + * Returns an application Interface Object. + * + */ + application_interface_model.ApplicationInterfaceDescription getApplicationInterface(1: required string appInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool updateApplicationInterface(1: required string appInterfaceId, + 2: required application_interface_model.ApplicationInterfaceDescription applicationInterface) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool deleteApplicationInterface(1: required string appInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch name and ID of Application Interface documents. + * + * + * @return map<applicationId, applicationInterfaceNames> + * Returns a list of application interfaces with corresponsing ID's + * + */ + map<string, string> getAllApplicationInterfaceNames (1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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). + * + */ + list<application_interface_model.ApplicationInterfaceDescription> getAllApplicationInterfaces (1: required string gatewayId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + list<application_io_models.InputDataObjectType> getApplicationInputs(1: required string appInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + list<application_io_models.OutputDataObjectType> getApplicationOutputs(1: required string appInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + map<string, string> getAvailableAppInterfaceComputeResources(1: required string appInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + + /* + * + * Compute Resource + * + */ + /** + * 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. + * + */ + string registerComputeResource(1: required compute_resource_model.ComputeResourceDescription computeResourceDescription) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Fetch the given Compute Resource. + * + * @param computeResourceId + * The identifier for the requested compute resource + * + * @return computeResourceDescription + * Compute Resource Object created from the datamodel.. + * + */ + compute_resource_model.ComputeResourceDescription getComputeResource(1: required string computeResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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.. + * + */ + map<string, string> getAllComputeResourceNames() + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + bool updateComputeResource(1: required string computeResourceId, + 2: required compute_resource_model.ComputeResourceDescription computeResourceDescription) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + bool deleteComputeResource(1: required string computeResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /* + * + * Storage Resource + * + */ + + /** + * 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. + * + */ + + string registerStorageResource(1: required storage_resource_model.StorageResourceDescription storageResourceDescription) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Fetch the given Storage Resource. + * + * @param storageResourceId + * The identifier for the requested storage resource + * + * @return storageResourceDescription + * Storage Resource Object created from the datamodel.. + * + */ + + storage_resource_model.StorageResourceDescription getStorageResource(1: required string storageResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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.. + * + */ + + map<string, string> getAllStorageResourceNames() + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + bool updateStorageResource(1: required string storageResourceId, + 2: required storage_resource_model.StorageResourceDescription storageResourceDescription) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + bool deleteStorageResource(1: required string storageResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + string addLocalSubmissionDetails(1: required string computeResourceId, + 2: required i32 priorityOrder, + 3: required compute_resource_model.LOCALSubmission localSubmission) + + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + bool updateLocalSubmissionDetails(1: required string jobSubmissionInterfaceId, + 2: required compute_resource_model.LOCALSubmission localSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * This method returns localJobSubmission object + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be retrieved. + * @return LOCALSubmission instance + **/ + + compute_resource_model.LOCALSubmission getLocalJobSubmission(1: required string jobSubmissionId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + + /** + * 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. + * + */ + + string addSSHJobSubmissionDetails(1: required string computeResourceId, + 2: required i32 priorityOrder, + 3: required compute_resource_model.SSHJobSubmission sshJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + */ + + + string addSSHForkJobSubmissionDetails(1: required string computeResourceId, + 2: required i32 priorityOrder, + 3: required compute_resource_model.SSHJobSubmission sshJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * This method returns SSHJobSubmission object + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be retrieved. + * @return SSHJobSubmission instance + **/ + + compute_resource_model.SSHJobSubmission getSSHJobSubmission(1: required string jobSubmissionId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + + /** + * + * 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. + * + */ + string addUNICOREJobSubmissionDetails(1: required string computeResourceId, + 2: required i32 priorityOrder, + 3: required compute_resource_model.UnicoreJobSubmission unicoreJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * This method returns UnicoreJobSubmission object + * + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be retrieved. + * @return UnicoreJobSubmission instance + * + **/ + compute_resource_model.UnicoreJobSubmission getUnicoreJobSubmission(1: required string jobSubmissionId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + **/ + string addCloudJobSubmissionDetails(1: required string computeResourceId, + 2: required i32 priorityOrder, + 3: required compute_resource_model.CloudJobSubmission cloudSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * This method returns cloudJobSubmission object + * @param jobSubmissionInterfaceI + * The identifier of the JobSubmission Interface to be retrieved. + * @return CloudJobSubmission instance + **/ + compute_resource_model.CloudJobSubmission getCloudJobSubmission(1: required string jobSubmissionId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool updateSSHJobSubmissionDetails(1: required string jobSubmissionInterfaceId, + 2: required compute_resource_model.SSHJobSubmission sshJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + bool updateCloudJobSubmissionDetails(1: required string jobSubmissionInterfaceId, + 2: required compute_resource_model.CloudJobSubmission sshJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + bool updateUnicoreJobSubmissionDetails(1: required string jobSubmissionInterfaceId, + 2: required compute_resource_model.UnicoreJobSubmission unicoreJobSubmission) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + string addLocalDataMovementDetails(1: required string productUri, + 2: required data_movement_models.DMType dataMoveType, + 3: required i32 priorityOrder, + 4: required data_movement_models.LOCALDataMovement localDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + bool updateLocalDataMovementDetails(1: required string dataMovementInterfaceId, + 2: required data_movement_models.LOCALDataMovement localDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * This method returns local datamovement object. + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return LOCALDataMovement instance + * + **/ + data_movement_models.LOCALDataMovement getLocalDataMovement(1: required string dataMovementId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + string addSCPDataMovementDetails(1: required string productUri, + 2: required data_movement_models.DMType dataMoveType, + 3: required i32 priorityOrder, + 4: required data_movement_models.SCPDataMovement scpDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * + * 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. + * + */ + bool updateSCPDataMovementDetails(1: required string dataMovementInterfaceId, + 2: required data_movement_models.SCPDataMovement scpDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * This method returns SCP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return SCPDataMovement instance + * + **/ + data_movement_models.SCPDataMovement getSCPDataMovement(1: required string dataMovementId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + */ + string addUnicoreDataMovementDetails(1: required string productUri, + 2: required data_movement_models.DMType dataMoveType, + 3: required i32 priorityOrder, + 4: required data_movement_models.UnicoreDataMovement unicoreDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + + bool updateUnicoreDataMovementDetails(1: required string dataMovementInterfaceId, + 2: required data_movement_models.UnicoreDataMovement unicoreDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * This method returns UNICORE datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return UnicoreDataMovement instance + * + **/ + + data_movement_models.UnicoreDataMovement getUnicoreDataMovement(1: required string dataMovementId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * 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. + * + **/ + + string addGridFTPDataMovementDetails(1: required string productUri, + 2: required data_movement_models.DMType dataMoveType, + 3: required i32 priorityOrder, + 4: required data_movement_models.GridFTPDataMovement gridFTPDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * 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. + * + **/ + + bool updateGridFTPDataMovementDetails(1: required string dataMovementInterfaceId, + 2: required data_movement_models.GridFTPDataMovement gridFTPDataMovement) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * This method returns GridFTP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return GridFTPDataMovement instance + * + **/ + + data_movement_models.GridFTPDataMovement getGridFTPDataMovement(1: required string dataMovementId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * Change the priority of a given job submisison interface + * + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be changed + * + * @param priorityOrder + * The new priority of the job manager interface. + * + * @return status + * Returns a success/failure of the change. + * + **/ + + bool changeJobSubmissionPriority(1: required string jobSubmissionInterfaceId, + 2: required i32 newPriorityOrder) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Change the priority of a given data movement interface + * + * @param dataMovementInterfaceId + * The identifier of the DataMovement Interface to be changed + * + * @param priorityOrder + * The new priority of the data movement interface. + * + * @return status + * Returns a success/failure of the change. + * + **/ + + bool changeDataMovementPriority(1: required string dataMovementInterfaceId, + 2: required i32 newPriorityOrder) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Change the priorities of a given set of job submission interfaces + * + * @param jobSubmissionPriorityMap + * A Map of identifiers of the JobSubmission Interfaces and thier associated priorities to be set. + * + * @return status + * Returns a success/failure of the changes. + * + */ + + bool changeJobSubmissionPriorities(1: required map<string, i32> jobSubmissionPriorityMap) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Change the priorities of a given set of data movement interfaces + * + * @param dataMovementPriorityMap + * A Map of identifiers of the DataMovement Interfaces and thier associated priorities to be set. + * + * @return status + * Returns a success/failure of the changes. + * + **/ + + bool changeDataMovementPriorities(1: required map<string, i32> dataMovementPriorityMap) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete a given job submisison interface + * + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be changed + * + * @return status + * Returns a success/failure of the deletion. + * + **/ + + bool deleteJobSubmissionInterface(1: required string computeResourceId, + 2: required string jobSubmissionInterfaceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete a given data movement interface + * + * @param dataMovementInterfaceId + * The identifier of the DataMovement Interface to be changed + * + * @return status + * Returns a success/failure of the deletion. + * + **/ + + bool deleteDataMovementInterface(1: required string productUri, + 2: required string dataMovementInterfaceId, + 3: required data_movement_models.DMType dataMoveType,) + throws (1: registry_api_errors.RegistryServiceException rse) + + string registerResourceJobManager(1: required compute_resource_model.ResourceJobManager resourceJobManager) + throws (1: registry_api_errors.RegistryServiceException rse) + + bool updateResourceJobManager(1: required string resourceJobManagerId, + 2: required compute_resource_model.ResourceJobManager updatedResourceJobManager) + throws (1: registry_api_errors.RegistryServiceException rse) + + compute_resource_model.ResourceJobManager getResourceJobManager(1: required string resourceJobManagerId) + throws (1: registry_api_errors.RegistryServiceException rse) + + bool deleteResourceJobManager(1: required string resourceJobManagerId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete a Compute Resource Queue + * + * @param computeResourceId + * The identifier of the compute resource which has the queue to be deleted + * + * @param queueName + * Name of the queue need to be deleted. Name is the uniqueue identifier for the queue within a compute resource + * + * @return status + * Returns a success/failure of the deletion. + * + **/ + + bool deleteBatchQueue(1: required string computeResourceId, 2: required string queueName) + throws (1: registry_api_errors.RegistryServiceException rse) + /* + * Gateway Resource Profile + * + */ + + /** + * Register a Gateway Resource Profile. + * + * @param gatewayResourceProfile + * Gateway Resource Profile Object. + * The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding + * resource profile. + * + * @return status + * Returns a success/failure of the update. + * + */ + string registerGatewayResourceProfile(1: required gateway_resource_profile_model.GatewayResourceProfile gatewayResourceProfile) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Fetch the given Gateway Resource Profile. + * + * @param gatewayID + * The identifier for the requested gateway resource. + * + * @return gatewayResourceProfile + * Gateway Resource Profile Object. + * + */ + + gateway_resource_profile_model.GatewayResourceProfile getGatewayResourceProfile(1: required string gatewayID) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Update a Gateway Resource Profile. + * + * @param gatewayID + * The identifier for the requested gateway resource to be updated. + * + * @param gatewayResourceProfile + * Gateway Resource Profile Object. + * + * @return status + * Returns a success/failure of the update. + * + */ + + bool updateGatewayResourceProfile(1: required string gatewayID, + 2: required gateway_resource_profile_model.GatewayResourceProfile gatewayResourceProfile) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete the given Gateway Resource Profile. + * + * @param gatewayID + * The identifier for the requested gateway resource to be deleted. + * + * @return status + * Returns a success/failure of the deletion. + * + */ + + bool deleteGatewayResourceProfile(1: required string gatewayID) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Add a Compute Resource Preference to a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be added. + * + * @param computeResourceId + * Preferences related to a particular compute resource + * + * @param computeResourcePreference + * The ComputeResourcePreference object to be added to the resource profile. + * + * @return status + * Returns a success/failure of the addition. If a profile already exists, this operation will fail. + * Instead an update should be used. + * + */ + bool addGatewayComputeResourcePreference(1: required string gatewayID, + 2: required string computeResourceId, + 3: required gateway_resource_profile_model.ComputeResourcePreference computeResourcePreference) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Add a Storage Resource Preference to a registered gateway profile. + * + * @param gatewayID + * The identifier of the gateway profile to be added. + * + * @param storageResourceId + * Preferences related to a particular compute resource + * + * @param computeResourcePreference + * The ComputeResourcePreference object to be added to the resource profile. + * + * @return status + * Returns a success/failure of the addition. If a profile already exists, this operation will fail. + * Instead an update should be used. + * + */ + bool addGatewayStoragePreference(1: required string gatewayID, + 2: required string storageResourceId, + 3: required gateway_resource_profile_model.StoragePreference storagePreference) + throws (1: registry_api_errors.RegistryServiceException rse) + /** + * + * Fetch a Compute Resource Preference of a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be requested + * + * @param computeResourceId + * Preferences related to a particular compute resource + * + * @return computeResourcePreference + * Returns the ComputeResourcePreference object. + * + */ + gateway_resource_profile_model.ComputeResourcePreference getGatewayComputeResourcePreference(1: required string gatewayID, + 2: required string computeResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch a Storage Resource Preference of a registered gateway profile. + * + * @param gatewayID + * The identifier of the gateway profile to request to fetch the particular storage resource preference. + * + * @param storageResourceId + * Identifier of the Stprage Preference required to be fetched. + * + * @return StoragePreference + * Returns the StoragePreference object. + * + */ + gateway_resource_profile_model.StoragePreference getGatewayStoragePreference(1: required string gatewayID, + 2: required string storageResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch all Compute Resource Preferences of a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be requested + * + * @return computeResourcePreference + * Returns the ComputeResourcePreference object. + * + */ + list<gateway_resource_profile_model.ComputeResourcePreference> + getAllGatewayComputeResourcePreferences(1: required string gatewayID) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Fetch all Storage Resource Preferences of a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be requested + * + * @return StoragePreference + * Returns the StoragePreference object. + * + */ + + list<gateway_resource_profile_model.StoragePreference> + getAllGatewayStoragePreferences(1: required string gatewayID) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * + * Fetch all Gateway Profiles registered + * + * @return GatewayResourceProfile + * Returns all the GatewayResourcePrifle list object. + * + **/ + list<gateway_resource_profile_model.GatewayResourceProfile> + getAllGatewayResourceProfiles() + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Update a Compute Resource Preference to a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be updated. + * + * @param computeResourceId + * Preferences related to a particular compute resource + * + * @param computeResourcePreference + * The ComputeResourcePreference object to be updated to the resource profile. + * + * @return status + * Returns a success/failure of the updation. + * + */ + bool updateGatewayComputeResourcePreference(1: required string gatewayID, + 2: required string computeResourceId, + 3: required gateway_resource_profile_model.ComputeResourcePreference computeResourcePreference) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Update a Storage Resource Preference of a registered gateway profile. + * + * @param gatewayID + * The identifier of the gateway profile to be updated. + * + * @param storageId + * The Storage resource identifier of the one that you want to update + * + * @param storagePreference + * The storagePreference object to be updated to the resource profile. + * + * @return status + * Returns a success/failure of the updation. + * + */ + + bool updateGatewayStoragePreference(1: required string gatewayID, + 2: required string storageId, + 3: required gateway_resource_profile_model.StoragePreference storagePreference) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete the Compute Resource Preference of a registered gateway profile. + * + * @param gatewayID + * The identifier for the gateway profile to be deleted. + * + * @param computeResourceId + * Preferences related to a particular compute resource + * + * @return status + * Returns a success/failure of the deletion. + * + */ + bool deleteGatewayComputeResourcePreference(1: required string gatewayID, + 2: required string computeResourceId) + throws (1: registry_api_errors.RegistryServiceException rse) + + + /** + * Delete the Storage Resource Preference of a registered gateway profile. + * + * @param gatewayID + * The identifier of the gateway profile to be deleted. + * + * @param storageId + * ID of the storage preference you want to delete. + * + * @return status + * Returns a success/failure of the deletion. + * + */ + + bool deleteGatewayStoragePreference(1: required string gatewayID, + 2: required string storageId) + throws (1: registry_api_errors.RegistryServiceException rse) + + /** + * Delete the Storage Resource Preference of a registered gateway profile. + * + * @
<TRUNCATED>
