You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/05/01 02:56:05 UTC

[09/19] airavata git commit: Changing Airavata API to support paginated result retrieval of Project and Experiment data

http://git-wip-us.apache.org/repos/asf/airavata/blob/0a3d857b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 44f1e60..dd73b61 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -138,7 +138,7 @@ import org.slf4j.LoggerFactory;
      *   *
      *   * @param userName
      *   *    The Project Object described in the workspaceModel
-     *   *
+     *   * @deprecated Instead use getAllUserProjectsWithPagination
      * *
      * 
      * @param gatewayId
@@ -147,8 +147,36 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.Project> getAllUserProjects(String gatewayId, String userName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     *   * Get all Project by user with pagination. Results will be ordered based
+     *   * on creation time DESC
+     *   *
+     *   * @param gatewayId
+     *   *    The identifier for the requested gateway.
+     *   * @param userName
+     *   *    The identifier of the user
+     *   * @param limit
+     *   *    The amount results to be fetched
+     *   * @param offset
+     *   *    The starting point of the results to be fetched
+     * *
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.Project> getAllUserProjectsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Get all Project for user by project name
      * 
+     * @param gatewayId
+     *    The identifier for the requested gateway.
+     * @param userName
+     *    The identifier of the user
+     * @param projectName
+     *    The name of the project on which the results to be fetched
+     * @deprecated Instead use searchProjectsByProjectNameWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -157,8 +185,37 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectName(String gatewayId, String userName, String projectName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
-     * Get all Project for user by project description
+     * Get all Project for user by project name with pagination.Results will be ordered based
+     * on creation time DESC
      * 
+     * @param gatewayId
+     *    The identifier for the requested gateway.
+     * @param userName
+     *    The identifier of the user
+     * @param projectName
+     *    The name of the project on which the results to be fetched
+     * @param limit
+     *    The amount results to be fetched
+     * @param offset
+     *    The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param projectName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectNameWithPagination(String gatewayId, String userName, String projectName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Get all Project for user by project description
+     * @param gatewayId
+     *    The identifier for the requested gateway.
+     * @param userName
+     *    The identifier of the user
+     * @param description
+     *    The description to be matched
+     * @deprecated Instead use searchProjectsByProjectDescWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -167,8 +224,40 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectDesc(String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Search and get all Projects for user by project description with pagination. Results
+     * will be ordered based on creation time DESC
+     * 
+     * @param gatewayId
+     *    The identifier for the requested gateway.
+     * @param userName
+     *    The identifier of the user
+     * @param description
+     *    The description to be matched
+     * @param limit
+     *    The amount results to be fetched
+     * @param offset
+     *    The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param description
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Search Experiments by experiment name
      * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param useNname
+     *       Username of the requested user
+     * @param expName
+     *       Experiment name to be matched
+     * @deprecated
+     *       Instead use searchExperimentsByNameWithPagination
+     * 
      * 
      * @param gatewayId
      * @param userName
@@ -177,8 +266,39 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByName(String gatewayId, String userName, String expName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Search Experiments by experiment name with pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param expName
+     *       Experiment name to be matched
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param expName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByNameWithPagination(String gatewayId, String userName, String expName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Search Experiments by experiment name
      * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param description
+     *       Experiment description to be matched
+     * @deprecated
+     *       Instead use searchExperimentsByDescWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -187,8 +307,39 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByDesc(String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Search Experiments by experiment name with pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param description
+     *       Experiment description to be matched
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param description
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Search Experiments by application id
      * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param applicationId
+     *       Application id to be matched
+     * @deprecated
+     *       Instead use searchExperimentsByApplicationWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -197,8 +348,39 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByApplication(String gatewayId, String userName, String applicationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Search Experiments by application id with pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param applicationId
+     *       Application id to be matched
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param applicationId
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByApplicationWithPagination(String gatewayId, String userName, String applicationId, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Search Experiments by experiment status
      * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param experimentState
+     *       Experiement state to be matched
+     * @deprecated
+     *       Instead use searchExperimentsByStatusWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -207,8 +389,41 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByStatus(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
-     * Search Experiments by experiment status
+     * Search Experiments by experiment status with pagination. Results will be sorted
+     * based on creation time DESC
      * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param experimentState
+     *       Experiement state to be matched
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param experimentState
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByStatusWithPagination(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Search Experiments by experiment creation time
+     * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param fromTime
+     *       Start time of the experiments creation time
+     * @param toTime
+     *       End time of the  experiement creation time
+     * @deprecated
+     *       Instead use searchExperimentsByCreationTimeWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -218,16 +433,69 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByCreationTime(String gatewayId, String userName, long fromTime, long toTime) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Search Experiments by experiment creation time with pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param gatewayId
+     *       Identifier of the requested gateway
+     * @param userName
+     *       Username of the requested user
+     * @param fromTime
+     *       Start time of the experiments creation time
+     * @param toTime
+     *       End time of the  experiement creation time
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param fromTime
+     * @param toTime
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByCreationTimeWithPagination(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Get all Experiments within a Project
      * 
+     * @param projectId
+     *       Identifier of the project
+     * @deprecated
+     *       Instead use  getAllExperimentsInProjectWithPagination
      * 
      * @param projectId
      */
     public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllExperimentsInProject(String projectId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException;
 
     /**
+     * Get all Experiments within project with pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param projectId
+     *       Identifier of the project
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param projectId
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllExperimentsInProjectWithPagination(String projectId, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException;
+
+    /**
      * Get all Experiments by user
      * 
+     * @param gatewayId
+     *       Identifier of the requesting gateway
+     * @param userName
+     *       Username of the requested user
+     * @deprecated
+     *       Instead use getAllUserExperimentsWithPagination
      * 
      * @param gatewayId
      * @param userName
@@ -235,6 +503,26 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllUserExperiments(String gatewayId, String userName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Get all Experiments by user pagination. Results will be sorted
+     * based on creation time DESC
+     * 
+     * @param gatewayId
+     *       Identifier of the requesting gateway
+     * @param userName
+     *       Username of the requested user
+     * @param limit
+     *       Amount of results to be fetched
+     * @param offset
+     *       The starting point of the results to be fetched
+     * 
+     * @param gatewayId
+     * @param userName
+     * @param limit
+     * @param offset
+     */
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllUserExperimentsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
      *   but inferred from the authentication header. This experiment is just a persistent place holder. The client
      *   has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
@@ -1534,24 +1822,44 @@ import org.slf4j.LoggerFactory;
 
     public void getAllUserProjects(String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllUserProjectsWithPagination(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchProjectsByProjectName(String gatewayId, String userName, String projectName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchProjectsByProjectNameWithPagination(String gatewayId, String userName, String projectName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchProjectsByProjectDesc(String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchProjectsByProjectDescWithPagination(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchExperimentsByName(String gatewayId, String userName, String expName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchExperimentsByNameWithPagination(String gatewayId, String userName, String expName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchExperimentsByDesc(String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchExperimentsByDescWithPagination(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchExperimentsByApplication(String gatewayId, String userName, String applicationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchExperimentsByApplicationWithPagination(String gatewayId, String userName, String applicationId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchExperimentsByStatus(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchExperimentsByStatusWithPagination(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void searchExperimentsByCreationTime(String gatewayId, String userName, long fromTime, long toTime, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void searchExperimentsByCreationTimeWithPagination(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllExperimentsInProject(String projectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllExperimentsInProjectWithPagination(String projectId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllUserExperiments(String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllUserExperimentsWithPagination(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void createExperiment(String gatewayId, org.apache.airavata.model.workspace.experiment.Experiment experiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getExperiment(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -2244,6 +2552,41 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserProjects failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.Project> getAllUserProjectsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAllUserProjectsWithPagination(gatewayId, userName, limit, offset);
+      return recv_getAllUserProjectsWithPagination();
+    }
+
+    public void send_getAllUserProjectsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.thrift.TException
+    {
+      getAllUserProjectsWithPagination_args args = new getAllUserProjectsWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("getAllUserProjectsWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.Project> recv_getAllUserProjectsWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAllUserProjectsWithPagination_result result = new getAllUserProjectsWithPagination_result();
+      receiveBase(result, "getAllUserProjectsWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserProjectsWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectName(String gatewayId, String userName, String projectName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchProjectsByProjectName(gatewayId, userName, projectName);
@@ -2278,6 +2621,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchProjectsByProjectName failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectNameWithPagination(String gatewayId, String userName, String projectName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchProjectsByProjectNameWithPagination(gatewayId, userName, projectName, limit, offset);
+      return recv_searchProjectsByProjectNameWithPagination();
+    }
+
+    public void send_searchProjectsByProjectNameWithPagination(String gatewayId, String userName, String projectName, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchProjectsByProjectNameWithPagination_args args = new searchProjectsByProjectNameWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setProjectName(projectName);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchProjectsByProjectNameWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.Project> recv_searchProjectsByProjectNameWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchProjectsByProjectNameWithPagination_result result = new searchProjectsByProjectNameWithPagination_result();
+      receiveBase(result, "searchProjectsByProjectNameWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchProjectsByProjectNameWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectDesc(String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchProjectsByProjectDesc(gatewayId, userName, description);
@@ -2312,6 +2691,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchProjectsByProjectDesc failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.Project> searchProjectsByProjectDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchProjectsByProjectDescWithPagination(gatewayId, userName, description, limit, offset);
+      return recv_searchProjectsByProjectDescWithPagination();
+    }
+
+    public void send_searchProjectsByProjectDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchProjectsByProjectDescWithPagination_args args = new searchProjectsByProjectDescWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setDescription(description);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchProjectsByProjectDescWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.Project> recv_searchProjectsByProjectDescWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchProjectsByProjectDescWithPagination_result result = new searchProjectsByProjectDescWithPagination_result();
+      receiveBase(result, "searchProjectsByProjectDescWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchProjectsByProjectDescWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByName(String gatewayId, String userName, String expName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchExperimentsByName(gatewayId, userName, expName);
@@ -2346,6 +2761,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByName failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByNameWithPagination(String gatewayId, String userName, String expName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchExperimentsByNameWithPagination(gatewayId, userName, expName, limit, offset);
+      return recv_searchExperimentsByNameWithPagination();
+    }
+
+    public void send_searchExperimentsByNameWithPagination(String gatewayId, String userName, String expName, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchExperimentsByNameWithPagination_args args = new searchExperimentsByNameWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setExpName(expName);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchExperimentsByNameWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> recv_searchExperimentsByNameWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchExperimentsByNameWithPagination_result result = new searchExperimentsByNameWithPagination_result();
+      receiveBase(result, "searchExperimentsByNameWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByNameWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByDesc(String gatewayId, String userName, String description) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchExperimentsByDesc(gatewayId, userName, description);
@@ -2380,6 +2831,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByDesc failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchExperimentsByDescWithPagination(gatewayId, userName, description, limit, offset);
+      return recv_searchExperimentsByDescWithPagination();
+    }
+
+    public void send_searchExperimentsByDescWithPagination(String gatewayId, String userName, String description, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchExperimentsByDescWithPagination_args args = new searchExperimentsByDescWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setDescription(description);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchExperimentsByDescWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> recv_searchExperimentsByDescWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchExperimentsByDescWithPagination_result result = new searchExperimentsByDescWithPagination_result();
+      receiveBase(result, "searchExperimentsByDescWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByDescWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByApplication(String gatewayId, String userName, String applicationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchExperimentsByApplication(gatewayId, userName, applicationId);
@@ -2414,6 +2901,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByApplication failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByApplicationWithPagination(String gatewayId, String userName, String applicationId, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchExperimentsByApplicationWithPagination(gatewayId, userName, applicationId, limit, offset);
+      return recv_searchExperimentsByApplicationWithPagination();
+    }
+
+    public void send_searchExperimentsByApplicationWithPagination(String gatewayId, String userName, String applicationId, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchExperimentsByApplicationWithPagination_args args = new searchExperimentsByApplicationWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setApplicationId(applicationId);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchExperimentsByApplicationWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> recv_searchExperimentsByApplicationWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchExperimentsByApplicationWithPagination_result result = new searchExperimentsByApplicationWithPagination_result();
+      receiveBase(result, "searchExperimentsByApplicationWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByApplicationWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByStatus(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchExperimentsByStatus(gatewayId, userName, experimentState);
@@ -2448,6 +2971,42 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByStatus failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByStatusWithPagination(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchExperimentsByStatusWithPagination(gatewayId, userName, experimentState, limit, offset);
+      return recv_searchExperimentsByStatusWithPagination();
+    }
+
+    public void send_searchExperimentsByStatusWithPagination(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchExperimentsByStatusWithPagination_args args = new searchExperimentsByStatusWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setExperimentState(experimentState);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchExperimentsByStatusWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> recv_searchExperimentsByStatusWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchExperimentsByStatusWithPagination_result result = new searchExperimentsByStatusWithPagination_result();
+      receiveBase(result, "searchExperimentsByStatusWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByStatusWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByCreationTime(String gatewayId, String userName, long fromTime, long toTime) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_searchExperimentsByCreationTime(gatewayId, userName, fromTime, toTime);
@@ -2483,6 +3042,43 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByCreationTime failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> searchExperimentsByCreationTimeWithPagination(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_searchExperimentsByCreationTimeWithPagination(gatewayId, userName, fromTime, toTime, limit, offset);
+      return recv_searchExperimentsByCreationTimeWithPagination();
+    }
+
+    public void send_searchExperimentsByCreationTimeWithPagination(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset) throws org.apache.thrift.TException
+    {
+      searchExperimentsByCreationTimeWithPagination_args args = new searchExperimentsByCreationTimeWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setFromTime(fromTime);
+      args.setToTime(toTime);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("searchExperimentsByCreationTimeWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> recv_searchExperimentsByCreationTimeWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      searchExperimentsByCreationTimeWithPagination_result result = new searchExperimentsByCreationTimeWithPagination_result();
+      receiveBase(result, "searchExperimentsByCreationTimeWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "searchExperimentsByCreationTimeWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllExperimentsInProject(String projectId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException
     {
       send_getAllExperimentsInProject(projectId);
@@ -2518,6 +3114,43 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllExperimentsInProject failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllExperimentsInProjectWithPagination(String projectId, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException
+    {
+      send_getAllExperimentsInProjectWithPagination(projectId, limit, offset);
+      return recv_getAllExperimentsInProjectWithPagination();
+    }
+
+    public void send_getAllExperimentsInProjectWithPagination(String projectId, int limit, int offset) throws org.apache.thrift.TException
+    {
+      getAllExperimentsInProjectWithPagination_args args = new getAllExperimentsInProjectWithPagination_args();
+      args.setProjectId(projectId);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("getAllExperimentsInProjectWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> recv_getAllExperimentsInProjectWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException
+    {
+      getAllExperimentsInProjectWithPagination_result result = new getAllExperimentsInProjectWithPagination_result();
+      receiveBase(result, "getAllExperimentsInProjectWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.pnfe != null) {
+        throw result.pnfe;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllExperimentsInProjectWithPagination failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllUserExperiments(String gatewayId, String userName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getAllUserExperiments(gatewayId, userName);
@@ -2551,6 +3184,41 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserExperiments failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> getAllUserExperimentsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAllUserExperimentsWithPagination(gatewayId, userName, limit, offset);
+      return recv_getAllUserExperimentsWithPagination();
+    }
+
+    public void send_getAllUserExperimentsWithPagination(String gatewayId, String userName, int limit, int offset) throws org.apache.thrift.TException
+    {
+      getAllUserExperimentsWithPagination_args args = new getAllUserExperimentsWithPagination_args();
+      args.setGatewayId(gatewayId);
+      args.setUserName(userName);
+      args.setLimit(limit);
+      args.setOffset(offset);
+      sendBase("getAllUserExperimentsWithPagination", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.experiment.Experiment> recv_getAllUserExperimentsWithPagination() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAllUserExperimentsWithPagination_result result = new getAllUserExperimentsWithPagination_result();
+      receiveBase(result, "getAllUserExperimentsWithPagination");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserExperimentsWithPagination failed: unknown result");
+    }
+
     public String createExperiment(String gatewayId, org.apache.airavata.model.workspace.experiment.Experiment experiment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_createExperiment(gatewayId, experiment);
@@ -6053,6 +6721,47 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAllUserProjectsWithPagination(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserProjectsWithPagination_call method_call = new getAllUserProjectsWithPagination_call(gatewayId, userName, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserProjectsWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private int limit;
+      private int offset;
+      public getAllUserProjectsWithPagination_call(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserProjectsWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserProjectsWithPagination_args args = new getAllUserProjectsWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.Project> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllUserProjectsWithPagination();
+      }
+    }
+
     public void searchProjectsByProjectName(String gatewayId, String userName, String projectName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchProjectsByProjectName_call method_call = new searchProjectsByProjectName_call(gatewayId, userName, projectName, resultHandler, this, ___protocolFactory, ___transport);
@@ -6091,6 +6800,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchProjectsByProjectNameWithPagination(String gatewayId, String userName, String projectName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchProjectsByProjectNameWithPagination_call method_call = new searchProjectsByProjectNameWithPagination_call(gatewayId, userName, projectName, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchProjectsByProjectNameWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private String projectName;
+      private int limit;
+      private int offset;
+      public searchProjectsByProjectNameWithPagination_call(String gatewayId, String userName, String projectName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.projectName = projectName;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchProjectsByProjectNameWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchProjectsByProjectNameWithPagination_args args = new searchProjectsByProjectNameWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setProjectName(projectName);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.Project> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchProjectsByProjectNameWithPagination();
+      }
+    }
+
     public void searchProjectsByProjectDesc(String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchProjectsByProjectDesc_call method_call = new searchProjectsByProjectDesc_call(gatewayId, userName, description, resultHandler, this, ___protocolFactory, ___transport);
@@ -6129,6 +6882,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchProjectsByProjectDescWithPagination(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchProjectsByProjectDescWithPagination_call method_call = new searchProjectsByProjectDescWithPagination_call(gatewayId, userName, description, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchProjectsByProjectDescWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private String description;
+      private int limit;
+      private int offset;
+      public searchProjectsByProjectDescWithPagination_call(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.description = description;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchProjectsByProjectDescWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchProjectsByProjectDescWithPagination_args args = new searchProjectsByProjectDescWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setDescription(description);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.Project> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchProjectsByProjectDescWithPagination();
+      }
+    }
+
     public void searchExperimentsByName(String gatewayId, String userName, String expName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchExperimentsByName_call method_call = new searchExperimentsByName_call(gatewayId, userName, expName, resultHandler, this, ___protocolFactory, ___transport);
@@ -6167,6 +6964,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchExperimentsByNameWithPagination(String gatewayId, String userName, String expName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchExperimentsByNameWithPagination_call method_call = new searchExperimentsByNameWithPagination_call(gatewayId, userName, expName, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchExperimentsByNameWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private String expName;
+      private int limit;
+      private int offset;
+      public searchExperimentsByNameWithPagination_call(String gatewayId, String userName, String expName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.expName = expName;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchExperimentsByNameWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchExperimentsByNameWithPagination_args args = new searchExperimentsByNameWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setExpName(expName);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchExperimentsByNameWithPagination();
+      }
+    }
+
     public void searchExperimentsByDesc(String gatewayId, String userName, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchExperimentsByDesc_call method_call = new searchExperimentsByDesc_call(gatewayId, userName, description, resultHandler, this, ___protocolFactory, ___transport);
@@ -6205,6 +7046,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchExperimentsByDescWithPagination(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchExperimentsByDescWithPagination_call method_call = new searchExperimentsByDescWithPagination_call(gatewayId, userName, description, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchExperimentsByDescWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private String description;
+      private int limit;
+      private int offset;
+      public searchExperimentsByDescWithPagination_call(String gatewayId, String userName, String description, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.description = description;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchExperimentsByDescWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchExperimentsByDescWithPagination_args args = new searchExperimentsByDescWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setDescription(description);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchExperimentsByDescWithPagination();
+      }
+    }
+
     public void searchExperimentsByApplication(String gatewayId, String userName, String applicationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchExperimentsByApplication_call method_call = new searchExperimentsByApplication_call(gatewayId, userName, applicationId, resultHandler, this, ___protocolFactory, ___transport);
@@ -6243,6 +7128,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchExperimentsByApplicationWithPagination(String gatewayId, String userName, String applicationId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchExperimentsByApplicationWithPagination_call method_call = new searchExperimentsByApplicationWithPagination_call(gatewayId, userName, applicationId, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchExperimentsByApplicationWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private String applicationId;
+      private int limit;
+      private int offset;
+      public searchExperimentsByApplicationWithPagination_call(String gatewayId, String userName, String applicationId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.applicationId = applicationId;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchExperimentsByApplicationWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchExperimentsByApplicationWithPagination_args args = new searchExperimentsByApplicationWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setApplicationId(applicationId);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchExperimentsByApplicationWithPagination();
+      }
+    }
+
     public void searchExperimentsByStatus(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchExperimentsByStatus_call method_call = new searchExperimentsByStatus_call(gatewayId, userName, experimentState, resultHandler, this, ___protocolFactory, ___transport);
@@ -6281,6 +7210,50 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchExperimentsByStatusWithPagination(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchExperimentsByStatusWithPagination_call method_call = new searchExperimentsByStatusWithPagination_call(gatewayId, userName, experimentState, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchExperimentsByStatusWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private org.apache.airavata.model.workspace.experiment.ExperimentState experimentState;
+      private int limit;
+      private int offset;
+      public searchExperimentsByStatusWithPagination_call(String gatewayId, String userName, org.apache.airavata.model.workspace.experiment.ExperimentState experimentState, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.experimentState = experimentState;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchExperimentsByStatusWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchExperimentsByStatusWithPagination_args args = new searchExperimentsByStatusWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setExperimentState(experimentState);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchExperimentsByStatusWithPagination();
+      }
+    }
+
     public void searchExperimentsByCreationTime(String gatewayId, String userName, long fromTime, long toTime, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       searchExperimentsByCreationTime_call method_call = new searchExperimentsByCreationTime_call(gatewayId, userName, fromTime, toTime, resultHandler, this, ___protocolFactory, ___transport);
@@ -6322,6 +7295,53 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void searchExperimentsByCreationTimeWithPagination(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      searchExperimentsByCreationTimeWithPagination_call method_call = new searchExperimentsByCreationTimeWithPagination_call(gatewayId, userName, fromTime, toTime, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class searchExperimentsByCreationTimeWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private long fromTime;
+      private long toTime;
+      private int limit;
+      private int offset;
+      public searchExperimentsByCreationTimeWithPagination_call(String gatewayId, String userName, long fromTime, long toTime, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.fromTime = fromTime;
+        this.toTime = toTime;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("searchExperimentsByCreationTimeWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        searchExperimentsByCreationTimeWithPagination_args args = new searchExperimentsByCreationTimeWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setFromTime(fromTime);
+        args.setToTime(toTime);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_searchExperimentsByCreationTimeWithPagination();
+      }
+    }
+
     public void getAllExperimentsInProject(String projectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllExperimentsInProject_call method_call = new getAllExperimentsInProject_call(projectId, resultHandler, this, ___protocolFactory, ___transport);
@@ -6354,6 +7374,44 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAllExperimentsInProjectWithPagination(String projectId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllExperimentsInProjectWithPagination_call method_call = new getAllExperimentsInProjectWithPagination_call(projectId, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllExperimentsInProjectWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String projectId;
+      private int limit;
+      private int offset;
+      public getAllExperimentsInProjectWithPagination_call(String projectId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.projectId = projectId;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllExperimentsInProjectWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllExperimentsInProjectWithPagination_args args = new getAllExperimentsInProjectWithPagination_args();
+        args.setProjectId(projectId);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.Experiment> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllExperimentsInProjectWithPagination();
+      }
+    }
+
     public void getAllUserExperiments(String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllUserExperiments_call method_call = new getAllUserExperiments_call(gatewayId, userName, resultHandler, this, ___protocolFactory, ___transport);
@@ -6389,6 +7447,47 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAllUserExperimentsWithPagination(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserExperimentsWithPagination_call method_call = new getAllUserExperimentsWithPagination_call(gatewayId, userName, limit, offset, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserExperimentsWithPagination_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private String userName;
+      private int limit;
+      private int offset;
+      public getAllUserExperimentsWithPagination_call(String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.userName = userName;
+        this.limit = limit;
+        this.offset = offset;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserExperimentsWithPagination", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserExperimentsWithPagination_args args = new getAllUserExperimentsWithPagination_args();
+        args.setGatewayId(gatewayId);
+        args.setUserName(userName);
+        args.setLimit(limit);
+        args.setOffset(offset);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.experiment.Experiment> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllUserExperimentsWithPagination();
+      }
+    }
+
     public void createExperiment(String gatewayId, org.apache.airavata.model.workspace.experiment.Experiment experiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       createExperiment_call method_call = new createExperiment_call(gatewayId, experiment, resultHandler, this, ___protocolFactory, ___transport);
@@ -9514,15 +10613,25 @@ import org.slf4j.LoggerFactory;
       processMap.put("getProject", new getProject());
       processMap.put("deleteProject", new deleteProject());
       processMap.put("getAllUserProjects", new getAllUserProjects());
+      processMap.put("getAllUserProjectsWithPagination", new getAllUserProjectsWithPagination());
       processMap.put("searchProjectsByProjectName", new searchProjectsByProjectName());
+      processMap.put("searchProjectsByProjectNameWithPagination", new searchProjectsByProjectNameWithPagination());
       processMap.put("searchProjectsByProjectDesc", new searchProjectsByProjectDesc());
+      processMap.put("searchProjectsByProjectDescWithPagination", new searchProjectsByProjectDescWithPagination());
       processMap.put("searchExperimentsByName", new searchExperimentsByName());
+      processMap.put("searchExperimentsByNameWithPagination", new searchExperimentsByNameWithPagination());
       processMap.put("searchExperimentsByDesc", new searchExperimentsByDesc());
+      processMap.put("searchExperimentsByDescWithPagination", new searchExperimentsByDescWithPagination());
       processMap.put("searchExperimentsByApplication", new searchExperimentsByApplication());
+      processMap.put("searchExperimentsByApplicationWithPagination", new searchExperimentsByApplicationWithPagination());
       processMap.put("searchExperimentsByStatus", new searchExperimentsByStatus());
+      processMap.put("searchExperimentsByStatusWithPagination", new searchExperimentsByStatusWithPagination());
       processMap.put("searchExperimentsByCreationTime", new searchExperimentsByCreationTime());
+      processMap.put("searchExperimentsByCreationTimeWithPagination", new searchExperimentsByCreationTimeWithPagination());
       processMap.put("getAllExperimentsInProject", new getAllExperimentsInProject());
+      processMap.put("getAllExperimentsInProjectWithPagination", new getAllExperimentsInProjectWithPagination());
       processMap.put("getAllUserExperiments", new getAllUserExperiments());
+      processMap.put("getAllUserExperimentsWithPagination", new getAllUserExperimentsWithPagination());
       processMap.put("createExperiment", new createExperiment());
       processMap.put("getExperiment", new getExperiment());
       processMap.put("updateExperiment", new updateExperiment());
@@ -10047,6 +11156,34 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAllUserProjectsWithPagination<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserProjectsWithPagination_args> {
+      public getAllUserProjectsWithPagination() {
+        super("getAllUserProjectsWithPagination");
+      }
+
+      public getAllUserProjectsWithPagination_args getEmptyArgsInstance() {
+        return new getAllUserProjectsWithPagination_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserProjectsWithPagination_result getResult(I iface, getAllUserProjectsWithPagination_args args) throws org.apache.thrift.TException {
+        getAllUserProjectsWithPagination_result resul

<TRUNCATED>