You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/08/08 18:14:21 UTC

[4/7] airavata git commit: adding registry server module

http://git-wip-us.apache.org/repos/asf/airavata/blob/2d9fd253/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
new file mode 100644
index 0000000..22e29d1
--- /dev/null
+++ b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
@@ -0,0 +1,136899 @@
+    /*
+     * 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
+ */
+package org.apache.airavata.registry.api;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-08-08")
+public class RegistryService {
+
+  public interface Iface {
+
+    /**
+     * Fetch Apache Registry API version
+     * 
+     */
+    public String getAPIVersion() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Verify if User Exists within Airavata.
+     * 
+     * @param gatewayId
+     * 
+     *  @param userName
+     * 
+     * @return true/false
+     * 
+     * 
+     * 
+     * @param gatewayId
+     * @param userName
+     */
+    public boolean isUserExists(String gatewayId, String userName) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Register a Gateway with Airavata.
+     * 
+     * @param gateway
+     *    The gateway data model.
+     * 
+     * @return gatewayId
+     *   Th unique identifier of the  newly registered gateway.
+     * 
+     * 
+     * 
+     * @param gateway
+     */
+    public String addGateway(org.apache.airavata.model.workspace.Gateway gateway) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Get all users in the gateway
+     * 
+     * @param gatewayId
+     *    The gateway data model.
+     * 
+     * @return users
+     *   list of usernames of the users in the gateway
+     * 
+     * 
+     * 
+     * @param gatewayId
+     */
+    public List<String> getAllUsersInGateway(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 gatewayId
+     * @param updatedGateway
+     */
+    public boolean updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Get Gateway details by providing gatewayId
+     * 
+     * @param gatewayId
+     *    The gateway Id of the Gateway.
+     * 
+     * @return gateway
+     *    Gateway obejct.
+     * 
+     * 
+     * 
+     * @param gatewayId
+     */
+    public org.apache.airavata.model.workspace.Gateway getGateway(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 gatewayId
+     */
+    public boolean deleteGateway(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Get All the Gateways Connected to Airavata.
+     * 
+     */
+    public List<org.apache.airavata.model.workspace.Gateway> getAllGateways() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 gatewayId
+     */
+    public boolean isGatewayExist(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *   * API methods to retrieve notifications
+     * *
+     * 
+     * @param notification
+     */
+    public String createNotification(org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean updateNotification(org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean deleteNotification(String gatewayId, String notificationId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.workspace.Notification getNotification(String gatewayId, String notificationId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public List<org.apache.airavata.model.workspace.Notification> getAllNotifications(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Creates a Project with basic metadata.
+     *    A Project is a container of experiments.
+     * 
+     * @param gatewayId
+     *    The identifier for the requested gateway.
+     * 
+     * @param Project
+     *    The Project Object described in the workspace_model.
+     * 
+     * 
+     * 
+     * @param gatewayId
+     * @param project
+     */
+    public String createProject(String gatewayId, org.apache.airavata.model.workspace.Project project) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Update an Existing Project
+     * 
+     * @param projectId
+     *    The projectId of the project needed an update.
+     * 
+     * @return void
+     *    Currently this does not return any value.
+     * 
+     * 
+     * 
+     * @param projectId
+     * @param updatedProject
+     */
+    public void updateProject(String projectId, org.apache.airavata.model.workspace.Project updatedProject) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 projectId
+     */
+    public org.apache.airavata.model.workspace.Project getProject(String projectId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 projectId
+     */
+    public boolean deleteProject(String projectId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param userName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.Project> getUserProjects(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param userName
+     * @param filters
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.Project> searchProjects(String gatewayId, String userName, Map<org.apache.airavata.model.experiment.ProjectSearchFields,String> filters, int limit, int offset) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 gatewayId
+     * @param userName
+     * @param filters
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.experiment.ExperimentSummaryModel> searchExperiments(String gatewayId, String userName, Map<org.apache.airavata.model.experiment.ExperimentSearchFields,String> filters, int limit, int offset) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param fromTime
+     * @param toTime
+     */
+    public org.apache.airavata.model.experiment.ExperimentStatistics getExperimentStatistics(String gatewayId, long fromTime, long toTime) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 projectId
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.experiment.ExperimentModel> getExperimentsInProject(String projectId, int limit, int offset) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param userName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.experiment.ExperimentModel> getUserExperiments(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *   *
+     *   * 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 gatewayId
+     * @param experiment
+     */
+    public String createExperiment(String gatewayId, org.apache.airavata.model.experiment.ExperimentModel experiment) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 experimentId
+     */
+    public boolean deleteExperiment(String experimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *   *
+     *   * 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 airavataExperimentId
+     */
+    public org.apache.airavata.model.experiment.ExperimentModel getExperiment(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public org.apache.airavata.model.experiment.ExperimentModel getDetailedExperimentTree(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     * @param experiment
+     */
+    public void updateExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ExperimentModel experiment) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void updateExperimentConfiguration(String airavataExperimentId, org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void updateResourceScheduleing(String airavataExperimentId, org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel resourceScheduling) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public org.apache.airavata.model.status.ExperimentStatus getExperimentStatus(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public List<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputs(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public List<org.apache.airavata.model.application.io.OutputDataObjectType> getIntermediateOutputs(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public Map<String,org.apache.airavata.model.status.JobStatus> getJobStatuses(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 airavataExperimentId
+     */
+    public List<org.apache.airavata.model.job.JobModel> getJobDetails(String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param applicationModule
+     */
+    public String registerApplicationModule(String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a Application Module.
+     * 
+     * @param appModuleId
+     *   The unique identifier of the application module required
+     * 
+     * @return applicationModule
+     *   Returns an Application Module Object.
+     * 
+     * 
+     * @param appModuleId
+     */
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getApplicationModule(String appModuleId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Update a Application Module.
+     * 
+     * @param appModuleId
+     *   The identifier for the requested application module to be updated.
+     * 
+     * @param applicationModule
+     *    Application Module Object created from the datamodel.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param appModuleId
+     * @param applicationModule
+     */
+    public boolean updateApplicationModule(String appModuleId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     */
+    public List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getAllAppModules(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appModuleId
+     */
+    public boolean deleteApplicationModule(String appModuleId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param applicationDeployment
+     */
+    public String registerApplicationDeployment(String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a Application Deployment.
+     * 
+     * @param appDeploymentId
+     *   The identifier for the requested application module
+     * 
+     * @return applicationDeployment
+     *   Returns a application Deployment Object.
+     * 
+     * 
+     * @param appDeploymentId
+     */
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription getApplicationDeployment(String appDeploymentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appDeploymentId
+     * @param applicationDeployment
+     */
+    public boolean updateApplicationDeployment(String appDeploymentId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appDeploymentId
+     */
+    public boolean deleteApplicationDeployment(String appDeploymentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     */
+    public List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> getAllApplicationDeployments(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch a list of Deployed Compute Hosts.
+     * 
+     * @param appModuleId
+     *   The identifier for the requested application module
+     * 
+     * @return list<string>
+     *   Returns a list of Deployed Resources.
+     * 
+     * 
+     * @param appModuleId
+     */
+    public List<String> getAppModuleDeployedResources(String appModuleId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     * @param applicationInterface
+     */
+    public String registerApplicationInterface(String gatewayId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch an Application Interface.
+     * 
+     * @param appInterfaceId
+     *   The identifier for the requested application interface.
+     * 
+     * @return applicationInterface
+     *   Returns an application Interface Object.
+     * 
+     * 
+     * @param appInterfaceId
+     */
+    public org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription getApplicationInterface(String appInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appInterfaceId
+     * @param applicationInterface
+     */
+    public boolean updateApplicationInterface(String appInterfaceId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appInterfaceId
+     */
+    public boolean deleteApplicationInterface(String appInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch name and ID of  Application Interface documents.
+     * 
+     * 
+     * @return map<applicationId, applicationInterfaceNames>
+     *   Returns a list of application interfaces with corresponsing ID's
+     * 
+     * 
+     * @param gatewayId
+     */
+    public Map<String,String> getAllApplicationInterfaceNames(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 gatewayId
+     */
+    public List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> getAllApplicationInterfaces(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appInterfaceId
+     */
+    public List<org.apache.airavata.model.application.io.InputDataObjectType> getApplicationInputs(String appInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 appInterfaceId
+     */
+    public List<org.apache.airavata.model.application.io.OutputDataObjectType> getApplicationOutputs(String appInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+     * 
+     * @param appInterfaceId
+     *   The identifier for the requested application interface.
+     * 
+     * @return map<computeResourceId, computeResourceName>
+     *   A map of registered compute resource id's and their corresponding hostnames.
+     *   Deployments of each modules listed within the interfaces will be listed.
+     * 
+     * 
+     * @param appInterfaceId
+     */
+    public Map<String,String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Register a Compute Resource.
+     * 
+     * @param computeResourceDescription
+     *    Compute Resource Object created from the datamodel.
+     * 
+     * @return computeResourceId
+     *   Returns a server-side generated airavata compute resource globally unique identifier.
+     * 
+     * 
+     * @param computeResourceDescription
+     */
+    public String registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch the given Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource
+     * 
+     * @return computeResourceDescription
+     *    Compute Resource Object created from the datamodel..
+     * 
+     * 
+     * @param computeResourceId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResource(String computeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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..
+     * 
+     */
+    public Map<String,String> getAllComputeResourceNames() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource to be updated.
+     * 
+     * @param computeResourceDescription
+     *    Compute Resource Object created from the datamodel.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param computeResourceId
+     * @param computeResourceDescription
+     */
+    public boolean updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete a Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource to be deleted.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param computeResourceId
+     */
+    public boolean deleteComputeResource(String computeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 storageResourceDescription
+     */
+    public String registerStorageResource(org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch the given Storage Resource.
+     * 
+     * @param storageResourceId
+     *   The identifier for the requested storage resource
+     * 
+     * @return storageResourceDescription
+     *    Storage Resource Object created from the datamodel..
+     * 
+     * 
+     * @param storageResourceId
+     */
+    public org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription getStorageResource(String storageResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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..
+     * 
+     */
+    public Map<String,String> getAllStorageResourceNames() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 storageResourceId
+     * @param storageResourceDescription
+     */
+    public boolean updateStorageResource(String storageResourceId, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 storageResourceId
+     */
+    public boolean deleteStorageResource(String storageResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Add a Local Job Submission details to a compute resource
+     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+     * 
+     * @param computeResourceId
+     *   The identifier of the compute resource to which JobSubmission protocol to be added
+     * 
+     * @param priorityOrder
+     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+     * 
+     * @param localSubmission
+     *   The LOCALSubmission object to be added to the resource.
+     * 
+     * @return status
+     *   Returns the unique job submission id.
+     * 
+     * 
+     * @param computeResourceId
+     * @param priorityOrder
+     * @param localSubmission
+     */
+    public String addLocalSubmissionDetails(String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update the given Local Job Submission details
+     * 
+     * @param jobSubmissionInterfaceId
+     *   The identifier of the JobSubmission Interface to be updated.
+     * 
+     * @param localSubmission
+     *   The LOCALSubmission object to be updated.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param jobSubmissionInterfaceId
+     * @param localSubmission
+     */
+    public boolean updateLocalSubmissionDetails(String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * This method returns localJobSubmission object
+     * @param jobSubmissionInterfaceId
+     *   The identifier of the JobSubmission Interface to be retrieved.
+     *  @return LOCALSubmission instance
+     * 
+     * 
+     * @param jobSubmissionId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission getLocalJobSubmission(String jobSubmissionId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Add a SSH Job Submission details to a compute resource
+     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+     * 
+     * @param computeResourceId
+     *   The identifier of the compute resource to which JobSubmission protocol to be added
+     * 
+     * @param priorityOrder
+     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+     * 
+     * @param sshJobSubmission
+     *   The SSHJobSubmission object to be added to the resource.
+     * 
+     * @return status
+     *   Returns the unique job submission id.
+     * 
+     * 
+     * @param computeResourceId
+     * @param priorityOrder
+     * @param sshJobSubmission
+     */
+    public String addSSHJobSubmissionDetails(String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 computeResourceId
+     * @param priorityOrder
+     * @param sshJobSubmission
+     */
+    public String addSSHForkJobSubmissionDetails(String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * This method returns SSHJobSubmission object
+     * @param jobSubmissionInterfaceId
+     *   The identifier of the JobSubmission Interface to be retrieved.
+     *  @return SSHJobSubmission instance
+     * 
+     * 
+     * @param jobSubmissionId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission getSSHJobSubmission(String jobSubmissionId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Add a UNICORE Job Submission details to a compute resource
+     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+     * 
+     * @param computeResourceId
+     *   The identifier of the compute resource to which JobSubmission protocol to be added
+     * 
+     * @param priorityOrder
+     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+     * 
+     * @param unicoreJobSubmission
+     *   The UnicoreJobSubmission object to be added to the resource.
+     * 
+     * @return status
+     *  Returns the unique job submission id.
+     * 
+     * 
+     * @param computeResourceId
+     * @param priorityOrder
+     * @param unicoreJobSubmission
+     */
+    public String addUNICOREJobSubmissionDetails(String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *   *
+     *   * This method returns UnicoreJobSubmission object
+     *   *
+     *   * @param jobSubmissionInterfaceId
+     *   *   The identifier of the JobSubmission Interface to be retrieved.
+     *   *  @return UnicoreJobSubmission instance
+     *   *
+     * *
+     * 
+     * @param jobSubmissionId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission getUnicoreJobSubmission(String jobSubmissionId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *    *
+     *    * Add a Cloud Job Submission details to a compute resource
+     *    *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+     *    *
+     *    * @param computeResourceId
+     *    *   The identifier of the compute resource to which JobSubmission protocol to be added
+     *    *
+     *    * @param priorityOrder
+     *    *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+     *    *
+     *    * @param sshJobSubmission
+     *    *   The SSHJobSubmission object to be added to the resource.
+     *    *
+     *    * @return status
+     *    *   Returns the unique job submission id.
+     *    *
+     * *
+     * 
+     * @param computeResourceId
+     * @param priorityOrder
+     * @param cloudSubmission
+     */
+    public String addCloudJobSubmissionDetails(String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission cloudSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     *    *
+     *    * This method returns cloudJobSubmission object
+     *    * @param jobSubmissionInterfaceI
+     *        *   The identifier of the JobSubmission Interface to be retrieved.
+     *    *  @return CloudJobSubmission instance
+     * *
+     * 
+     * @param jobSubmissionId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission getCloudJobSubmission(String jobSubmissionId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 jobSubmissionInterfaceId
+     * @param sshJobSubmission
+     */
+    public boolean updateSSHJobSubmissionDetails(String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 jobSubmissionInterfaceId
+     * @param sshJobSubmission
+     */
+    public boolean updateCloudJobSubmissionDetails(String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission sshJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 jobSubmissionInterfaceId
+     * @param unicoreJobSubmission
+     */
+    public boolean updateUnicoreJobSubmissionDetails(String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 productUri
+     * @param dataMoveType
+     * @param priorityOrder
+     * @param localDataMovement
+     */
+    public String addLocalDataMovementDetails(String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Update the given Local data movement details
+     * 
+     * @param dataMovementInterfaceId
+     *   The identifier of the data movement Interface to be updated.
+     * 
+     * @param localDataMovement
+     *   The LOCALDataMovement object to be updated.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * 
+     * @param dataMovementInterfaceId
+     * @param localDataMovement
+     */
+    public boolean updateLocalDataMovementDetails(String dataMovementInterfaceId, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * This method returns local datamovement object.
+     * 
+     * @param dataMovementId
+     *   The identifier of the datamovement Interface to be retrieved.
+     * 
+     *  @return LOCALDataMovement instance
+     * 
+     * 
+     * 
+     * @param dataMovementId
+     */
+    public org.apache.airavata.model.data.movement.LOCALDataMovement getLocalDataMovement(String dataMovementId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 productUri
+     * @param dataMoveType
+     * @param priorityOrder
+     * @param scpDataMovement
+     */
+    public String addSCPDataMovementDetails(String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Update the given scp data movement details
+     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+     * 
+     * @param dataMovementInterfaceId
+     *   The identifier of the data movement Interface to be updated.
+     * 
+     * @param scpDataMovement
+     *   The SCPDataMovement object to be updated.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param dataMovementInterfaceId
+     * @param scpDataMovement
+     */
+    public boolean updateSCPDataMovementDetails(String dataMovementInterfaceId, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * This method returns SCP datamovement object
+     * 
+     * @param dataMovementId
+     *   The identifier of the datamovement Interface to be retrieved.
+     * 
+     * @return SCPDataMovement instance
+     * 
+     * 
+     * 
+     * @param dataMovementId
+     */
+    public org.apache.airavata.model.data.movement.SCPDataMovement getSCPDataMovement(String dataMovementId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 productUri
+     * @param dataMoveType
+     * @param priorityOrder
+     * @param unicoreDataMovement
+     */
+    public String addUnicoreDataMovementDetails(String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 dataMovementInterfaceId
+     * @param unicoreDataMovement
+     */
+    public boolean updateUnicoreDataMovementDetails(String dataMovementInterfaceId, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * This method returns UNICORE datamovement object
+     * 
+     * @param dataMovementId
+     *   The identifier of the datamovement Interface to be retrieved.
+     * 
+     * @return UnicoreDataMovement instance
+     * 
+     * 
+     * 
+     * @param dataMovementId
+     */
+    public org.apache.airavata.model.data.movement.UnicoreDataMovement getUnicoreDataMovement(String dataMovementId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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 productUri
+     * @param dataMoveType
+     * @param priorityOrder
+     * @param gridFTPDataMovement
+     */
+    public String addGridFTPDataMovementDetails(String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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 dataMovementInterfaceId
+     * @param gridFTPDataMovement
+     */
+    public boolean updateGridFTPDataMovementDetails(String dataMovementInterfaceId, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * This method returns GridFTP datamovement object
+     * 
+     * @param dataMovementId
+     *   The identifier of the datamovement Interface to be retrieved.
+     * 
+     *  @return GridFTPDataMovement instance
+     * 
+     * 
+     * 
+     * @param dataMovementId
+     */
+    public org.apache.airavata.model.data.movement.GridFTPDataMovement getGridFTPDataMovement(String dataMovementId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Change the priority of a given job submisison interface
+     * 
+     * @param jobSubmissionInterfaceId
+     *   The identifier of the JobSubmission Interface to be changed
+     * 
+     * @param priorityOrder
+     *   The new priority of the job manager interface.
+     * 
+     * @return status
+     *   Returns a success/failure of the change.
+     * 
+     * 
+     * 
+     * @param jobSubmissionInterfaceId
+     * @param newPriorityOrder
+     */
+    public boolean changeJobSubmissionPriority(String jobSubmissionInterfaceId, int newPriorityOrder) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Change the priority of a given data movement interface
+     * 
+     * @param dataMovementInterfaceId
+     *   The identifier of the DataMovement Interface to be changed
+     * 
+     * @param priorityOrder
+     *   The new priority of the data movement interface.
+     * 
+     * @return status
+     *   Returns a success/failure of the change.
+     * 
+     * 
+     * 
+     * @param dataMovementInterfaceId
+     * @param newPriorityOrder
+     */
+    public boolean changeDataMovementPriority(String dataMovementInterfaceId, int newPriorityOrder) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Change the priorities of a given set of job submission interfaces
+     * 
+     * @param jobSubmissionPriorityMap
+     *   A Map of identifiers of the JobSubmission Interfaces and thier associated priorities to be set.
+     * 
+     * @return status
+     *   Returns a success/failure of the changes.
+     * 
+     * 
+     * @param jobSubmissionPriorityMap
+     */
+    public boolean changeJobSubmissionPriorities(Map<String,Integer> jobSubmissionPriorityMap) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Change the priorities of a given set of data movement interfaces
+     * 
+     * @param dataMovementPriorityMap
+     *   A Map of identifiers of the DataMovement Interfaces and thier associated priorities to be set.
+     * 
+     * @return status
+     *   Returns a success/failure of the changes.
+     * 
+     * 
+     * 
+     * @param dataMovementPriorityMap
+     */
+    public boolean changeDataMovementPriorities(Map<String,Integer> dataMovementPriorityMap) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete a given job submisison interface
+     * 
+     * @param jobSubmissionInterfaceId
+     *   The identifier of the JobSubmission Interface to be changed
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * 
+     * @param computeResourceId
+     * @param jobSubmissionInterfaceId
+     */
+    public boolean deleteJobSubmissionInterface(String computeResourceId, String jobSubmissionInterfaceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete a given data movement interface
+     * 
+     * @param dataMovementInterfaceId
+     *   The identifier of the DataMovement Interface to be changed
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * 
+     * @param productUri
+     * @param dataMovementInterfaceId
+     * @param dataMoveType
+     */
+    public boolean deleteDataMovementInterface(String productUri, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.DMType dataMoveType) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public String registerResourceJobManager(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager resourceJobManager) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean updateResourceJobManager(String resourceJobManagerId, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager updatedResourceJobManager) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager getResourceJobManager(String resourceJobManagerId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean deleteResourceJobManager(String resourceJobManagerId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * 
+     * @param computeResourceId
+     * @param queueName
+     */
+    public boolean deleteBatchQueue(String computeResourceId, String queueName) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Register a Gateway Resource Profile.
+     * 
+     * @param gatewayResourceProfile
+     *    Gateway Resource Profile Object.
+     *    The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+     *      resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param gatewayResourceProfile
+     */
+    public String registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch the given Gateway Resource Profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the requested gateway resource.
+     * 
+     * @return gatewayResourceProfile
+     *    Gateway Resource Profile Object.
+     * 
+     * 
+     * @param gatewayID
+     */
+    public org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile getGatewayResourceProfile(String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a Gateway Resource Profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the requested gateway resource to be updated.
+     * 
+     * @param gatewayResourceProfile
+     *    Gateway Resource Profile Object.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param gatewayID
+     * @param gatewayResourceProfile
+     */
+    public boolean updateGatewayResourceProfile(String gatewayID, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete the given Gateway Resource Profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the requested gateway resource to be deleted.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param gatewayID
+     */
+    public boolean deleteGatewayResourceProfile(String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Add a Compute Resource Preference to a registered gateway profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be added.
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     * 
+     * 
+     * @param gatewayID
+     * @param computeResourceId
+     * @param computeResourcePreference
+     */
+    public boolean addGatewayComputeResourcePreference(String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * @param gatewayID
+     * @param storageResourceId
+     * @param storagePreference
+     */
+    public boolean addGatewayStoragePreference(String gatewayID, String storageResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a Compute Resource Preference of a registered gateway profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param gatewayID
+     * @param computeResourceId
+     */
+    public org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference getGatewayComputeResourcePreference(String gatewayID, String computeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * 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.
+     * 
+     * 
+     * @param gatewayID
+     * @param storageResourceId
+     */
+    public org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference getGatewayStoragePreference(String gatewayID, String storageResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch all Compute Resource Preferences of a registered gateway profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> getAllGatewayComputeResourcePreferences(String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> getAllGatewayStoragePreferences(String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch all Gateway Profiles registered
+     * 
+     * @return GatewayResourceProfile
+     *   Returns all the GatewayResourcePrifle list object.
+     * 
+     * 
+     */
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> getAllGatewayResourceProfiles() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a Compute Resource Preference to a registered gateway profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be updated.
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be updated to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the updation.
+     * 
+     * 
+     * @param gatewayID
+     * @param computeResourceId
+     * @param computeResourcePreference
+     */
+    public boolean updateGatewayComputeResourcePreference(String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * @param gatewayID
+     * @param storageId
+     * @param storagePreference
+     */
+    public boolean updateGatewayStoragePreference(String gatewayID, String storageId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete the Compute Resource Preference of a registered gateway profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be deleted.
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param gatewayID
+     * @param computeResourceId
+     */
+    public boolean deleteGatewayComputeResourcePreference(String gatewayID, String computeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * @param gatewayID
+     * @param storageId
+     */
+    public boolean deleteGatewayStoragePreference(String gatewayID, String storageId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 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.
+     * 
+     * 
+     * @param gatewayId
+     */
+    public List<String> getAllWorkflows(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * API Methods Related for Work-Flow Submission Features.
+     * 
+     * 
+     * @param workflowTemplateId
+     */
+    public org.apache.airavata.model.WorkflowModel getWorkflow(String workflowTemplateId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void deleteWorkflow(String workflowTemplateId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public String registerWorkflow(String gatewayId, org.apache.airavata.model.WorkflowModel workflow) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void updateWorkflow(String workflowTemplateId, org.apache.airavata.model.WorkflowModel workflow) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public String getWorkflowTemplateId(String workflowName) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean isWorkflowExistWithName(String workflowName) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * API Methods related to replica catalog
+     * 
+     * 
+     * @param dataProductModel
+     */
+    public String registerDataProduct(org.apache.airavata.model.data.replica.DataProductModel dataProductModel) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.data.replica.DataProductModel getDataProduct(String dataProductUri) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public String registerReplicaLocation(org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.data.replica.DataProductModel getParentDataProduct(String productUri) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public List<org.apache.airavata.model.data.replica.DataProductModel> getChildDataProducts(String productUri) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+  }
+
+  public interface AsyncIface {
+
+    public void getAPIVersion(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void isUserExists(String gatewayId, String userName, org.apache.thrift.asy

<TRUNCATED>