You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2020/05/29 14:41:50 UTC

[airavata] branch param-sweep updated: Adding child job models and supporting realtime monitoring for child jobs

This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch param-sweep
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/param-sweep by this push:
     new 539515a  Adding child job models and supporting realtime monitoring for child jobs
539515a is described below

commit 539515af6968b9a1f52a806ac701da82f189f1af
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Fri May 29 10:41:32 2020 -0400

    Adding child job models and supporting realtime monitoring for child jobs
---
 .../helix/impl/task/staging/ArchiveTask.java       |     2 +-
 .../task/submission/DefaultJobSubmissionTask.java  |    30 +
 .../impl/task/submission/JobSubmissionTask.java    |     4 +-
 .../helix/impl/workflow/PostWorkflowManager.java   |    59 +-
 modules/ide-integration/pom.xml                    |     5 +
 .../ide/integration/JobMonitorStarter.java         |     8 +
 .../src/main/resources/META-INF/persistence.xml    |     2 +
 .../database_scripts/expcatalog-derby.sql          |    20 +
 .../database_scripts/expcatalog-mysql.sql          |    20 +
 .../init/05-parameter-sweep-migration.sql          |    21 +-
 .../airavata/monitor/email/EmailBasedMonitor.java  |     2 +-
 .../apache/airavata/monitor/JobStatusResult.java   |    18 +
 .../monitor/kafka/JobStatusResultDeserializer.java |     2 +
 .../monitor/kafka/JobStatusResultSerializer.java   |     4 +-
 .../airavata/monitor/realtime/RealtimeMonitor.java |    58 +-
 .../realtime/parser/RealtimeJobStatusParser.java   |     6 +
 .../core/entities/expcatalog/ChildJobEntity.java   |   103 +
 .../entities/expcatalog/ChildJobStatusEntity.java  |   105 +
 .../core/entities/expcatalog/ChildJobStatusPK.java |    66 +
 .../expcatalog/ChildJobRepository.java             |    87 +
 .../airavata/registry/core/utils/DBConstants.java  |     5 +
 .../registry/core/utils/QueryConstants.java        |     3 +
 .../src/main/resources/META-INF/persistence.xml    |     2 +
 .../src/main/resources/expcatalog-derby.sql        |    20 +
 .../src/main/resources/expcatalog-mysql.sql        |    20 +
 .../api/service/handler/RegistryServerHandler.java |    40 +-
 .../airavata/registry/api/RegistryService.java     | 25074 +++++++++++--------
 .../airavata/sharing/registry/models/Domain.java   |    32 +-
 .../registry/models/DuplicateEntryException.java   |    12 +-
 .../airavata/sharing/registry/models/Entity.java   |    70 +-
 .../sharing/registry/models/EntityType.java        |    32 +-
 .../sharing/registry/models/GroupAdmin.java        |    17 +-
 .../sharing/registry/models/GroupMembership.java   |    36 +-
 .../sharing/registry/models/PermissionType.java    |    32 +-
 .../sharing/registry/models/SearchCriteria.java    |    25 +-
 .../airavata/sharing/registry/models/Sharing.java  |    46 +-
 .../registry/models/SharingRegistryException.java  |    12 +-
 .../airavata/sharing/registry/models/User.java     |    50 +-
 .../sharing/registry/models/UserGroup.java         |    60 +-
 .../component-cpis/registry-api.thrift             |     9 +
 .../experiment-catalog-models/job_model.thrift     |     8 +
 .../experiment-catalog-models/status_models.thrift |     7 +
 42 files changed, 14985 insertions(+), 11249 deletions(-)

diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
index 2448b29..7d4ffa0 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/ArchiveTask.java
@@ -106,7 +106,7 @@ public class ArchiveTask extends DataStagingTask {
 
                     String destParent = destFilePath.substring(0, destFilePath.lastIndexOf("/"));
                     final String storageArchiveDir = "ARCHIVE";
-                    String unArchiveTarCommand = "mkdir " + storageArchiveDir + " && tar -xvf " + archiveFileName + " -C "
+                    String unArchiveTarCommand = "mkdir -p " + storageArchiveDir + " && tar -xvf " + archiveFileName + " -C "
                             + storageArchiveDir + " && rm " + archiveFileName + " && chmod 755 -f -R " + storageArchiveDir + "/*";
                     logger.info("Running Un archiving command on storage resource " + unArchiveTarCommand);
 
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/DefaultJobSubmissionTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/DefaultJobSubmissionTask.java
index 5bb0c3a..0a9c36a 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/DefaultJobSubmissionTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/DefaultJobSubmissionTask.java
@@ -32,9 +32,12 @@ import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.job.ChildJobModel;
 import org.apache.airavata.model.job.JobModel;
 import org.apache.airavata.model.status.*;
+import org.apache.airavata.registry.api.RegistryService;
 import org.apache.helix.task.TaskResult;
+import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -146,6 +149,7 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
                 jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
                 jobModel.setJobStatuses(Collections.singletonList(jobStatus));
                 saveAndPublishJobStatus(jobModel);
+                saveChildJobModels(jobModel, taskContext.getSweepCount());
 
                 if (verifyJobSubmissionByJobId(adaptor, jobId)) {
                     jobStatus.setJobState(JobState.QUEUED);
@@ -171,6 +175,7 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
                         jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
                         jobModel.setJobStatuses(Collections.singletonList(jobStatus));
                         saveAndPublishJobStatus(jobModel);
+                        saveChildJobModels(jobModel, taskContext.getSweepCount());
                         logger.info("Job id " + verifyJobId + " verification succeeded");
                         break;
                     }
@@ -273,6 +278,31 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
         }
     }
 
+    // This is for parameter sweeping jobs
+    private void saveChildJobModels(JobModel jobModel, int childCount) throws TException {
+        if (childCount <= 1) {
+            return;
+        }
+
+        RegistryService.Client registryServiceClient = getRegistryServiceClient();
+
+        for (int childIndex = 0; childIndex < childCount; childIndex++) {
+            ChildJobModel childJobModel = new ChildJobModel();
+            childJobModel.setChildJobId(jobModel.getTaskId() + "_" + jobModel.getJobId() + "_" + childIndex);
+            childJobModel.setJobIndex(childIndex);
+            childJobModel.setParentJobId(jobModel.getJobId());
+            childJobModel.setParentTaskId(jobModel.getTaskId());
+
+            ChildJobStatus status = new ChildJobStatus();
+            status.setJobState(JobState.SUBMITTED);
+            status.setReason("Submitted");
+            status.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
+            childJobModel.addToJobStatuses(status);
+
+            registryServiceClient.addChildJob(childJobModel);
+        }
+    }
+
     private boolean verifyJobSubmissionByJobId(AgentAdaptor agentAdaptor, String jobID) {
         JobStatus status = null;
 
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
index c94810b..0ca11f5 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
@@ -264,9 +264,11 @@ public abstract class JobSubmissionTask extends AiravataTask {
             if (mapData.getPostJobCommands() == null) {
                 mapData.setPostJobCommands(new ArrayList<>());
             }
+            String jobIndex = mapData.getSweepCount() > 1 ? ",\"jobIndex\":\"'\"${SLURM_ARRAY_TASK_ID}\"'\"" : ""; // TODO generalize this
+
             mapData.getPostJobCommands().add("curl -X POST -H \"Content-Type: application/vnd.kafka.json.v2+json\" " +
                     "-H \"Accept: application/vnd.kafka.v2+json\" " +
-                    "--data '{\"records\":[{\"value\":{\"jobName\":\"" + mapData.getJobName() + "\", \"status\":\"COMPLETED\", \"task\":\"" + mapData.getTaskId() + "\"}}]}' \"" +
+                    "--data '{\"records\":[{\"value\":{\"jobName\":\"" + mapData.getJobName() + "\", \"status\":\"COMPLETED\", \"task\":\"" + mapData.getTaskId() + "\"" + jobIndex + "}}]}' \"" +
                     ServerSettings.getSetting("job.status.publish.endpoint") + "\" > /dev/null || true");
         }
     }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
index 93b7371..ed70de9 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
@@ -28,6 +28,7 @@ import org.apache.airavata.helix.impl.task.*;
 import org.apache.airavata.helix.impl.task.completing.CompletingTask;
 import org.apache.airavata.helix.impl.task.parsing.ParsingTriggeringTask;
 import org.apache.airavata.helix.impl.task.staging.*;
+import org.apache.airavata.model.job.ChildJobModel;
 import org.apache.airavata.model.job.JobModel;
 import org.apache.airavata.model.status.ProcessState;
 import org.apache.airavata.model.status.ProcessStatus;
@@ -140,7 +141,9 @@ public class PostWorkflowManager extends WorkflowManager {
                 logger.info("Updating the job status for job id : " + jobStatusResult.getJobId() + " with process id "
                         + processId + ", exp id " + experimentId + ", gateway " + gateway + " and status " + jobStatusResult.getState().name());
 
-                saveAndPublishJobStatus(jobStatusResult.getJobId(), task, processId, experimentId, gateway, jobStatusResult.getState());
+                if (!jobStatusResult.isChildJob()) {
+                    saveAndPublishJobStatus(jobStatusResult.getJobId(), task, processId, experimentId, gateway, jobStatusResult.getState());
+                }
 
                 // TODO get cluster lock before that
                 if (ProcessState.CANCELLING.equals(processStatus.getState()) || ProcessState.CANCELED.equals(processStatus.getState())) {
@@ -171,13 +174,33 @@ public class PostWorkflowManager extends WorkflowManager {
                         logger.info("Job " + jobStatusResult.getJobId() + " was completed");
 
                         if (experimentModel.getSweepCount() == 0) {
-                            executePostWorkflow(processId, gateway, false, 0);
+                            executePostWorkflow(processId, gateway, false, 0, false, false);
                         } else {
-                            for (int i = 0; i < experimentModel.getSweepCount(); i ++) {
-                                executePostWorkflow(processId, gateway, false, i);
+
+                            if (jobStatusResult.isChildJob()) {
+                                logger.info("Running post workflow for child job index {} in job {} and task {}",
+                                    jobStatusResult.getJobIndex(), jobStatusResult.getJobId(), task);
+                                executePostWorkflow(processId, gateway, true, jobStatusResult.getJobIndex(), true, false);
+
+                            } else {
+                                List<ChildJobModel> childJobsOfJob = registryClient.getChildJobsOfJob(jobStatusResult.getJobId(), task);
+                                Map<Integer, ChildJobModel> childMap = new HashMap<>();
+                                childJobsOfJob.forEach(child -> childMap.put(child.getJobIndex(), child));
+                                for (int i = 0; i < experimentModel.getSweepCount(); i++) {
+                                    ChildJobModel child = childMap.get(i);
+                                    if (child != null &&
+                                            child.getJobStatuses().stream()
+                                                    .noneMatch(st -> (st.getJobState() == JobState.COMPLETE) || (st.getJobState() == JobState.FAILED))) {
+                                        logger.info("Running post workflow for job {} index {} and task {}",
+                                                jobModel.getJobId(), i, jobModel.getTaskId());
+                                        executePostWorkflow(processId, gateway, false, i, false, true);
+                                    } else {
+                                        logger.info("Ignoring post workflow for job {} index {} in task {}",
+                                                jobModel.getJobId(), i, jobModel.getTaskId());
+                                    }
+                                }
                             }
                         }
-
                     } else if (jobStatusResult.getState() == JobState.CANCELED) {
                         logger.info("Job " + jobStatusResult.getJobId() + " was externally cancelled but process is not marked as cancelled yet");
                         publishProcessStatus(processId, experimentId,gateway, ProcessState.CANCELED);
@@ -200,7 +223,7 @@ public class PostWorkflowManager extends WorkflowManager {
         }
     }
 
-    private void executePostWorkflow(String processId, String gateway, boolean forceRun, int jobIndex) throws Exception {
+    private void executePostWorkflow(String processId, String gateway, boolean forceRun, int jobIndex, boolean isChildJob, boolean excludeDataStage) throws Exception {
 
         RegistryService.Client registryClient = getRegistryClientPool().getResource();
 
@@ -243,7 +266,7 @@ public class PostWorkflowManager extends WorkflowManager {
                 AiravataTask airavataTask = null;
                 if (taskModel.getTaskType() == TaskTypes.JOB_SUBMISSION) {
                     jobSubmissionFound = true;
-                } else if (taskModel.getTaskType() == TaskTypes.DATA_STAGING) {
+                } else if (taskModel.getTaskType() == TaskTypes.DATA_STAGING && !excludeDataStage) {
                     if (jobSubmissionFound) {
                         DataStagingTaskModel subTaskModel = (DataStagingTaskModel) ThriftUtils.getSubTaskModel(taskModel);
                         assert subTaskModel != null;
@@ -282,17 +305,19 @@ public class PostWorkflowManager extends WorkflowManager {
             }
         }
 
-        CompletingTask completingTask = new CompletingTask();
-        completingTask.setGatewayId(experimentModel.getGatewayId());
-        completingTask.setExperimentId(experimentModel.getExperimentId());
-        completingTask.setProcessId(processModel.getProcessId());
-        completingTask.setTaskId("Completing-Task-" + UUID.randomUUID().toString() +"-");
-        completingTask.setForceRunTask(forceRun);
-        completingTask.setSkipTaskStatusPublish(true);
-        if (allTasks.size() > 0) {
-            allTasks.get(allTasks.size() - 1).setNextTask(new OutPort(completingTask.getTaskId(), completingTask));
+        if (!isChildJob) {
+            CompletingTask completingTask = new CompletingTask();
+            completingTask.setGatewayId(experimentModel.getGatewayId());
+            completingTask.setExperimentId(experimentModel.getExperimentId());
+            completingTask.setProcessId(processModel.getProcessId());
+            completingTask.setTaskId("Completing-Task-" + UUID.randomUUID().toString() + "-");
+            completingTask.setForceRunTask(forceRun);
+            completingTask.setSkipTaskStatusPublish(true);
+            if (allTasks.size() > 0) {
+                allTasks.get(allTasks.size() - 1).setNextTask(new OutPort(completingTask.getTaskId(), completingTask));
+            }
+            allTasks.add(completingTask);
         }
-        allTasks.add(completingTask);
 
         ParsingTriggeringTask parsingTriggeringTask = new ParsingTriggeringTask();
         parsingTriggeringTask.setGatewayId(experimentModel.getGatewayId());
diff --git a/modules/ide-integration/pom.xml b/modules/ide-integration/pom.xml
index 9d19e9d..ed040f7 100644
--- a/modules/ide-integration/pom.xml
+++ b/modules/ide-integration/pom.xml
@@ -73,6 +73,11 @@
             <artifactId>email-monitor</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>realtime-monitor</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobMonitorStarter.java b/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobMonitorStarter.java
index 03dba26..c96631c 100644
--- a/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobMonitorStarter.java
+++ b/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobMonitorStarter.java
@@ -1,10 +1,18 @@
 package org.apache.airavata.ide.integration;
 
 import org.apache.airavata.monitor.email.EmailBasedMonitor;
+import org.apache.airavata.monitor.realtime.RealtimeMonitor;
 
 public class JobMonitorStarter {
     public static void main(String args[]) throws Exception {
+        System.out.println("Starting Email Monitor .......");
+
         EmailBasedMonitor emailBasedMonitor = new EmailBasedMonitor();
         emailBasedMonitor.startServer();
+
+        System.out.println("Starting Realtime Monitor .......");
+        RealtimeMonitor realtimeMonitor = new RealtimeMonitor();
+        realtimeMonitor.startServer();
+
     }
 }
diff --git a/modules/ide-integration/src/main/resources/META-INF/persistence.xml b/modules/ide-integration/src/main/resources/META-INF/persistence.xml
index ca86b54..6ddf250 100644
--- a/modules/ide-integration/src/main/resources/META-INF/persistence.xml
+++ b/modules/ide-integration/src/main/resources/META-INF/persistence.xml
@@ -118,6 +118,8 @@
         <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayWorkerEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.JobEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.JobStatusEntity</class>
+        <class>org.apache.airavata.registry.core.entities.expcatalog.ChildJobEntity</class>
+        <class>org.apache.airavata.registry.core.entities.expcatalog.ChildJobStatusEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.NotificationEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessErrorEntity</class>
diff --git a/modules/ide-integration/src/main/resources/database_scripts/expcatalog-derby.sql b/modules/ide-integration/src/main/resources/database_scripts/expcatalog-derby.sql
index 0f974bf..e58bc2d 100644
--- a/modules/ide-integration/src/main/resources/database_scripts/expcatalog-derby.sql
+++ b/modules/ide-integration/src/main/resources/database_scripts/expcatalog-derby.sql
@@ -401,6 +401,26 @@ CREATE TABLE QUEUE_STATUS(
         PRIMARY KEY (HOST_NAME, QUEUE_NAME, CREATED_TIME)
 );
 
+
+CREATE TABLE CHILD_JOB (
+        CHILD_JOB_ID varchar(255),
+        PARENT_JOB_ID varchar(255),
+        PARENT_TASK_ID varchar(255) NOT NULL,
+        JOB_INDEX int NOT NULL,
+        PRIMARY KEY (CHILD_JOB_ID),
+        FOREIGN KEY (PARENT_JOB_ID, PARENT_TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE CHILD_JOB_STATUS (
+        STATUS_ID varchar(255) NOT NULL,
+        CHILD_JOB_ID varchar(255) NOT NULL,
+        STATE varchar(255),
+        TIME_OF_STATE_CHANGE TIMESTAMP(6) DEFAULT NOW(6) ON UPDATE NOW(6),
+        REASON LONGTEXT,
+        PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
+        FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
+);
+
 CREATE TABLE CONFIGURATION
 (
         CONFIG_KEY VARCHAR(255),
diff --git a/modules/ide-integration/src/main/resources/database_scripts/expcatalog-mysql.sql b/modules/ide-integration/src/main/resources/database_scripts/expcatalog-mysql.sql
index 20621c6..112ae62 100644
--- a/modules/ide-integration/src/main/resources/database_scripts/expcatalog-mysql.sql
+++ b/modules/ide-integration/src/main/resources/database_scripts/expcatalog-mysql.sql
@@ -403,6 +403,26 @@ CREATE TABLE QUEUE_STATUS(
         PRIMARY KEY (HOST_NAME, QUEUE_NAME, CREATED_TIME)
 )ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
+
+CREATE TABLE CHILD_JOB (
+        CHILD_JOB_ID varchar(255),
+        PARENT_JOB_ID varchar(255),
+        PARENT_TASK_ID varchar(255) NOT NULL,
+        JOB_INDEX int NOT NULL,
+        PRIMARY KEY (CHILD_JOB_ID),
+        FOREIGN KEY (PARENT_JOB_ID, PARENT_TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE CHILD_JOB_STATUS (
+        STATUS_ID varchar(255) NOT NULL,
+        CHILD_JOB_ID varchar(255) NOT NULL,
+        STATE varchar(255),
+        TIME_OF_STATE_CHANGE TIMESTAMP(6) DEFAULT NOW(6) ON UPDATE NOW(6),
+        REASON LONGTEXT,
+        PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
+        FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
 CREATE TABLE CONFIGURATION
 (
         CONFIG_KEY VARCHAR(255),
diff --git a/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql b/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
index 476fb9b..8e7d25e 100644
--- a/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
+++ b/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
@@ -8,4 +8,23 @@ CREATE TABLE EXPERIMENT_OUTPUT_VALUE
         OUTPUT_VALUE varchar(2048),
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_NAME,OUTPUT_VALUE),
         FOREIGN KEY (EXPERIMENT_ID,OUTPUT_NAME) REFERENCES EXPERIMENT_OUTPUT(EXPERIMENT_ID,OUTPUT_NAME) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE CHILD_JOB (
+        CHILD_JOB_ID varchar(255),
+        PARENT_JOB_ID varchar(255),
+        PARENT_TASK_ID varchar(255) NOT NULL,
+        JOB_INDEX int NOT NULL,
+        PRIMARY KEY (CHILD_JOB_ID),
+        FOREIGN KEY (PARENT_JOB_ID, PARENT_TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE CHILD_JOB_STATUS (
+        STATUS_ID varchar(255) NOT NULL,
+        CHILD_JOB_ID varchar(255) NOT NULL,
+        STATE varchar(255),
+        TIME_OF_STATE_CHANGE TIMESTAMP(6) DEFAULT NOW(6) ON UPDATE NOW(6),
+        REASON LONGTEXT,
+        PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
+        FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
index ddfd951..4ea8ba5 100644
--- a/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
+++ b/modules/job-monitor/email-monitor/src/main/java/org/apache/airavata/monitor/email/EmailBasedMonitor.java
@@ -286,8 +286,8 @@ public class EmailBasedMonitor extends AbstractMonitor implements Runnable {
     public void startServer() throws InterruptedException {
         Thread t = new Thread(this);
         t.start();
-        t.join();
     }
+
     public static void main(String args[]) throws Exception {
         EmailBasedMonitor monitor = new EmailBasedMonitor();
         monitor.startServer();
diff --git a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/JobStatusResult.java b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/JobStatusResult.java
index 97ebb5b..831b6f5 100644
--- a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/JobStatusResult.java
+++ b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/JobStatusResult.java
@@ -28,6 +28,8 @@ public class JobStatusResult {
     private String jobName;
     private boolean authoritative = true;
     private String publisherName;
+    private boolean isChildJob = false;
+    private int jobIndex = 0;
 
     public String getJobName() {
         return jobName;
@@ -68,5 +70,21 @@ public class JobStatusResult {
     public void setPublisherName(String publisherName) {
         this.publisherName = publisherName;
     }
+
+    public boolean isChildJob() {
+        return isChildJob;
+    }
+
+    public void setChildJob(boolean childJob) {
+        isChildJob = childJob;
+    }
+
+    public int getJobIndex() {
+        return jobIndex;
+    }
+
+    public void setJobIndex(int jobIndex) {
+        this.jobIndex = jobIndex;
+    }
 }
 
diff --git a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultDeserializer.java b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultDeserializer.java
index 8b7cfe7..c3429bf 100644
--- a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultDeserializer.java
+++ b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultDeserializer.java
@@ -40,6 +40,8 @@ public class JobStatusResultDeserializer implements Deserializer<JobStatusResult
         jobStatusResult.setJobName(parts[1]);
         jobStatusResult.setState(JobState.valueOf(parts[2]));
         jobStatusResult.setPublisherName(parts[3]);
+        jobStatusResult.setChildJob(Boolean.parseBoolean(parts[4]));
+        jobStatusResult.setJobIndex(Integer.parseInt(parts[5]));
         return jobStatusResult;
     }
 
diff --git a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultSerializer.java b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultSerializer.java
index 08207eb..d04e282 100644
--- a/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultSerializer.java
+++ b/modules/job-monitor/job-monitor-api/src/main/java/org/apache/airavata/monitor/kafka/JobStatusResultSerializer.java
@@ -36,7 +36,9 @@ public class JobStatusResultSerializer implements Serializer<JobStatusResult> {
         String serializedData = jobStatusResult.getJobId() + "," +
                 jobStatusResult.getJobName() + "," +
                 jobStatusResult.getState().name() + "," +
-                jobStatusResult.getPublisherName();
+                jobStatusResult.getPublisherName() + "," +
+                jobStatusResult.isChildJob() + "," +
+                jobStatusResult.getJobIndex();
         return serializedData.getBytes();
     }
 
diff --git a/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/RealtimeMonitor.java b/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/RealtimeMonitor.java
index 576ab34..96a369f 100644
--- a/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/RealtimeMonitor.java
+++ b/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/RealtimeMonitor.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 import java.util.Collections;
 import java.util.Properties;
 
-public class RealtimeMonitor extends AbstractMonitor {
+public class RealtimeMonitor extends AbstractMonitor implements Runnable {
 
     private static final Logger logger = LoggerFactory.getLogger(RealtimeMonitor.class);
 
@@ -61,27 +61,6 @@ public class RealtimeMonitor extends AbstractMonitor {
         return consumer;
     }
 
-    private void runConsumer() throws ApplicationSettingsException {
-        final Consumer<String, String> consumer = createConsumer();
-
-        while (true) {
-            final ConsumerRecords<String, String> consumerRecords = consumer.poll(1000);
-            consumerRecords.forEach(record -> {
-                RegistryService.Client registryClient = getRegistryClientPool().getResource();
-                try {
-                    process(record.value(), registryClient);
-                    getRegistryClientPool().returnResource(registryClient);
-                } catch (Exception e) {
-                    logger.error("Error while processing message " + record.value(), e);
-                    getRegistryClientPool().returnBrokenResource(registryClient);
-                    // ignore this error
-                }
-            });
-
-            consumer.commitAsync();
-        }
-    }
-
     private void process(String value, RegistryService.Client registryClient) throws MonitoringException {
         logger.info("Received data " + value);
         JobStatusResult statusResult = parser.parse(value, registryClient);
@@ -94,8 +73,39 @@ public class RealtimeMonitor extends AbstractMonitor {
 
     }
 
-    public static void main(String args[]) throws ApplicationSettingsException {
-        new RealtimeMonitor().runConsumer();
+    @Override
+    public void run() {
+
+        try {
+            final Consumer<String, String> consumer = createConsumer();
+
+            while (true) {
+                final ConsumerRecords<String, String> consumerRecords = consumer.poll(1000);
+                consumerRecords.forEach(record -> {
+                    RegistryService.Client registryClient = getRegistryClientPool().getResource();
+                    try {
+                        process(record.value(), registryClient);
+                        getRegistryClientPool().returnResource(registryClient);
+                    } catch (Exception e) {
+                        logger.error("Error while processing message " + record.value(), e);
+                        getRegistryClientPool().returnBrokenResource(registryClient);
+                        // ignore this error
+                    }
+                });
+
+                consumer.commitAsync();
+            }
+        } catch (Exception e) {
+            logger.error("Realtime monitor exited with error ", e);
+        }
+    }
+
+    public void startServer() throws InterruptedException {
+        Thread t = new Thread(this);
+        t.start();
     }
 
+    public static void main(String args[]) throws Exception {
+        new RealtimeMonitor().startServer();
+    }
 }
diff --git a/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/parser/RealtimeJobStatusParser.java b/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/parser/RealtimeJobStatusParser.java
index f99dcd5..604f2bd 100644
--- a/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/parser/RealtimeJobStatusParser.java
+++ b/modules/job-monitor/real-time-monitor/src/main/java/org/apache/airavata/monitor/realtime/parser/RealtimeJobStatusParser.java
@@ -66,6 +66,7 @@ public class RealtimeJobStatusParser {
                 String jobName = (String) asMap.get("jobName");
                 String status = (String) asMap.get("status");
                 String taskId = (String) asMap.get("task");
+                String jobIndex = (String) asMap.get("jobIndex");
 
                 if (jobName != null && status != null && taskId != null) {
 
@@ -118,6 +119,11 @@ public class RealtimeJobStatusParser {
                         jobStatusResult.setJobName(jobName);
                         jobStatusResult.setState(jobState);
                         jobStatusResult.setPublisherName(ServerSettings.getSetting("job.monitor.broker.publisher.id"));
+
+                        if (jobIndex != null) {
+                            jobStatusResult.setChildJob(true);
+                            jobStatusResult.setJobIndex(Integer.parseInt(jobIndex));
+                        }
                         return jobStatusResult;
                     } catch (Exception e) {
                         logger.error("Failed to fetch job id for job name " + jobName);
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobEntity.java
new file mode 100644
index 0000000..d3404e1
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobEntity.java
@@ -0,0 +1,103 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.List;
+
+@Entity
+@Table(name = "CHILD_JOB")
+public class ChildJobEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "CHILD_JOB_ID")
+    private String childJobId;
+
+    @Column(name = "PARENT_JOB_ID")
+    private String parentJobId;
+
+    @Column(name = "PARENT_TASK_ID")
+    private String parentTaskId;
+
+    @Column(name = "JOB_INDEX")
+    private int jobIndex;
+
+    @ManyToOne(targetEntity = JobEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+    @JoinColumns({
+            @JoinColumn(name = "PARENT_JOB_ID", referencedColumnName = "JOB_ID", nullable = false, updatable = false),
+            @JoinColumn(name = "PARENT_TASK_ID", referencedColumnName = "TASK_ID", nullable = false, updatable = false)
+    })
+    private JobEntity parentJob;
+
+    @OneToMany(targetEntity = ChildJobStatusEntity.class, cascade = CascadeType.ALL,
+            mappedBy = "job", fetch = FetchType.EAGER)
+    @OrderBy("timeOfStateChange ASC")
+    private List<ChildJobStatusEntity> jobStatuses;
+
+    public String getChildJobId() {
+        return childJobId;
+    }
+
+    public void setChildJobId(String childJobId) {
+        this.childJobId = childJobId;
+    }
+
+    public String getParentJobId() {
+        return parentJobId;
+    }
+
+    public void setParentJobId(String parentJobId) {
+        this.parentJobId = parentJobId;
+    }
+
+    public int getJobIndex() {
+        return jobIndex;
+    }
+
+    public void setJobIndex(int jobIndex) {
+        this.jobIndex = jobIndex;
+    }
+
+    public String getParentTaskId() {
+        return parentTaskId;
+    }
+
+    public void setParentTaskId(String parentTaskId) {
+        this.parentTaskId = parentTaskId;
+    }
+
+    public JobEntity getParentJob() {
+        return parentJob;
+    }
+
+    public void setParentJob(JobEntity parentJob) {
+        this.parentJob = parentJob;
+    }
+
+    public List<ChildJobStatusEntity> getJobStatuses() {
+        return jobStatuses;
+    }
+
+    public void setJobStatuses(List<ChildJobStatusEntity> jobStatuses) {
+        this.jobStatuses = jobStatuses;
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusEntity.java
new file mode 100644
index 0000000..e13af86
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusEntity.java
@@ -0,0 +1,105 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+import org.apache.airavata.model.status.JobState;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "CHILD_JOB_STATUS")
+@IdClass(ChildJobStatusPK.class)
+public class ChildJobStatusEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "CHILD_JOB_ID")
+    private String childJobId;
+
+    @Id
+    @Column(name = "STATUS_ID")
+    private String statusId;
+
+    @Column(name = "STATE")
+    @Enumerated(EnumType.STRING)
+    private JobState jobState;
+
+    @Column(name = "TIME_OF_STATE_CHANGE")
+    private Timestamp timeOfStateChange;
+
+    @Lob
+    @Column(name = "REASON")
+    private String reason;
+
+    @ManyToOne(targetEntity = ChildJobEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+    @JoinColumn(name = "CHILD_JOB_ID", referencedColumnName = "CHILD_JOB_ID")
+    private ChildJobEntity job;
+
+    public String getChildJobId() {
+        return childJobId;
+    }
+
+    public void setChildJobId(String childJobId) {
+        this.childJobId = childJobId;
+    }
+
+    public String getStatusId() {
+        return statusId;
+    }
+
+    public void setStatusId(String statusId) {
+        this.statusId = statusId;
+    }
+
+    public JobState getJobState() {
+        return jobState;
+    }
+
+    public void setJobState(JobState jobState) {
+        this.jobState = jobState;
+    }
+
+    public Timestamp getTimeOfStateChange() {
+        return timeOfStateChange;
+    }
+
+    public void setTimeOfStateChange(Timestamp timeOfStateChange) {
+        this.timeOfStateChange = timeOfStateChange;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public ChildJobEntity getJob() {
+        return job;
+    }
+
+    public void setJob(ChildJobEntity job) {
+        this.job = job;
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusPK.java
new file mode 100644
index 0000000..457b707
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ChildJobStatusPK.java
@@ -0,0 +1,66 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.airavata.registry.core.entities.expcatalog;
+
+public class ChildJobStatusPK {
+    //default serial version id, required for serializable classes.
+    private static final long serialVersionUID = 1L;
+
+    private String statusId;
+    private String childJobId;
+
+    public String getStatusId() {
+        return statusId;
+    }
+
+    public void setStatusId(String statusId) {
+        this.statusId = statusId;
+    }
+
+    public String getChildJobId() {
+        return childJobId;
+    }
+
+    public void setChildJobId(String childJobId) {
+        this.childJobId = childJobId;
+    }
+
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+        if (!(other instanceof ChildJobStatusPK)) {
+            return false;
+        }
+        ChildJobStatusPK castOther = (ChildJobStatusPK) other;
+        return
+                this.childJobId.equals(castOther.childJobId)
+                        && this.statusId.equals(castOther.statusId);
+    }
+
+    public int hashCode() {
+        final int prime = 31;
+        int hash = 17;
+        hash = hash * prime + this.childJobId.hashCode();
+        hash = hash * prime + this.statusId.hashCode();
+
+        return hash;
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ChildJobRepository.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ChildJobRepository.java
new file mode 100644
index 0000000..dc57ada
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ChildJobRepository.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.airavata.registry.core.repositories.expcatalog;
+
+import org.apache.airavata.model.job.ChildJobModel;
+import org.apache.airavata.registry.core.entities.expcatalog.ChildJobEntity;
+import org.apache.airavata.registry.core.utils.DBConstants;
+import org.apache.airavata.registry.core.utils.ExpCatalogUtils;
+import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
+import org.apache.airavata.registry.core.utils.QueryConstants;
+import org.apache.airavata.registry.cpi.RegistryException;
+import org.dozer.Mapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ChildJobRepository extends ExpCatAbstractRepository<ChildJobModel, ChildJobEntity, String>  {
+
+    private final static Logger logger = LoggerFactory.getLogger(ChildJobRepository.class);
+
+    public ChildJobRepository() { super(ChildJobModel.class, ChildJobEntity.class); }
+
+    protected String saveChildJob(ChildJobModel jobModel) throws RegistryException {
+
+        if (jobModel.getJobStatuses() != null) {
+            logger.debug("Populating the status ids of JobStatus objects for the Job");
+            jobModel.getJobStatuses().forEach(jobStatus -> {
+                if (jobStatus.getStatusId() == null) {
+                    jobStatus.setStatusId(ExpCatalogUtils.getID("CHILD_JOB_STATE"));
+                }
+            });
+        }
+
+        Mapper mapper = ObjectMapperSingleton.getInstance();
+        ChildJobEntity jobEntity = mapper.map(jobModel, ChildJobEntity.class);
+        populateParentIds(jobEntity);
+        ChildJobEntity savedJobEntity = execute(entityManager -> entityManager.merge(jobEntity));
+        return savedJobEntity.getChildJobId();
+    }
+
+    public String addChildJob(ChildJobModel jobModel) throws RegistryException {
+        return saveChildJob(jobModel);
+    }
+
+    public String updateChildJob(ChildJobModel jobModel) throws RegistryException {
+        return saveChildJob(jobModel);
+    }
+
+    public List<ChildJobModel> getChildJobsForParent(String parentJobId, String parentTaskId) {
+        Map<String, Object> queryParameters = new HashMap<>();
+        queryParameters.put(DBConstants.ChildJob.PARENT_JOB_ID, parentJobId);
+        queryParameters.put(DBConstants.ChildJob.PARENT_TASK_ID, parentTaskId);
+        List<ChildJobModel> childJobModels = select(QueryConstants.GET_CHILD_JOB_FOR_PARENT, -1, 0, queryParameters);
+        return childJobModels;
+    }
+
+    protected void populateParentIds(ChildJobEntity jobEntity) {
+
+        String jobId = jobEntity.getChildJobId();
+        if (jobEntity.getJobStatuses() != null) {
+            logger.debug("Populating the Primary Key of Child JobS tatus objects for the Job {}", jobId);
+            jobEntity.getJobStatuses().forEach(jobStatusEntity -> {
+                jobStatusEntity.setChildJobId(jobId);
+            });
+        }
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
index 133656a..33eecd0 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/DBConstants.java
@@ -139,6 +139,11 @@ public class DBConstants {
         public static final String JOB_ID = "jobId";
     }
 
+    public static class ChildJob {
+        public static final String PARENT_JOB_ID = "parentJobId";
+        public static final String PARENT_TASK_ID = "parentTaskId";
+    }
+
     public static class ExperimentSummary {
         public static final String FROM_DATE = "fromDate";
         public static final String TO_DATE = "toDate";
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
index 0e95e88..91c30ff 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/utils/QueryConstants.java
@@ -181,4 +181,7 @@ public interface QueryConstants {
 
     String FIND_EXPERIMENT_OUTPUT_VALUES = "SELECT O FROM " + ExperimentOutputValueEntity.class.getSimpleName() + " O " +
             "WHERE O.experimentId = :" + DBConstants.ExperimentOutputValue.EXPERIMENT_ID + " AND O.name = :" + DBConstants.ExperimentOutputValue.NAME;
+
+    String GET_CHILD_JOB_FOR_PARENT = "SELECT CJ FROM " + ChildJobEntity.class.getSimpleName() + " CJ " +
+            "WHERE CJ.parentJobId LIKE :" + DBConstants.ChildJob.PARENT_JOB_ID + " and CJ.parentTaskId LIKE :" + DBConstants.ChildJob.PARENT_TASK_ID;
 }
diff --git a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
index 835d577..1c2d1d7 100644
--- a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
@@ -118,6 +118,8 @@
         <class>org.apache.airavata.registry.core.entities.expcatalog.GatewayWorkerEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.JobEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.JobStatusEntity</class>
+        <class>org.apache.airavata.registry.core.entities.expcatalog.ChildJobEntity</class>
+        <class>org.apache.airavata.registry.core.entities.expcatalog.ChildJobStatusEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.NotificationEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessEntity</class>
         <class>org.apache.airavata.registry.core.entities.expcatalog.ProcessErrorEntity</class>
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index 85f12f1..c114869 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -397,6 +397,26 @@ CREATE TABLE QUEUE_STATUS(
         PRIMARY KEY (HOST_NAME, QUEUE_NAME, CREATED_TIME)
 );
 
+
+CREATE TABLE CHILD_JOB (
+        CHILD_JOB_ID varchar(255),
+        PARENT_JOB_ID varchar(255),
+        PARENT_TASK_ID varchar(255) NOT NULL,
+        JOB_INDEX int NOT NULL,
+        PRIMARY KEY (CHILD_JOB_ID),
+        FOREIGN KEY (PARENT_JOB_ID, PARENT_TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE CHILD_JOB_STATUS (
+        STATUS_ID varchar(255) NOT NULL,
+        CHILD_JOB_ID varchar(255) NOT NULL,
+        STATE varchar(255),
+        TIME_OF_STATE_CHANGE TIMESTAMP(6) DEFAULT NOW(6) ON UPDATE NOW(6),
+        REASON LONGTEXT,
+        PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
+        FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
+);
+
 CREATE TABLE CONFIGURATION
 (
         CONFIG_KEY VARCHAR(255),
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index cc3b06d..04f4160 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -409,6 +409,26 @@ CREATE TABLE QUEUE_STATUS(
         PRIMARY KEY (HOST_NAME, QUEUE_NAME, CREATED_TIME)
 )ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
+
+CREATE TABLE CHILD_JOB (
+        CHILD_JOB_ID varchar(255),
+        PARENT_JOB_ID varchar(255),
+        PARENT_TASK_ID varchar(255) NOT NULL,
+        JOB_INDEX int NOT NULL,
+        PRIMARY KEY (CHILD_JOB_ID),
+        FOREIGN KEY (PARENT_JOB_ID, PARENT_TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE CHILD_JOB_STATUS (
+        STATUS_ID varchar(255) NOT NULL,
+        CHILD_JOB_ID varchar(255) NOT NULL,
+        STATE varchar(255),
+        TIME_OF_STATE_CHANGE TIMESTAMP(6) DEFAULT NOW(6) ON UPDATE NOW(6),
+        REASON LONGTEXT,
+        PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
+        FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
 CREATE TABLE CONFIGURATION
 (
         CONFIG_KEY VARCHAR(255),
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index 8fa4dca..6860432 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -70,16 +70,12 @@ import org.apache.airavata.model.error.ExperimentNotFoundException;
 import org.apache.airavata.model.error.InvalidRequestException;
 import org.apache.airavata.model.error.ProjectNotFoundException;
 import org.apache.airavata.model.experiment.*;
+import org.apache.airavata.model.job.ChildJobModel;
 import org.apache.airavata.model.job.JobModel;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.process.ProcessWorkflow;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.status.ExperimentStatus;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.status.QueueStatusModel;
-import org.apache.airavata.model.status.TaskStatus;
+import org.apache.airavata.model.status.*;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.model.user.UserProfile;
 import org.apache.airavata.model.workspace.Gateway;
@@ -138,6 +134,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
     private TaskStatusRepository taskStatusRepository = new TaskStatusRepository();
     private TaskErrorRepository taskErrorRepository = new TaskErrorRepository();
     private JobRepository jobRepository = new JobRepository();
+    private ChildJobRepository childJobRepository = new ChildJobRepository();
     private JobStatusRepository jobStatusRepository = new JobStatusRepository();
     private QueueStatusRepository queueStatusRepository = new QueueStatusRepository();
     private DataProductRepository dataProductRepository = new DataProductRepository();
@@ -930,6 +927,37 @@ public class RegistryServerHandler implements RegistryService.Iface {
     }
 
     @Override
+    public void addChildJob(ChildJobModel jobModel) throws RegistryServiceException, TException {
+        try {
+            childJobRepository.addChildJob(jobModel);
+        } catch (Exception e) {
+            logger.error("Error while adding child job {} for parent job {}", jobModel.getChildJobId(), jobModel.getParentJobId(), e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while adding child job. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public List<ChildJobModel> getChildJobsOfJob(String parentJobId, String parentTaskId) throws RegistryServiceException, TException {
+        try {
+            return childJobRepository.getChildJobsForParent(parentJobId, parentTaskId);
+        } catch (Exception e) {
+            logger.error("Error while fetching child jobs {} for parent job {} and task {}", parentJobId, parentTaskId, e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while fetching child jobs. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public void addChildJobStatus(ChildJobStatus jobStatus, String childJobId) throws RegistryServiceException, TException {
+
+    }
+
+    @Override
     public String addProcess(ProcessModel processModel, String experimentId) throws RegistryServiceException, TException {
         try {
             return processRepository.addProcess(processModel, experimentId);
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
index 79486cc..7278827 100644
--- 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
@@ -720,6 +720,12 @@ public class RegistryService {
 
     public void addJob(org.apache.airavata.model.job.JobModel jobModel, java.lang.String processId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
+    public void addChildJob(org.apache.airavata.model.job.ChildJobModel jobModel) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public java.util.List<org.apache.airavata.model.job.ChildJobModel> getChildJobsOfJob(java.lang.String parentJobId, java.lang.String parentTaskId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void addChildJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
     public java.lang.String addProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String experimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
     public void updateProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String processId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
@@ -2698,6 +2704,12 @@ public class RegistryService {
 
     public void addJob(org.apache.airavata.model.job.JobModel jobModel, java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 
+    public void addChildJob(org.apache.airavata.model.job.ChildJobModel jobModel, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+
+    public void getChildJobsOfJob(java.lang.String parentJobId, java.lang.String parentTaskId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> resultHandler) throws org.apache.thrift.TException;
+
+    public void addChildJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+
     public void addProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String experimentId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
     public void updateProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
@@ -4165,6 +4177,80 @@ public class RegistryService {
       return;
     }
 
+    public void addChildJob(org.apache.airavata.model.job.ChildJobModel jobModel) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_addChildJob(jobModel);
+      recv_addChildJob();
+    }
+
+    public void send_addChildJob(org.apache.airavata.model.job.ChildJobModel jobModel) throws org.apache.thrift.TException
+    {
+      addChildJob_args args = new addChildJob_args();
+      args.setJobModel(jobModel);
+      sendBase("addChildJob", args);
+    }
+
+    public void recv_addChildJob() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      addChildJob_result result = new addChildJob_result();
+      receiveBase(result, "addChildJob");
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      return;
+    }
+
+    public java.util.List<org.apache.airavata.model.job.ChildJobModel> getChildJobsOfJob(java.lang.String parentJobId, java.lang.String parentTaskId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getChildJobsOfJob(parentJobId, parentTaskId);
+      return recv_getChildJobsOfJob();
+    }
+
+    public void send_getChildJobsOfJob(java.lang.String parentJobId, java.lang.String parentTaskId) throws org.apache.thrift.TException
+    {
+      getChildJobsOfJob_args args = new getChildJobsOfJob_args();
+      args.setParentJobId(parentJobId);
+      args.setParentTaskId(parentTaskId);
+      sendBase("getChildJobsOfJob", args);
+    }
+
+    public java.util.List<org.apache.airavata.model.job.ChildJobModel> recv_getChildJobsOfJob() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getChildJobsOfJob_result result = new getChildJobsOfJob_result();
+      receiveBase(result, "getChildJobsOfJob");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getChildJobsOfJob failed: unknown result");
+    }
+
+    public void addChildJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_addChildJobStatus(jobStatus, childJobId);
+      recv_addChildJobStatus();
+    }
+
+    public void send_addChildJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId) throws org.apache.thrift.TException
+    {
+      addChildJobStatus_args args = new addChildJobStatus_args();
+      args.setJobStatus(jobStatus);
+      args.setChildJobId(childJobId);
+      sendBase("addChildJobStatus", args);
+    }
+
+    public void recv_addChildJobStatus() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      addChildJobStatus_result result = new addChildJobStatus_result();
+      receiveBase(result, "addChildJobStatus");
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      return;
+    }
+
     public java.lang.String addProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String experimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
     {
       send_addProcess(processModel, experimentId);
@@ -9758,6 +9844,108 @@ public class RegistryService {
       }
     }
 
+    public void addChildJob(org.apache.airavata.model.job.ChildJobModel jobModel, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addChildJob_call method_call = new addChildJob_call(jobModel, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addChildJob_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+      private org.apache.airavata.model.job.ChildJobModel jobModel;
+      public addChildJob_call(org.apache.airavata.model.job.ChildJobModel jobModel, org.apache.thrift.async.AsyncMethodCallback<Void> 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.jobModel = jobModel;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addChildJob", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addChildJob_args args = new addChildJob_args();
+        args.setJobModel(jobModel);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Void getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.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 null;
+      }
+    }
+
+    public void getChildJobsOfJob(java.lang.String parentJobId, java.lang.String parentTaskId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getChildJobsOfJob_call method_call = new getChildJobsOfJob_call(parentJobId, parentTaskId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getChildJobsOfJob_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<org.apache.airavata.model.job.ChildJobModel>> {
+      private java.lang.String parentJobId;
+      private java.lang.String parentTaskId;
+      public getChildJobsOfJob_call(java.lang.String parentJobId, java.lang.String parentTaskId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> 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.parentJobId = parentJobId;
+        this.parentTaskId = parentTaskId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getChildJobsOfJob", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getChildJobsOfJob_args args = new getChildJobsOfJob_args();
+        args.setParentJobId(parentJobId);
+        args.setParentTaskId(parentTaskId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.util.List<org.apache.airavata.model.job.ChildJobModel> getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.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_getChildJobsOfJob();
+      }
+    }
+
+    public void addChildJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addChildJobStatus_call method_call = new addChildJobStatus_call(jobStatus, childJobId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addChildJobStatus_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+      private org.apache.airavata.model.status.ChildJobStatus jobStatus;
+      private java.lang.String childJobId;
+      public addChildJobStatus_call(org.apache.airavata.model.status.ChildJobStatus jobStatus, java.lang.String childJobId, org.apache.thrift.async.AsyncMethodCallback<Void> 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.jobStatus = jobStatus;
+        this.childJobId = childJobId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addChildJobStatus", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addChildJobStatus_args args = new addChildJobStatus_args();
+        args.setJobStatus(jobStatus);
+        args.setChildJobId(childJobId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Void getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.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 null;
+      }
+    }
+
     public void addProcess(org.apache.airavata.model.process.ProcessModel processModel, java.lang.String experimentId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addProcess_call method_call = new addProcess_call(processModel, experimentId, resultHandler, this, ___protocolFactory, ___transport);
@@ -15062,6 +15250,9 @@ public class RegistryService {
       processMap.put("updateExperimentStatus", new updateExperimentStatus());
       processMap.put("addJobStatus", new addJobStatus());
       processMap.put("addJob", new addJob());
+      processMap.put("addChildJob", new addChildJob());
+      processMap.put("getChildJobsOfJob", new getChildJobsOfJob());
+      processMap.put("addChildJobStatus", new addChildJobStatus());
       processMap.put("addProcess", new addProcess());
       processMap.put("updateProcess", new updateProcess());
       processMap.put("addTask", new addTask());
@@ -16259,6 +16450,78 @@ public class RegistryService {
       }
     }
 
+    public static class addChildJob<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addChildJob_args> {
+      public addChildJob() {
+        super("addChildJob");
+      }
+
+      public addChildJob_args getEmptyArgsInstance() {
+        return new addChildJob_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addChildJob_result getResult(I iface, addChildJob_args args) throws org.apache.thrift.TException {
+        addChildJob_result result = new addChildJob_result();
+        try {
+          iface.addChildJob(args.jobModel);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getChildJobsOfJob<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getChildJobsOfJob_args> {
+      public getChildJobsOfJob() {
+        super("getChildJobsOfJob");
+      }
+
+      public getChildJobsOfJob_args getEmptyArgsInstance() {
+        return new getChildJobsOfJob_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getChildJobsOfJob_result getResult(I iface, getChildJobsOfJob_args args) throws org.apache.thrift.TException {
+        getChildJobsOfJob_result result = new getChildJobsOfJob_result();
+        try {
+          result.success = iface.getChildJobsOfJob(args.parentJobId, args.parentTaskId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class addChildJobStatus<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addChildJobStatus_args> {
+      public addChildJobStatus() {
+        super("addChildJobStatus");
+      }
+
+      public addChildJobStatus_args getEmptyArgsInstance() {
+        return new addChildJobStatus_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addChildJobStatus_result getResult(I iface, addChildJobStatus_args args) throws org.apache.thrift.TException {
+        addChildJobStatus_result result = new addChildJobStatus_result();
+        try {
+          iface.addChildJobStatus(args.jobStatus, args.childJobId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
     public static class addProcess<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addProcess_args> {
       public addProcess() {
         super("addProcess");
@@ -20066,6 +20329,9 @@ public class RegistryService {
       processMap.put("updateExperimentStatus", new updateExperimentStatus());
       processMap.put("addJobStatus", new addJobStatus());
       processMap.put("addJob", new addJob());
+      processMap.put("addChildJob", new addChildJob());
+      processMap.put("getChildJobsOfJob", new getChildJobsOfJob());
+      processMap.put("addChildJobStatus", new addChildJobStatus());
       processMap.put("addProcess", new addProcess());
       processMap.put("updateProcess", new updateProcess());
       processMap.put("addTask", new addTask());
@@ -22997,21 +23263,20 @@ public class RegistryService {
       }
     }
 
-    public static class addProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcess_args, java.lang.String> {
-      public addProcess() {
-        super("addProcess");
+    public static class addChildJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJob_args, Void> {
+      public addChildJob() {
+        super("addChildJob");
       }
 
-      public addProcess_args getEmptyArgsInstance() {
-        return new addProcess_args();
+      public addChildJob_args getEmptyArgsInstance() {
+        return new addChildJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addProcess_result result = new addProcess_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addChildJob_result result = new addChildJob_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23025,7 +23290,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addProcess_result result = new addProcess_result();
+            addChildJob_result result = new addChildJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23057,25 +23322,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addProcess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addProcess(args.processModel, args.experimentId,resultHandler);
+      public void start(I iface, addChildJob_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addChildJob(args.jobModel,resultHandler);
       }
     }
 
-    public static class updateProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcess_args, Void> {
-      public updateProcess() {
-        super("updateProcess");
+    public static class getChildJobsOfJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildJobsOfJob_args, java.util.List<org.apache.airavata.model.job.ChildJobModel>> {
+      public getChildJobsOfJob() {
+        super("getChildJobsOfJob");
       }
 
-      public updateProcess_args getEmptyArgsInstance() {
-        return new updateProcess_args();
+      public getChildJobsOfJob_args getEmptyArgsInstance() {
+        return new getChildJobsOfJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateProcess_result result = new updateProcess_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.job.ChildJobModel> o) {
+            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23089,7 +23355,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateProcess_result result = new updateProcess_result();
+            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23121,26 +23387,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateProcess_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateProcess(args.processModel, args.processId,resultHandler);
+      public void start(I iface, getChildJobsOfJob_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getChildJobsOfJob(args.parentJobId, args.parentTaskId,resultHandler);
       }
     }
 
-    public static class addTask<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTask_args, java.lang.String> {
-      public addTask() {
-        super("addTask");
+    public static class addChildJobStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJobStatus_args, Void> {
+      public addChildJobStatus() {
+        super("addChildJobStatus");
       }
 
-      public addTask_args getEmptyArgsInstance() {
-        return new addTask_args();
+      public addChildJobStatus_args getEmptyArgsInstance() {
+        return new addChildJobStatus_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addTask_result result = new addTask_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addChildJobStatus_result result = new addChildJobStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23154,7 +23419,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addTask_result result = new addTask_result();
+            addChildJobStatus_result result = new addChildJobStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23186,25 +23451,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addTask_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addTask(args.taskModel, args.processId,resultHandler);
+      public void start(I iface, addChildJobStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addChildJobStatus(args.jobStatus, args.childJobId,resultHandler);
       }
     }
 
-    public static class getUserConfigurationData<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserConfigurationData_args, org.apache.airavata.model.experiment.UserConfigurationDataModel> {
-      public getUserConfigurationData() {
-        super("getUserConfigurationData");
+    public static class addProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcess_args, java.lang.String> {
+      public addProcess() {
+        super("addProcess");
       }
 
-      public getUserConfigurationData_args getEmptyArgsInstance() {
-        return new getUserConfigurationData_args();
+      public addProcess_args getEmptyArgsInstance() {
+        return new addProcess_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel>() { 
-          public void onComplete(org.apache.airavata.model.experiment.UserConfigurationDataModel o) {
-            getUserConfigurationData_result result = new getUserConfigurationData_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addProcess_result result = new addProcess_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23219,7 +23484,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserConfigurationData_result result = new getUserConfigurationData_result();
+            addProcess_result result = new addProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23251,26 +23516,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUserConfigurationData_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserConfigurationData(args.experimentId,resultHandler);
+      public void start(I iface, addProcess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addProcess(args.processModel, args.experimentId,resultHandler);
       }
     }
 
-    public static class getProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcess_args, org.apache.airavata.model.process.ProcessModel> {
-      public getProcess() {
-        super("getProcess");
+    public static class updateProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcess_args, Void> {
+      public updateProcess() {
+        super("updateProcess");
       }
 
-      public getProcess_args getEmptyArgsInstance() {
-        return new getProcess_args();
+      public updateProcess_args getEmptyArgsInstance() {
+        return new updateProcess_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel>() { 
-          public void onComplete(org.apache.airavata.model.process.ProcessModel o) {
-            getProcess_result result = new getProcess_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateProcess_result result = new updateProcess_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23284,7 +23548,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcess_result result = new getProcess_result();
+            updateProcess_result result = new updateProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23316,25 +23580,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcess_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcess(args.processId,resultHandler);
+      public void start(I iface, updateProcess_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateProcess(args.processModel, args.processId,resultHandler);
       }
     }
 
-    public static class getProcessList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessList_args, java.util.List<org.apache.airavata.model.process.ProcessModel>> {
-      public getProcessList() {
-        super("getProcessList");
+    public static class addTask<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTask_args, java.lang.String> {
+      public addTask() {
+        super("addTask");
       }
 
-      public getProcessList_args getEmptyArgsInstance() {
-        return new getProcessList_args();
+      public addTask_args getEmptyArgsInstance() {
+        return new addTask_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessModel> o) {
-            getProcessList_result result = new getProcessList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addTask_result result = new addTask_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23349,7 +23613,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessList_result result = new getProcessList_result();
+            addTask_result result = new addTask_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23381,25 +23645,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessList(args.experimentId,resultHandler);
+      public void start(I iface, addTask_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addTask(args.taskModel, args.processId,resultHandler);
       }
     }
 
-    public static class getProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessStatus_args, org.apache.airavata.model.status.ProcessStatus> {
-      public getProcessStatus() {
-        super("getProcessStatus");
+    public static class getUserConfigurationData<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserConfigurationData_args, org.apache.airavata.model.experiment.UserConfigurationDataModel> {
+      public getUserConfigurationData() {
+        super("getUserConfigurationData");
       }
 
-      public getProcessStatus_args getEmptyArgsInstance() {
-        return new getProcessStatus_args();
+      public getUserConfigurationData_args getEmptyArgsInstance() {
+        return new getUserConfigurationData_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus>() { 
-          public void onComplete(org.apache.airavata.model.status.ProcessStatus o) {
-            getProcessStatus_result result = new getProcessStatus_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel>() { 
+          public void onComplete(org.apache.airavata.model.experiment.UserConfigurationDataModel o) {
+            getUserConfigurationData_result result = new getUserConfigurationData_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23414,7 +23678,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessStatus_result result = new getProcessStatus_result();
+            getUserConfigurationData_result result = new getUserConfigurationData_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23446,27 +23710,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessStatus(args.processId,resultHandler);
+      public void start(I iface, getUserConfigurationData_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserConfigurationData(args.experimentId,resultHandler);
       }
     }
 
-    public static class isJobExist<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isJobExist_args, java.lang.Boolean> {
-      public isJobExist() {
-        super("isJobExist");
+    public static class getProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcess_args, org.apache.airavata.model.process.ProcessModel> {
+      public getProcess() {
+        super("getProcess");
       }
 
-      public isJobExist_args getEmptyArgsInstance() {
-        return new isJobExist_args();
+      public getProcess_args getEmptyArgsInstance() {
+        return new getProcess_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            isJobExist_result result = new isJobExist_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel>() { 
+          public void onComplete(org.apache.airavata.model.process.ProcessModel o) {
+            getProcess_result result = new getProcess_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23480,7 +23743,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isJobExist_result result = new isJobExist_result();
+            getProcess_result result = new getProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23512,25 +23775,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, isJobExist_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isJobExist(args.queryType, args.id,resultHandler);
+      public void start(I iface, getProcess_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcess(args.processId,resultHandler);
       }
     }
 
-    public static class getJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJob_args, org.apache.airavata.model.job.JobModel> {
-      public getJob() {
-        super("getJob");
+    public static class getProcessList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessList_args, java.util.List<org.apache.airavata.model.process.ProcessModel>> {
+      public getProcessList() {
+        super("getProcessList");
       }
 
-      public getJob_args getEmptyArgsInstance() {
-        return new getJob_args();
+      public getProcessList_args getEmptyArgsInstance() {
+        return new getProcessList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel>() { 
-          public void onComplete(org.apache.airavata.model.job.JobModel o) {
-            getJob_result result = new getJob_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessModel> o) {
+            getProcessList_result result = new getProcessList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23545,7 +23808,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJob_result result = new getJob_result();
+            getProcessList_result result = new getProcessList_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23577,25 +23840,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJob_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getJob(args.queryType, args.id,resultHandler);
+      public void start(I iface, getProcessList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessList(args.experimentId,resultHandler);
       }
     }
 
-    public static class getJobs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobs_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
-      public getJobs() {
-        super("getJobs");
+    public static class getProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessStatus_args, org.apache.airavata.model.status.ProcessStatus> {
+      public getProcessStatus() {
+        super("getProcessStatus");
       }
 
-      public getJobs_args getEmptyArgsInstance() {
-        return new getJobs_args();
+      public getProcessStatus_args getEmptyArgsInstance() {
+        return new getProcessStatus_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.job.JobModel> o) {
-            getJobs_result result = new getJobs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus>() { 
+          public void onComplete(org.apache.airavata.model.status.ProcessStatus o) {
+            getProcessStatus_result result = new getProcessStatus_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23610,7 +23873,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJobs_result result = new getJobs_result();
+            getProcessStatus_result result = new getProcessStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23642,26 +23905,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJobs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getJobs(args.queryType, args.id,resultHandler);
+      public void start(I iface, getProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessStatus(args.processId,resultHandler);
       }
     }
 
-    public static class getProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
-      public getProcessOutputs() {
-        super("getProcessOutputs");
+    public static class isJobExist<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isJobExist_args, java.lang.Boolean> {
+      public isJobExist() {
+        super("isJobExist");
       }
 
-      public getProcessOutputs_args getEmptyArgsInstance() {
-        return new getProcessOutputs_args();
+      public isJobExist_args getEmptyArgsInstance() {
+        return new isJobExist_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
-            getProcessOutputs_result result = new getProcessOutputs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            isJobExist_result result = new isJobExist_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23675,7 +23939,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessOutputs_result result = new getProcessOutputs_result();
+            isJobExist_result result = new isJobExist_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23707,25 +23971,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessOutputs(args.processId,resultHandler);
+      public void start(I iface, isJobExist_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isJobExist(args.queryType, args.id,resultHandler);
       }
     }
 
-    public static class getProcessWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessWorkflows_args, java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> {
-      public getProcessWorkflows() {
-        super("getProcessWorkflows");
+    public static class getJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJob_args, org.apache.airavata.model.job.JobModel> {
+      public getJob() {
+        super("getJob");
       }
 
-      public getProcessWorkflows_args getEmptyArgsInstance() {
-        return new getProcessWorkflows_args();
+      public getJob_args getEmptyArgsInstance() {
+        return new getJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessWorkflow> o) {
-            getProcessWorkflows_result result = new getProcessWorkflows_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel>() { 
+          public void onComplete(org.apache.airavata.model.job.JobModel o) {
+            getJob_result result = new getJob_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23740,71 +24004,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessWorkflows_result result = new getProcessWorkflows_result();
-            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
-              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
-              result.setRseIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
-              _LOGGER.error("TTransportException inside handler", e);
-              fb.close();
-              return;
-            } else if (e instanceof org.apache.thrift.TApplicationException) {
-              _LOGGER.error("TApplicationException inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TApplicationException)e;
-            } else {
-              _LOGGER.error("Exception inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-            } catch (java.lang.Exception ex) {
-              _LOGGER.error("Exception writing to internal frame buffer", ex);
-              fb.close();
-            }
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getProcessWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessWorkflows(args.processId,resultHandler);
-      }
-    }
-
-    public static class addProcessWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessWorkflow_args, Void> {
-      public addProcessWorkflow() {
-        super("addProcessWorkflow");
-      }
-
-      public addProcessWorkflow_args getEmptyArgsInstance() {
-        return new addProcessWorkflow_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            addProcessWorkflow_result result = new addProcessWorkflow_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            addProcessWorkflow_result result = new addProcessWorkflow_result();
+            getJob_result result = new getJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23836,25 +24036,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addProcessWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addProcessWorkflow(args.processWorkflow,resultHandler);
+      public void start(I iface, getJob_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getJob(args.queryType, args.id,resultHandler);
       }
     }
 
-    public static class getProcessIds<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessIds_args, java.util.List<java.lang.String>> {
-      public getProcessIds() {
-        super("getProcessIds");
+    public static class getJobs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobs_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
+      public getJobs() {
+        super("getJobs");
       }
 
-      public getProcessIds_args getEmptyArgsInstance() {
-        return new getProcessIds_args();
+      public getJobs_args getEmptyArgsInstance() {
+        return new getJobs_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
-          public void onComplete(java.util.List<java.lang.String> o) {
-            getProcessIds_result result = new getProcessIds_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.job.JobModel> o) {
+            getJobs_result result = new getJobs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23869,7 +24069,266 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessIds_result result = new getProcessIds_result();
+            getJobs_result result = new getJobs_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+              result.setRseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getJobs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getJobs(args.queryType, args.id,resultHandler);
+      }
+    }
+
+    public static class getProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      public getProcessOutputs() {
+        super("getProcessOutputs");
+      }
+
+      public getProcessOutputs_args getEmptyArgsInstance() {
+        return new getProcessOutputs_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
+            getProcessOutputs_result result = new getProcessOutputs_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getProcessOutputs_result result = new getProcessOutputs_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+              result.setRseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessOutputs(args.processId,resultHandler);
+      }
+    }
+
+    public static class getProcessWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessWorkflows_args, java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> {
+      public getProcessWorkflows() {
+        super("getProcessWorkflows");
+      }
+
+      public getProcessWorkflows_args getEmptyArgsInstance() {
+        return new getProcessWorkflows_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessWorkflow> o) {
+            getProcessWorkflows_result result = new getProcessWorkflows_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getProcessWorkflows_result result = new getProcessWorkflows_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+              result.setRseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getProcessWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessWorkflows(args.processId,resultHandler);
+      }
+    }
+
+    public static class addProcessWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessWorkflow_args, Void> {
+      public addProcessWorkflow() {
+        super("addProcessWorkflow");
+      }
+
+      public addProcessWorkflow_args getEmptyArgsInstance() {
+        return new addProcessWorkflow_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addProcessWorkflow_result result = new addProcessWorkflow_result();
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            addProcessWorkflow_result result = new addProcessWorkflow_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+              result.setRseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, addProcessWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addProcessWorkflow(args.processWorkflow,resultHandler);
+      }
+    }
+
+    public static class getProcessIds<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessIds_args, java.util.List<java.lang.String>> {
+      public getProcessIds() {
+        super("getProcessIds");
+      }
+
+      public getProcessIds_args getEmptyArgsInstance() {
+        return new getProcessIds_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getProcessIds_result result = new getProcessIds_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getProcessIds_result result = new getProcessIds_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -73159,22 +73618,19 @@ public class RegistryService {
     }
   }
 
-  public static class addProcess_args implements org.apache.thrift.TBase<addProcess_args, addProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<addProcess_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcess_args");
+  public static class addChildJob_args implements org.apache.thrift.TBase<addChildJob_args, addChildJob_args._Fields>, java.io.Serializable, Cloneable, Comparable<addChildJob_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addChildJob_args");
 
-    private static final org.apache.thrift.protocol.TField PROCESS_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("processModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField JOB_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("jobModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcess_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcess_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addChildJob_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addChildJob_argsTupleSchemeFactory();
 
-    public org.apache.airavata.model.process.ProcessModel processModel; // required
-    public java.lang.String experimentId; // required
+    public org.apache.airavata.model.job.ChildJobModel jobModel; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROCESS_MODEL((short)1, "processModel"),
-      EXPERIMENT_ID((short)2, "experimentId");
+      JOB_MODEL((short)1, "jobModel");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -73189,10 +73645,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // PROCESS_MODEL
-            return PROCESS_MODEL;
-          case 2: // EXPERIMENT_ID
-            return EXPERIMENT_ID;
+          case 1: // JOB_MODEL
+            return JOB_MODEL;
           default:
             return null;
         }
@@ -73236,111 +73690,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.PROCESS_MODEL, new org.apache.thrift.meta_data.FieldMetaData("processModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
-      tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.JOB_MODEL, new org.apache.thrift.meta_data.FieldMetaData("jobModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.ChildJobModel.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcess_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addChildJob_args.class, metaDataMap);
     }
 
-    public addProcess_args() {
+    public addChildJob_args() {
     }
 
-    public addProcess_args(
-      org.apache.airavata.model.process.ProcessModel processModel,
-      java.lang.String experimentId)
+    public addChildJob_args(
+      org.apache.airavata.model.job.ChildJobModel jobModel)
     {
       this();
-      this.processModel = processModel;
-      this.experimentId = experimentId;
+      this.jobModel = jobModel;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addProcess_args(addProcess_args other) {
-      if (other.isSetProcessModel()) {
-        this.processModel = new org.apache.airavata.model.process.ProcessModel(other.processModel);
-      }
-      if (other.isSetExperimentId()) {
-        this.experimentId = other.experimentId;
+    public addChildJob_args(addChildJob_args other) {
+      if (other.isSetJobModel()) {
+        this.jobModel = new org.apache.airavata.model.job.ChildJobModel(other.jobModel);
       }
     }
 
-    public addProcess_args deepCopy() {
-      return new addProcess_args(this);
+    public addChildJob_args deepCopy() {
+      return new addChildJob_args(this);
     }
 
     @Override
     public void clear() {
-      this.processModel = null;
-      this.experimentId = null;
-    }
-
-    public org.apache.airavata.model.process.ProcessModel getProcessModel() {
-      return this.processModel;
-    }
-
-    public addProcess_args setProcessModel(org.apache.airavata.model.process.ProcessModel processModel) {
-      this.processModel = processModel;
-      return this;
-    }
-
-    public void unsetProcessModel() {
-      this.processModel = null;
-    }
-
-    /** Returns true if field processModel is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessModel() {
-      return this.processModel != null;
-    }
-
-    public void setProcessModelIsSet(boolean value) {
-      if (!value) {
-        this.processModel = null;
-      }
+      this.jobModel = null;
     }
 
-    public java.lang.String getExperimentId() {
-      return this.experimentId;
+    public org.apache.airavata.model.job.ChildJobModel getJobModel() {
+      return this.jobModel;
     }
 
-    public addProcess_args setExperimentId(java.lang.String experimentId) {
-      this.experimentId = experimentId;
+    public addChildJob_args setJobModel(org.apache.airavata.model.job.ChildJobModel jobModel) {
+      this.jobModel = jobModel;
       return this;
     }
 
-    public void unsetExperimentId() {
-      this.experimentId = null;
+    public void unsetJobModel() {
+      this.jobModel = null;
     }
 
-    /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
-    public boolean isSetExperimentId() {
-      return this.experimentId != null;
+    /** Returns true if field jobModel is set (has been assigned a value) and false otherwise */
+    public boolean isSetJobModel() {
+      return this.jobModel != null;
     }
 
-    public void setExperimentIdIsSet(boolean value) {
+    public void setJobModelIsSet(boolean value) {
       if (!value) {
-        this.experimentId = null;
+        this.jobModel = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case PROCESS_MODEL:
-        if (value == null) {
-          unsetProcessModel();
-        } else {
-          setProcessModel((org.apache.airavata.model.process.ProcessModel)value);
-        }
-        break;
-
-      case EXPERIMENT_ID:
+      case JOB_MODEL:
         if (value == null) {
-          unsetExperimentId();
+          unsetJobModel();
         } else {
-          setExperimentId((java.lang.String)value);
+          setJobModel((org.apache.airavata.model.job.ChildJobModel)value);
         }
         break;
 
@@ -73349,11 +73763,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case PROCESS_MODEL:
-        return getProcessModel();
-
-      case EXPERIMENT_ID:
-        return getExperimentId();
+      case JOB_MODEL:
+        return getJobModel();
 
       }
       throw new java.lang.IllegalStateException();
@@ -73366,10 +73777,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case PROCESS_MODEL:
-        return isSetProcessModel();
-      case EXPERIMENT_ID:
-        return isSetExperimentId();
+      case JOB_MODEL:
+        return isSetJobModel();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -73378,32 +73787,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addProcess_args)
-        return this.equals((addProcess_args)that);
+      if (that instanceof addChildJob_args)
+        return this.equals((addChildJob_args)that);
       return false;
     }
 
-    public boolean equals(addProcess_args that) {
+    public boolean equals(addChildJob_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_processModel = true && this.isSetProcessModel();
-      boolean that_present_processModel = true && that.isSetProcessModel();
-      if (this_present_processModel || that_present_processModel) {
-        if (!(this_present_processModel && that_present_processModel))
-          return false;
-        if (!this.processModel.equals(that.processModel))
-          return false;
-      }
-
-      boolean this_present_experimentId = true && this.isSetExperimentId();
-      boolean that_present_experimentId = true && that.isSetExperimentId();
-      if (this_present_experimentId || that_present_experimentId) {
-        if (!(this_present_experimentId && that_present_experimentId))
+      boolean this_present_jobModel = true && this.isSetJobModel();
+      boolean that_present_jobModel = true && that.isSetJobModel();
+      if (this_present_jobModel || that_present_jobModel) {
+        if (!(this_present_jobModel && that_present_jobModel))
           return false;
-        if (!this.experimentId.equals(that.experimentId))
+        if (!this.jobModel.equals(that.jobModel))
           return false;
       }
 
@@ -73414,41 +73814,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetProcessModel()) ? 131071 : 524287);
-      if (isSetProcessModel())
-        hashCode = hashCode * 8191 + processModel.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
-      if (isSetExperimentId())
-        hashCode = hashCode * 8191 + experimentId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetJobModel()) ? 131071 : 524287);
+      if (isSetJobModel())
+        hashCode = hashCode * 8191 + jobModel.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(addProcess_args other) {
+    public int compareTo(addChildJob_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetProcessModel()).compareTo(other.isSetProcessModel());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetProcessModel()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processModel, other.processModel);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+      lastComparison = java.lang.Boolean.valueOf(isSetJobModel()).compareTo(other.isSetJobModel());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetExperimentId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (isSetJobModel()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobModel, other.jobModel);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -73470,22 +73856,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcess_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addChildJob_args(");
       boolean first = true;
 
-      sb.append("processModel:");
-      if (this.processModel == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.processModel);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("experimentId:");
-      if (this.experimentId == null) {
+      sb.append("jobModel:");
+      if (this.jobModel == null) {
         sb.append("null");
       } else {
-        sb.append(this.experimentId);
+        sb.append(this.jobModel);
       }
       first = false;
       sb.append(")");
@@ -73494,15 +73872,12 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (processModel == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processModel' was not present! Struct: " + toString());
-      }
-      if (experimentId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+      if (jobModel == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobModel' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (processModel != null) {
-        processModel.validate();
+      if (jobModel != null) {
+        jobModel.validate();
       }
     }
 
@@ -73522,15 +73897,15 @@ public class RegistryService {
       }
     }
 
-    private static class addProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addProcess_argsStandardScheme getScheme() {
-        return new addProcess_argsStandardScheme();
+    private static class addChildJob_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJob_argsStandardScheme getScheme() {
+        return new addChildJob_argsStandardScheme();
       }
     }
 
-    private static class addProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcess_args> {
+    private static class addChildJob_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addChildJob_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addChildJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -73540,19 +73915,11 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // PROCESS_MODEL
+            case 1: // JOB_MODEL
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.processModel = new org.apache.airavata.model.process.ProcessModel();
-                struct.processModel.read(iprot);
-                struct.setProcessModelIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // EXPERIMENT_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.experimentId = iprot.readString();
-                struct.setExperimentIdIsSet(true);
+                struct.jobModel = new org.apache.airavata.model.job.ChildJobModel();
+                struct.jobModel.read(iprot);
+                struct.setJobModelIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -73568,18 +73935,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addChildJob_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.processModel != null) {
-          oprot.writeFieldBegin(PROCESS_MODEL_FIELD_DESC);
-          struct.processModel.write(oprot);
-          oprot.writeFieldEnd();
-        }
-        if (struct.experimentId != null) {
-          oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.experimentId);
+        if (struct.jobModel != null) {
+          oprot.writeFieldBegin(JOB_MODEL_FIELD_DESC);
+          struct.jobModel.write(oprot);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -73588,29 +73950,26 @@ public class RegistryService {
 
     }
 
-    private static class addProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addProcess_argsTupleScheme getScheme() {
-        return new addProcess_argsTupleScheme();
+    private static class addChildJob_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJob_argsTupleScheme getScheme() {
+        return new addChildJob_argsTupleScheme();
       }
     }
 
-    private static class addProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcess_args> {
+    private static class addChildJob_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addChildJob_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addChildJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.processModel.write(oprot);
-        oprot.writeString(struct.experimentId);
+        struct.jobModel.write(oprot);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addChildJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.processModel = new org.apache.airavata.model.process.ProcessModel();
-        struct.processModel.read(iprot);
-        struct.setProcessModelIsSet(true);
-        struct.experimentId = iprot.readString();
-        struct.setExperimentIdIsSet(true);
+        struct.jobModel = new org.apache.airavata.model.job.ChildJobModel();
+        struct.jobModel.read(iprot);
+        struct.setJobModelIsSet(true);
       }
     }
 
@@ -73619,21 +73978,18 @@ public class RegistryService {
     }
   }
 
-  public static class addProcess_result implements org.apache.thrift.TBase<addProcess_result, addProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<addProcess_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcess_result");
+  public static class addChildJob_result implements org.apache.thrift.TBase<addChildJob_result, addChildJob_result._Fields>, java.io.Serializable, Cloneable, Comparable<addChildJob_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addChildJob_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcess_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcess_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addChildJob_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addChildJob_resultTupleSchemeFactory();
 
-    public java.lang.String success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      SUCCESS((short)0, "success"),
       RSE((short)1, "rse");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -73649,8 +74005,6 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
           case 1: // RSE
             return RSE;
           default:
@@ -73696,77 +74050,45 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcess_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addChildJob_result.class, metaDataMap);
     }
 
-    public addProcess_result() {
+    public addChildJob_result() {
     }
 
-    public addProcess_result(
-      java.lang.String success,
+    public addChildJob_result(
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
-      this.success = success;
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addProcess_result(addProcess_result other) {
-      if (other.isSetSuccess()) {
-        this.success = other.success;
-      }
+    public addChildJob_result(addChildJob_result other) {
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public addProcess_result deepCopy() {
-      return new addProcess_result(this);
+    public addChildJob_result deepCopy() {
+      return new addChildJob_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
       this.rse = null;
     }
 
-    public java.lang.String getSuccess() {
-      return this.success;
-    }
-
-    public addProcess_result setSuccess(java.lang.String success) {
-      this.success = success;
-      return this;
-    }
-
-    public void unsetSuccess() {
-      this.success = null;
-    }
-
-    /** Returns true if field success is set (has been assigned a value) and false otherwise */
-    public boolean isSetSuccess() {
-      return this.success != null;
-    }
-
-    public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
-    }
-
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public addProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public addChildJob_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -73788,14 +74110,6 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case SUCCESS:
-        if (value == null) {
-          unsetSuccess();
-        } else {
-          setSuccess((java.lang.String)value);
-        }
-        break;
-
       case RSE:
         if (value == null) {
           unsetRse();
@@ -73809,9 +74123,6 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case SUCCESS:
-        return getSuccess();
-
       case RSE:
         return getRse();
 
@@ -73826,8 +74137,6 @@ public class RegistryService {
       }
 
       switch (field) {
-      case SUCCESS:
-        return isSetSuccess();
       case RSE:
         return isSetRse();
       }
@@ -73838,26 +74147,17 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addProcess_result)
-        return this.equals((addProcess_result)that);
+      if (that instanceof addChildJob_result)
+        return this.equals((addChildJob_result)that);
       return false;
     }
 
-    public boolean equals(addProcess_result that) {
+    public boolean equals(addChildJob_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
-      if (this_present_success || that_present_success) {
-        if (!(this_present_success && that_present_success))
-          return false;
-        if (!this.success.equals(that.success))
-          return false;
-      }
-
       boolean this_present_rse = true && this.isSetRse();
       boolean that_present_rse = true && that.isSetRse();
       if (this_present_rse || that_present_rse) {
@@ -73874,10 +74174,6 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
-
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
         hashCode = hashCode * 8191 + rse.hashCode();
@@ -73886,23 +74182,13 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(addProcess_result other) {
+    public int compareTo(addChildJob_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetSuccess()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
       if (lastComparison != 0) {
         return lastComparison;
@@ -73930,17 +74216,9 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcess_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addChildJob_result(");
       boolean first = true;
 
-      sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("rse:");
       if (this.rse == null) {
         sb.append("null");
@@ -73973,15 +74251,15 @@ public class RegistryService {
       }
     }
 
-    private static class addProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addProcess_resultStandardScheme getScheme() {
-        return new addProcess_resultStandardScheme();
+    private static class addChildJob_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJob_resultStandardScheme getScheme() {
+        return new addChildJob_resultStandardScheme();
       }
     }
 
-    private static class addProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcess_result> {
+    private static class addChildJob_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addChildJob_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addChildJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -73991,14 +74269,6 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
-                struct.setSuccessIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
             case 1: // RSE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
@@ -74019,15 +74289,10 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addChildJob_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
-          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
-          oprot.writeFieldEnd();
-        }
         if (struct.rse != null) {
           oprot.writeFieldBegin(RSE_FIELD_DESC);
           struct.rse.write(oprot);
@@ -74039,42 +74304,32 @@ public class RegistryService {
 
     }
 
-    private static class addProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addProcess_resultTupleScheme getScheme() {
-        return new addProcess_resultTupleScheme();
+    private static class addChildJob_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJob_resultTupleScheme getScheme() {
+        return new addChildJob_resultTupleScheme();
       }
     }
 
-    private static class addProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcess_result> {
+    private static class addChildJob_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addChildJob_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addChildJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetSuccess()) {
-          optionals.set(0);
-        }
         if (struct.isSetRse()) {
-          optionals.set(1);
-        }
-        oprot.writeBitSet(optionals, 2);
-        if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          optionals.set(0);
         }
+        oprot.writeBitSet(optionals, 1);
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addChildJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(2);
+        java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
-          struct.setSuccessIsSet(true);
-        }
-        if (incoming.get(1)) {
           struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
           struct.rse.read(iprot);
           struct.setRseIsSet(true);
@@ -74087,22 +74342,22 @@ public class RegistryService {
     }
   }
 
-  public static class updateProcess_args implements org.apache.thrift.TBase<updateProcess_args, updateProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateProcess_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateProcess_args");
+  public static class getChildJobsOfJob_args implements org.apache.thrift.TBase<getChildJobsOfJob_args, getChildJobsOfJob_args._Fields>, java.io.Serializable, Cloneable, Comparable<getChildJobsOfJob_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getChildJobsOfJob_args");
 
-    private static final org.apache.thrift.protocol.TField PROCESS_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("processModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField PARENT_JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentJobId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField PARENT_TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentTaskId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateProcess_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateProcess_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getChildJobsOfJob_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getChildJobsOfJob_argsTupleSchemeFactory();
 
-    public org.apache.airavata.model.process.ProcessModel processModel; // required
-    public java.lang.String processId; // required
+    public java.lang.String parentJobId; // required
+    public java.lang.String parentTaskId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROCESS_MODEL((short)1, "processModel"),
-      PROCESS_ID((short)2, "processId");
+      PARENT_JOB_ID((short)1, "parentJobId"),
+      PARENT_TASK_ID((short)2, "parentTaskId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -74117,10 +74372,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // PROCESS_MODEL
-            return PROCESS_MODEL;
-          case 2: // PROCESS_ID
-            return PROCESS_ID;
+          case 1: // PARENT_JOB_ID
+            return PARENT_JOB_ID;
+          case 2: // PARENT_TASK_ID
+            return PARENT_TASK_ID;
           default:
             return null;
         }
@@ -74164,111 +74419,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.PROCESS_MODEL, new org.apache.thrift.meta_data.FieldMetaData("processModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
-      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.PARENT_JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("parentJobId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.PARENT_TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("parentTaskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateProcess_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getChildJobsOfJob_args.class, metaDataMap);
     }
 
-    public updateProcess_args() {
+    public getChildJobsOfJob_args() {
     }
 
-    public updateProcess_args(
-      org.apache.airavata.model.process.ProcessModel processModel,
-      java.lang.String processId)
+    public getChildJobsOfJob_args(
+      java.lang.String parentJobId,
+      java.lang.String parentTaskId)
     {
       this();
-      this.processModel = processModel;
-      this.processId = processId;
+      this.parentJobId = parentJobId;
+      this.parentTaskId = parentTaskId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateProcess_args(updateProcess_args other) {
-      if (other.isSetProcessModel()) {
-        this.processModel = new org.apache.airavata.model.process.ProcessModel(other.processModel);
+    public getChildJobsOfJob_args(getChildJobsOfJob_args other) {
+      if (other.isSetParentJobId()) {
+        this.parentJobId = other.parentJobId;
       }
-      if (other.isSetProcessId()) {
-        this.processId = other.processId;
+      if (other.isSetParentTaskId()) {
+        this.parentTaskId = other.parentTaskId;
       }
     }
 
-    public updateProcess_args deepCopy() {
-      return new updateProcess_args(this);
+    public getChildJobsOfJob_args deepCopy() {
+      return new getChildJobsOfJob_args(this);
     }
 
     @Override
     public void clear() {
-      this.processModel = null;
-      this.processId = null;
+      this.parentJobId = null;
+      this.parentTaskId = null;
     }
 
-    public org.apache.airavata.model.process.ProcessModel getProcessModel() {
-      return this.processModel;
+    public java.lang.String getParentJobId() {
+      return this.parentJobId;
     }
 
-    public updateProcess_args setProcessModel(org.apache.airavata.model.process.ProcessModel processModel) {
-      this.processModel = processModel;
+    public getChildJobsOfJob_args setParentJobId(java.lang.String parentJobId) {
+      this.parentJobId = parentJobId;
       return this;
     }
 
-    public void unsetProcessModel() {
-      this.processModel = null;
+    public void unsetParentJobId() {
+      this.parentJobId = null;
     }
 
-    /** Returns true if field processModel is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessModel() {
-      return this.processModel != null;
+    /** Returns true if field parentJobId is set (has been assigned a value) and false otherwise */
+    public boolean isSetParentJobId() {
+      return this.parentJobId != null;
     }
 
-    public void setProcessModelIsSet(boolean value) {
+    public void setParentJobIdIsSet(boolean value) {
       if (!value) {
-        this.processModel = null;
+        this.parentJobId = null;
       }
     }
 
-    public java.lang.String getProcessId() {
-      return this.processId;
+    public java.lang.String getParentTaskId() {
+      return this.parentTaskId;
     }
 
-    public updateProcess_args setProcessId(java.lang.String processId) {
-      this.processId = processId;
+    public getChildJobsOfJob_args setParentTaskId(java.lang.String parentTaskId) {
+      this.parentTaskId = parentTaskId;
       return this;
     }
 
-    public void unsetProcessId() {
-      this.processId = null;
+    public void unsetParentTaskId() {
+      this.parentTaskId = null;
     }
 
-    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessId() {
-      return this.processId != null;
+    /** Returns true if field parentTaskId is set (has been assigned a value) and false otherwise */
+    public boolean isSetParentTaskId() {
+      return this.parentTaskId != null;
     }
 
-    public void setProcessIdIsSet(boolean value) {
+    public void setParentTaskIdIsSet(boolean value) {
       if (!value) {
-        this.processId = null;
+        this.parentTaskId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case PROCESS_MODEL:
+      case PARENT_JOB_ID:
         if (value == null) {
-          unsetProcessModel();
+          unsetParentJobId();
         } else {
-          setProcessModel((org.apache.airavata.model.process.ProcessModel)value);
+          setParentJobId((java.lang.String)value);
         }
         break;
 
-      case PROCESS_ID:
+      case PARENT_TASK_ID:
         if (value == null) {
-          unsetProcessId();
+          unsetParentTaskId();
         } else {
-          setProcessId((java.lang.String)value);
+          setParentTaskId((java.lang.String)value);
         }
         break;
 
@@ -74277,11 +74532,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case PROCESS_MODEL:
-        return getProcessModel();
+      case PARENT_JOB_ID:
+        return getParentJobId();
 
-      case PROCESS_ID:
-        return getProcessId();
+      case PARENT_TASK_ID:
+        return getParentTaskId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -74294,10 +74549,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case PROCESS_MODEL:
-        return isSetProcessModel();
-      case PROCESS_ID:
-        return isSetProcessId();
+      case PARENT_JOB_ID:
+        return isSetParentJobId();
+      case PARENT_TASK_ID:
+        return isSetParentTaskId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -74306,32 +74561,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateProcess_args)
-        return this.equals((updateProcess_args)that);
+      if (that instanceof getChildJobsOfJob_args)
+        return this.equals((getChildJobsOfJob_args)that);
       return false;
     }
 
-    public boolean equals(updateProcess_args that) {
+    public boolean equals(getChildJobsOfJob_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_processModel = true && this.isSetProcessModel();
-      boolean that_present_processModel = true && that.isSetProcessModel();
-      if (this_present_processModel || that_present_processModel) {
-        if (!(this_present_processModel && that_present_processModel))
+      boolean this_present_parentJobId = true && this.isSetParentJobId();
+      boolean that_present_parentJobId = true && that.isSetParentJobId();
+      if (this_present_parentJobId || that_present_parentJobId) {
+        if (!(this_present_parentJobId && that_present_parentJobId))
           return false;
-        if (!this.processModel.equals(that.processModel))
+        if (!this.parentJobId.equals(that.parentJobId))
           return false;
       }
 
-      boolean this_present_processId = true && this.isSetProcessId();
-      boolean that_present_processId = true && that.isSetProcessId();
-      if (this_present_processId || that_present_processId) {
-        if (!(this_present_processId && that_present_processId))
+      boolean this_present_parentTaskId = true && this.isSetParentTaskId();
+      boolean that_present_parentTaskId = true && that.isSetParentTaskId();
+      if (this_present_parentTaskId || that_present_parentTaskId) {
+        if (!(this_present_parentTaskId && that_present_parentTaskId))
           return false;
-        if (!this.processId.equals(that.processId))
+        if (!this.parentTaskId.equals(that.parentTaskId))
           return false;
       }
 
@@ -74342,41 +74597,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetProcessModel()) ? 131071 : 524287);
-      if (isSetProcessModel())
-        hashCode = hashCode * 8191 + processModel.hashCode();
+      hashCode = hashCode * 8191 + ((isSetParentJobId()) ? 131071 : 524287);
+      if (isSetParentJobId())
+        hashCode = hashCode * 8191 + parentJobId.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
-      if (isSetProcessId())
-        hashCode = hashCode * 8191 + processId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetParentTaskId()) ? 131071 : 524287);
+      if (isSetParentTaskId())
+        hashCode = hashCode * 8191 + parentTaskId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(updateProcess_args other) {
+    public int compareTo(getChildJobsOfJob_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetProcessModel()).compareTo(other.isSetProcessModel());
+      lastComparison = java.lang.Boolean.valueOf(isSetParentJobId()).compareTo(other.isSetParentJobId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetProcessModel()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processModel, other.processModel);
+      if (isSetParentJobId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentJobId, other.parentJobId);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+      lastComparison = java.lang.Boolean.valueOf(isSetParentTaskId()).compareTo(other.isSetParentTaskId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetProcessId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (isSetParentTaskId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentTaskId, other.parentTaskId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -74398,22 +74653,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateProcess_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getChildJobsOfJob_args(");
       boolean first = true;
 
-      sb.append("processModel:");
-      if (this.processModel == null) {
+      sb.append("parentJobId:");
+      if (this.parentJobId == null) {
         sb.append("null");
       } else {
-        sb.append(this.processModel);
+        sb.append(this.parentJobId);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("processId:");
-      if (this.processId == null) {
+      sb.append("parentTaskId:");
+      if (this.parentTaskId == null) {
         sb.append("null");
       } else {
-        sb.append(this.processId);
+        sb.append(this.parentTaskId);
       }
       first = false;
       sb.append(")");
@@ -74422,16 +74677,13 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (processModel == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processModel' was not present! Struct: " + toString());
+      if (parentJobId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'parentJobId' was not present! Struct: " + toString());
       }
-      if (processId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+      if (parentTaskId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'parentTaskId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (processModel != null) {
-        processModel.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -74450,15 +74702,15 @@ public class RegistryService {
       }
     }
 
-    private static class updateProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateProcess_argsStandardScheme getScheme() {
-        return new updateProcess_argsStandardScheme();
+    private static class getChildJobsOfJob_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getChildJobsOfJob_argsStandardScheme getScheme() {
+        return new getChildJobsOfJob_argsStandardScheme();
       }
     }
 
-    private static class updateProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateProcess_args> {
+    private static class getChildJobsOfJob_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getChildJobsOfJob_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getChildJobsOfJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -74468,19 +74720,18 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // PROCESS_MODEL
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.processModel = new org.apache.airavata.model.process.ProcessModel();
-                struct.processModel.read(iprot);
-                struct.setProcessModelIsSet(true);
+            case 1: // PARENT_JOB_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.parentJobId = iprot.readString();
+                struct.setParentJobIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // PROCESS_ID
+            case 2: // PARENT_TASK_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.processId = iprot.readString();
-                struct.setProcessIdIsSet(true);
+                struct.parentTaskId = iprot.readString();
+                struct.setParentTaskIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -74496,18 +74747,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getChildJobsOfJob_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.processModel != null) {
-          oprot.writeFieldBegin(PROCESS_MODEL_FIELD_DESC);
-          struct.processModel.write(oprot);
+        if (struct.parentJobId != null) {
+          oprot.writeFieldBegin(PARENT_JOB_ID_FIELD_DESC);
+          oprot.writeString(struct.parentJobId);
           oprot.writeFieldEnd();
         }
-        if (struct.processId != null) {
-          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
-          oprot.writeString(struct.processId);
+        if (struct.parentTaskId != null) {
+          oprot.writeFieldBegin(PARENT_TASK_ID_FIELD_DESC);
+          oprot.writeString(struct.parentTaskId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -74516,29 +74767,28 @@ public class RegistryService {
 
     }
 
-    private static class updateProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateProcess_argsTupleScheme getScheme() {
-        return new updateProcess_argsTupleScheme();
+    private static class getChildJobsOfJob_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getChildJobsOfJob_argsTupleScheme getScheme() {
+        return new getChildJobsOfJob_argsTupleScheme();
       }
     }
 
-    private static class updateProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateProcess_args> {
+    private static class getChildJobsOfJob_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getChildJobsOfJob_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getChildJobsOfJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.processModel.write(oprot);
-        oprot.writeString(struct.processId);
+        oprot.writeString(struct.parentJobId);
+        oprot.writeString(struct.parentTaskId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getChildJobsOfJob_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.processModel = new org.apache.airavata.model.process.ProcessModel();
-        struct.processModel.read(iprot);
-        struct.setProcessModelIsSet(true);
-        struct.processId = iprot.readString();
-        struct.setProcessIdIsSet(true);
+        struct.parentJobId = iprot.readString();
+        struct.setParentJobIdIsSet(true);
+        struct.parentTaskId = iprot.readString();
+        struct.setParentTaskIdIsSet(true);
       }
     }
 
@@ -74547,18 +74797,21 @@ public class RegistryService {
     }
   }
 
-  public static class updateProcess_result implements org.apache.thrift.TBase<updateProcess_result, updateProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateProcess_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateProcess_result");
+  public static class getChildJobsOfJob_result implements org.apache.thrift.TBase<getChildJobsOfJob_result, getChildJobsOfJob_result._Fields>, java.io.Serializable, Cloneable, Comparable<getChildJobsOfJob_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getChildJobsOfJob_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateProcess_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateProcess_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getChildJobsOfJob_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getChildJobsOfJob_resultTupleSchemeFactory();
 
+    public java.util.List<org.apache.airavata.model.job.ChildJobModel> success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
       RSE((short)1, "rse");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -74574,6 +74827,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // RSE
             return RSE;
           default:
@@ -74619,45 +74874,97 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.ChildJobModel.class))));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateProcess_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getChildJobsOfJob_result.class, metaDataMap);
     }
 
-    public updateProcess_result() {
+    public getChildJobsOfJob_result() {
     }
 
-    public updateProcess_result(
+    public getChildJobsOfJob_result(
+      java.util.List<org.apache.airavata.model.job.ChildJobModel> success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
+      this.success = success;
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateProcess_result(updateProcess_result other) {
+    public getChildJobsOfJob_result(getChildJobsOfJob_result other) {
+      if (other.isSetSuccess()) {
+        java.util.List<org.apache.airavata.model.job.ChildJobModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.job.ChildJobModel>(other.success.size());
+        for (org.apache.airavata.model.job.ChildJobModel other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.job.ChildJobModel(other_element));
+        }
+        this.success = __this__success;
+      }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public updateProcess_result deepCopy() {
-      return new updateProcess_result(this);
+    public getChildJobsOfJob_result deepCopy() {
+      return new getChildJobsOfJob_result(this);
     }
 
     @Override
     public void clear() {
+      this.success = null;
       this.rse = null;
     }
 
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.job.ChildJobModel> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.job.ChildJobModel elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.job.ChildJobModel>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.job.ChildJobModel> getSuccess() {
+      return this.success;
+    }
+
+    public getChildJobsOfJob_result setSuccess(java.util.List<org.apache.airavata.model.job.ChildJobModel> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public updateProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getChildJobsOfJob_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -74679,6 +74986,14 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.util.List<org.apache.airavata.model.job.ChildJobModel>)value);
+        }
+        break;
+
       case RSE:
         if (value == null) {
           unsetRse();
@@ -74692,6 +75007,9 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case RSE:
         return getRse();
 
@@ -74706,6 +75024,8 @@ public class RegistryService {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case RSE:
         return isSetRse();
       }
@@ -74716,17 +75036,26 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateProcess_result)
-        return this.equals((updateProcess_result)that);
+      if (that instanceof getChildJobsOfJob_result)
+        return this.equals((getChildJobsOfJob_result)that);
       return false;
     }
 
-    public boolean equals(updateProcess_result that) {
+    public boolean equals(getChildJobsOfJob_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_rse = true && this.isSetRse();
       boolean that_present_rse = true && that.isSetRse();
       if (this_present_rse || that_present_rse) {
@@ -74743,6 +75072,10 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
         hashCode = hashCode * 8191 + rse.hashCode();
@@ -74751,13 +75084,23 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(updateProcess_result other) {
+    public int compareTo(getChildJobsOfJob_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
       if (lastComparison != 0) {
         return lastComparison;
@@ -74785,9 +75128,17 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateProcess_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getChildJobsOfJob_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("rse:");
       if (this.rse == null) {
         sb.append("null");
@@ -74820,15 +75171,15 @@ public class RegistryService {
       }
     }
 
-    private static class updateProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateProcess_resultStandardScheme getScheme() {
-        return new updateProcess_resultStandardScheme();
+    private static class getChildJobsOfJob_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getChildJobsOfJob_resultStandardScheme getScheme() {
+        return new getChildJobsOfJob_resultStandardScheme();
       }
     }
 
-    private static class updateProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateProcess_result> {
+    private static class getChildJobsOfJob_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getChildJobsOfJob_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getChildJobsOfJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -74838,6 +75189,25 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list142 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.job.ChildJobModel>(_list142.size);
+                  org.apache.airavata.model.job.ChildJobModel _elem143;
+                  for (int _i144 = 0; _i144 < _list142.size; ++_i144)
+                  {
+                    _elem143 = new org.apache.airavata.model.job.ChildJobModel();
+                    _elem143.read(iprot);
+                    struct.success.add(_elem143);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // RSE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
@@ -74858,10 +75228,22 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getChildJobsOfJob_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.job.ChildJobModel _iter145 : struct.success)
+            {
+              _iter145.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
         if (struct.rse != null) {
           oprot.writeFieldBegin(RSE_FIELD_DESC);
           struct.rse.write(oprot);
@@ -74873,32 +75255,58 @@ public class RegistryService {
 
     }
 
-    private static class updateProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateProcess_resultTupleScheme getScheme() {
-        return new updateProcess_resultTupleScheme();
+    private static class getChildJobsOfJob_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getChildJobsOfJob_resultTupleScheme getScheme() {
+        return new getChildJobsOfJob_resultTupleScheme();
       }
     }
 
-    private static class updateProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateProcess_result> {
+    private static class getChildJobsOfJob_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getChildJobsOfJob_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getChildJobsOfJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetRse()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.job.ChildJobModel _iter146 : struct.success)
+            {
+              _iter146.write(oprot);
+            }
+          }
+        }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getChildJobsOfJob_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(1);
+        java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
+          {
+            org.apache.thrift.protocol.TList _list147 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.job.ChildJobModel>(_list147.size);
+            org.apache.airavata.model.job.ChildJobModel _elem148;
+            for (int _i149 = 0; _i149 < _list147.size; ++_i149)
+            {
+              _elem148 = new org.apache.airavata.model.job.ChildJobModel();
+              _elem148.read(iprot);
+              struct.success.add(_elem148);
+            }
+          }
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
           struct.rse.read(iprot);
           struct.setRseIsSet(true);
@@ -74911,22 +75319,22 @@ public class RegistryService {
     }
   }
 
-  public static class addTask_args implements org.apache.thrift.TBase<addTask_args, addTask_args._Fields>, java.io.Serializable, Cloneable, Comparable<addTask_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTask_args");
+  public static class addChildJobStatus_args implements org.apache.thrift.TBase<addChildJobStatus_args, addChildJobStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<addChildJobStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addChildJobStatus_args");
 
-    private static final org.apache.thrift.protocol.TField TASK_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("taskModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatus", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField CHILD_JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("childJobId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addTask_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTask_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addChildJobStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addChildJobStatus_argsTupleSchemeFactory();
 
-    public org.apache.airavata.model.task.TaskModel taskModel; // required
-    public java.lang.String processId; // required
+    public org.apache.airavata.model.status.ChildJobStatus jobStatus; // required
+    public java.lang.String childJobId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      TASK_MODEL((short)1, "taskModel"),
-      PROCESS_ID((short)2, "processId");
+      JOB_STATUS((short)1, "jobStatus"),
+      CHILD_JOB_ID((short)2, "childJobId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -74941,10 +75349,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // TASK_MODEL
-            return TASK_MODEL;
-          case 2: // PROCESS_ID
-            return PROCESS_ID;
+          case 1: // JOB_STATUS
+            return JOB_STATUS;
+          case 2: // CHILD_JOB_ID
+            return CHILD_JOB_ID;
           default:
             return null;
         }
@@ -74988,111 +75396,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.TASK_MODEL, new org.apache.thrift.meta_data.FieldMetaData("taskModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.task.TaskModel.class)));
-      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ChildJobStatus.class)));
+      tmpMap.put(_Fields.CHILD_JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("childJobId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addTask_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addChildJobStatus_args.class, metaDataMap);
     }
 
-    public addTask_args() {
+    public addChildJobStatus_args() {
     }
 
-    public addTask_args(
-      org.apache.airavata.model.task.TaskModel taskModel,
-      java.lang.String processId)
+    public addChildJobStatus_args(
+      org.apache.airavata.model.status.ChildJobStatus jobStatus,
+      java.lang.String childJobId)
     {
       this();
-      this.taskModel = taskModel;
-      this.processId = processId;
+      this.jobStatus = jobStatus;
+      this.childJobId = childJobId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addTask_args(addTask_args other) {
-      if (other.isSetTaskModel()) {
-        this.taskModel = new org.apache.airavata.model.task.TaskModel(other.taskModel);
+    public addChildJobStatus_args(addChildJobStatus_args other) {
+      if (other.isSetJobStatus()) {
+        this.jobStatus = new org.apache.airavata.model.status.ChildJobStatus(other.jobStatus);
       }
-      if (other.isSetProcessId()) {
-        this.processId = other.processId;
+      if (other.isSetChildJobId()) {
+        this.childJobId = other.childJobId;
       }
     }
 
-    public addTask_args deepCopy() {
-      return new addTask_args(this);
+    public addChildJobStatus_args deepCopy() {
+      return new addChildJobStatus_args(this);
     }
 
     @Override
     public void clear() {
-      this.taskModel = null;
-      this.processId = null;
+      this.jobStatus = null;
+      this.childJobId = null;
     }
 
-    public org.apache.airavata.model.task.TaskModel getTaskModel() {
-      return this.taskModel;
+    public org.apache.airavata.model.status.ChildJobStatus getJobStatus() {
+      return this.jobStatus;
     }
 
-    public addTask_args setTaskModel(org.apache.airavata.model.task.TaskModel taskModel) {
-      this.taskModel = taskModel;
+    public addChildJobStatus_args setJobStatus(org.apache.airavata.model.status.ChildJobStatus jobStatus) {
+      this.jobStatus = jobStatus;
       return this;
     }
 
-    public void unsetTaskModel() {
-      this.taskModel = null;
+    public void unsetJobStatus() {
+      this.jobStatus = null;
     }
 
-    /** Returns true if field taskModel is set (has been assigned a value) and false otherwise */
-    public boolean isSetTaskModel() {
-      return this.taskModel != null;
+    /** Returns true if field jobStatus is set (has been assigned a value) and false otherwise */
+    public boolean isSetJobStatus() {
+      return this.jobStatus != null;
     }
 
-    public void setTaskModelIsSet(boolean value) {
+    public void setJobStatusIsSet(boolean value) {
       if (!value) {
-        this.taskModel = null;
+        this.jobStatus = null;
       }
     }
 
-    public java.lang.String getProcessId() {
-      return this.processId;
+    public java.lang.String getChildJobId() {
+      return this.childJobId;
     }
 
-    public addTask_args setProcessId(java.lang.String processId) {
-      this.processId = processId;
+    public addChildJobStatus_args setChildJobId(java.lang.String childJobId) {
+      this.childJobId = childJobId;
       return this;
     }
 
-    public void unsetProcessId() {
-      this.processId = null;
+    public void unsetChildJobId() {
+      this.childJobId = null;
     }
 
-    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessId() {
-      return this.processId != null;
+    /** Returns true if field childJobId is set (has been assigned a value) and false otherwise */
+    public boolean isSetChildJobId() {
+      return this.childJobId != null;
     }
 
-    public void setProcessIdIsSet(boolean value) {
+    public void setChildJobIdIsSet(boolean value) {
       if (!value) {
-        this.processId = null;
+        this.childJobId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case TASK_MODEL:
+      case JOB_STATUS:
         if (value == null) {
-          unsetTaskModel();
+          unsetJobStatus();
         } else {
-          setTaskModel((org.apache.airavata.model.task.TaskModel)value);
+          setJobStatus((org.apache.airavata.model.status.ChildJobStatus)value);
         }
         break;
 
-      case PROCESS_ID:
+      case CHILD_JOB_ID:
         if (value == null) {
-          unsetProcessId();
+          unsetChildJobId();
         } else {
-          setProcessId((java.lang.String)value);
+          setChildJobId((java.lang.String)value);
         }
         break;
 
@@ -75101,11 +75509,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case TASK_MODEL:
-        return getTaskModel();
+      case JOB_STATUS:
+        return getJobStatus();
 
-      case PROCESS_ID:
-        return getProcessId();
+      case CHILD_JOB_ID:
+        return getChildJobId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -75118,10 +75526,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case TASK_MODEL:
-        return isSetTaskModel();
-      case PROCESS_ID:
-        return isSetProcessId();
+      case JOB_STATUS:
+        return isSetJobStatus();
+      case CHILD_JOB_ID:
+        return isSetChildJobId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -75130,32 +75538,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addTask_args)
-        return this.equals((addTask_args)that);
+      if (that instanceof addChildJobStatus_args)
+        return this.equals((addChildJobStatus_args)that);
       return false;
     }
 
-    public boolean equals(addTask_args that) {
+    public boolean equals(addChildJobStatus_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_taskModel = true && this.isSetTaskModel();
-      boolean that_present_taskModel = true && that.isSetTaskModel();
-      if (this_present_taskModel || that_present_taskModel) {
-        if (!(this_present_taskModel && that_present_taskModel))
+      boolean this_present_jobStatus = true && this.isSetJobStatus();
+      boolean that_present_jobStatus = true && that.isSetJobStatus();
+      if (this_present_jobStatus || that_present_jobStatus) {
+        if (!(this_present_jobStatus && that_present_jobStatus))
           return false;
-        if (!this.taskModel.equals(that.taskModel))
+        if (!this.jobStatus.equals(that.jobStatus))
           return false;
       }
 
-      boolean this_present_processId = true && this.isSetProcessId();
-      boolean that_present_processId = true && that.isSetProcessId();
-      if (this_present_processId || that_present_processId) {
-        if (!(this_present_processId && that_present_processId))
+      boolean this_present_childJobId = true && this.isSetChildJobId();
+      boolean that_present_childJobId = true && that.isSetChildJobId();
+      if (this_present_childJobId || that_present_childJobId) {
+        if (!(this_present_childJobId && that_present_childJobId))
           return false;
-        if (!this.processId.equals(that.processId))
+        if (!this.childJobId.equals(that.childJobId))
           return false;
       }
 
@@ -75166,41 +75574,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetTaskModel()) ? 131071 : 524287);
-      if (isSetTaskModel())
-        hashCode = hashCode * 8191 + taskModel.hashCode();
+      hashCode = hashCode * 8191 + ((isSetJobStatus()) ? 131071 : 524287);
+      if (isSetJobStatus())
+        hashCode = hashCode * 8191 + jobStatus.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
-      if (isSetProcessId())
-        hashCode = hashCode * 8191 + processId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetChildJobId()) ? 131071 : 524287);
+      if (isSetChildJobId())
+        hashCode = hashCode * 8191 + childJobId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(addTask_args other) {
+    public int compareTo(addChildJobStatus_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetTaskModel()).compareTo(other.isSetTaskModel());
+      lastComparison = java.lang.Boolean.valueOf(isSetJobStatus()).compareTo(other.isSetJobStatus());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetTaskModel()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskModel, other.taskModel);
+      if (isSetJobStatus()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatus, other.jobStatus);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+      lastComparison = java.lang.Boolean.valueOf(isSetChildJobId()).compareTo(other.isSetChildJobId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetProcessId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (isSetChildJobId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.childJobId, other.childJobId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -75222,22 +75630,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTask_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addChildJobStatus_args(");
       boolean first = true;
 
-      sb.append("taskModel:");
-      if (this.taskModel == null) {
+      sb.append("jobStatus:");
+      if (this.jobStatus == null) {
         sb.append("null");
       } else {
-        sb.append(this.taskModel);
+        sb.append(this.jobStatus);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("processId:");
-      if (this.processId == null) {
+      sb.append("childJobId:");
+      if (this.childJobId == null) {
         sb.append("null");
       } else {
-        sb.append(this.processId);
+        sb.append(this.childJobId);
       }
       first = false;
       sb.append(")");
@@ -75246,15 +75654,15 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (taskModel == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskModel' was not present! Struct: " + toString());
+      if (jobStatus == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobStatus' was not present! Struct: " + toString());
       }
-      if (processId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+      if (childJobId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'childJobId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (taskModel != null) {
-        taskModel.validate();
+      if (jobStatus != null) {
+        jobStatus.validate();
       }
     }
 
@@ -75274,15 +75682,15 @@ public class RegistryService {
       }
     }
 
-    private static class addTask_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addTask_argsStandardScheme getScheme() {
-        return new addTask_argsStandardScheme();
+    private static class addChildJobStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJobStatus_argsStandardScheme getScheme() {
+        return new addChildJobStatus_argsStandardScheme();
       }
     }
 
-    private static class addTask_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTask_args> {
+    private static class addChildJobStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addChildJobStatus_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addTask_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addChildJobStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -75292,19 +75700,19 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // TASK_MODEL
+            case 1: // JOB_STATUS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.taskModel = new org.apache.airavata.model.task.TaskModel();
-                struct.taskModel.read(iprot);
-                struct.setTaskModelIsSet(true);
+                struct.jobStatus = new org.apache.airavata.model.status.ChildJobStatus();
+                struct.jobStatus.read(iprot);
+                struct.setJobStatusIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // PROCESS_ID
+            case 2: // CHILD_JOB_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.processId = iprot.readString();
-                struct.setProcessIdIsSet(true);
+                struct.childJobId = iprot.readString();
+                struct.setChildJobIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -75320,18 +75728,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addTask_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addChildJobStatus_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.taskModel != null) {
-          oprot.writeFieldBegin(TASK_MODEL_FIELD_DESC);
-          struct.taskModel.write(oprot);
+        if (struct.jobStatus != null) {
+          oprot.writeFieldBegin(JOB_STATUS_FIELD_DESC);
+          struct.jobStatus.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.processId != null) {
-          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
-          oprot.writeString(struct.processId);
+        if (struct.childJobId != null) {
+          oprot.writeFieldBegin(CHILD_JOB_ID_FIELD_DESC);
+          oprot.writeString(struct.childJobId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -75340,29 +75748,29 @@ public class RegistryService {
 
     }
 
-    private static class addTask_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addTask_argsTupleScheme getScheme() {
-        return new addTask_argsTupleScheme();
+    private static class addChildJobStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJobStatus_argsTupleScheme getScheme() {
+        return new addChildJobStatus_argsTupleScheme();
       }
     }
 
-    private static class addTask_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTask_args> {
+    private static class addChildJobStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addChildJobStatus_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addTask_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addChildJobStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.taskModel.write(oprot);
-        oprot.writeString(struct.processId);
+        struct.jobStatus.write(oprot);
+        oprot.writeString(struct.childJobId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addTask_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addChildJobStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.taskModel = new org.apache.airavata.model.task.TaskModel();
-        struct.taskModel.read(iprot);
-        struct.setTaskModelIsSet(true);
-        struct.processId = iprot.readString();
-        struct.setProcessIdIsSet(true);
+        struct.jobStatus = new org.apache.airavata.model.status.ChildJobStatus();
+        struct.jobStatus.read(iprot);
+        struct.setJobStatusIsSet(true);
+        struct.childJobId = iprot.readString();
+        struct.setChildJobIdIsSet(true);
       }
     }
 
@@ -75371,21 +75779,18 @@ public class RegistryService {
     }
   }
 
-  public static class addTask_result implements org.apache.thrift.TBase<addTask_result, addTask_result._Fields>, java.io.Serializable, Cloneable, Comparable<addTask_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTask_result");
+  public static class addChildJobStatus_result implements org.apache.thrift.TBase<addChildJobStatus_result, addChildJobStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<addChildJobStatus_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addChildJobStatus_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addTask_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTask_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addChildJobStatus_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addChildJobStatus_resultTupleSchemeFactory();
 
-    public java.lang.String success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      SUCCESS((short)0, "success"),
       RSE((short)1, "rse");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -75401,8 +75806,6 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
           case 1: // RSE
             return RSE;
           default:
@@ -75448,77 +75851,45 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addTask_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addChildJobStatus_result.class, metaDataMap);
     }
 
-    public addTask_result() {
+    public addChildJobStatus_result() {
     }
 
-    public addTask_result(
-      java.lang.String success,
+    public addChildJobStatus_result(
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
-      this.success = success;
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addTask_result(addTask_result other) {
-      if (other.isSetSuccess()) {
-        this.success = other.success;
-      }
+    public addChildJobStatus_result(addChildJobStatus_result other) {
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public addTask_result deepCopy() {
-      return new addTask_result(this);
+    public addChildJobStatus_result deepCopy() {
+      return new addChildJobStatus_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
       this.rse = null;
     }
 
-    public java.lang.String getSuccess() {
-      return this.success;
-    }
-
-    public addTask_result setSuccess(java.lang.String success) {
-      this.success = success;
-      return this;
-    }
-
-    public void unsetSuccess() {
-      this.success = null;
-    }
-
-    /** Returns true if field success is set (has been assigned a value) and false otherwise */
-    public boolean isSetSuccess() {
-      return this.success != null;
-    }
-
-    public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
-    }
-
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public addTask_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public addChildJobStatus_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -75540,14 +75911,6 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case SUCCESS:
-        if (value == null) {
-          unsetSuccess();
-        } else {
-          setSuccess((java.lang.String)value);
-        }
-        break;
-
       case RSE:
         if (value == null) {
           unsetRse();
@@ -75561,9 +75924,6 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case SUCCESS:
-        return getSuccess();
-
       case RSE:
         return getRse();
 
@@ -75578,8 +75938,6 @@ public class RegistryService {
       }
 
       switch (field) {
-      case SUCCESS:
-        return isSetSuccess();
       case RSE:
         return isSetRse();
       }
@@ -75590,26 +75948,17 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addTask_result)
-        return this.equals((addTask_result)that);
+      if (that instanceof addChildJobStatus_result)
+        return this.equals((addChildJobStatus_result)that);
       return false;
     }
 
-    public boolean equals(addTask_result that) {
+    public boolean equals(addChildJobStatus_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
-      if (this_present_success || that_present_success) {
-        if (!(this_present_success && that_present_success))
-          return false;
-        if (!this.success.equals(that.success))
-          return false;
-      }
-
       boolean this_present_rse = true && this.isSetRse();
       boolean that_present_rse = true && that.isSetRse();
       if (this_present_rse || that_present_rse) {
@@ -75626,10 +75975,6 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
-
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
         hashCode = hashCode * 8191 + rse.hashCode();
@@ -75638,23 +75983,13 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(addTask_result other) {
+    public int compareTo(addChildJobStatus_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetSuccess()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
       if (lastComparison != 0) {
         return lastComparison;
@@ -75682,17 +76017,9 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTask_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addChildJobStatus_result(");
       boolean first = true;
 
-      sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("rse:");
       if (this.rse == null) {
         sb.append("null");
@@ -75725,15 +76052,15 @@ public class RegistryService {
       }
     }
 
-    private static class addTask_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addTask_resultStandardScheme getScheme() {
-        return new addTask_resultStandardScheme();
+    private static class addChildJobStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJobStatus_resultStandardScheme getScheme() {
+        return new addChildJobStatus_resultStandardScheme();
       }
     }
 
-    private static class addTask_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTask_result> {
+    private static class addChildJobStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addChildJobStatus_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addTask_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addChildJobStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -75743,14 +76070,6 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
-                struct.setSuccessIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
             case 1: // RSE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
@@ -75771,15 +76090,10 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addTask_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addChildJobStatus_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
-          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
-          oprot.writeFieldEnd();
-        }
         if (struct.rse != null) {
           oprot.writeFieldBegin(RSE_FIELD_DESC);
           struct.rse.write(oprot);
@@ -75791,42 +76105,32 @@ public class RegistryService {
 
     }
 
-    private static class addTask_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addTask_resultTupleScheme getScheme() {
-        return new addTask_resultTupleScheme();
+    private static class addChildJobStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addChildJobStatus_resultTupleScheme getScheme() {
+        return new addChildJobStatus_resultTupleScheme();
       }
     }
 
-    private static class addTask_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTask_result> {
+    private static class addChildJobStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addChildJobStatus_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addTask_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addChildJobStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetSuccess()) {
-          optionals.set(0);
-        }
         if (struct.isSetRse()) {
-          optionals.set(1);
-        }
-        oprot.writeBitSet(optionals, 2);
-        if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          optionals.set(0);
         }
+        oprot.writeBitSet(optionals, 1);
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addTask_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addChildJobStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(2);
+        java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
-          struct.setSuccessIsSet(true);
-        }
-        if (incoming.get(1)) {
           struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
           struct.rse.read(iprot);
           struct.setRseIsSet(true);
@@ -75839,19 +76143,22 @@ public class RegistryService {
     }
   }
 
-  public static class getUserConfigurationData_args implements org.apache.thrift.TBase<getUserConfigurationData_args, getUserConfigurationData_args._Fields>, java.io.Serializable, Cloneable, Comparable<getUserConfigurationData_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserConfigurationData_args");
+  public static class addProcess_args implements org.apache.thrift.TBase<addProcess_args, addProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<addProcess_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcess_args");
 
-    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField PROCESS_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("processModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getUserConfigurationData_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getUserConfigurationData_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcess_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcess_argsTupleSchemeFactory();
 
+    public org.apache.airavata.model.process.ProcessModel processModel; // required
     public java.lang.String experimentId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      EXPERIMENT_ID((short)1, "experimentId");
+      PROCESS_MODEL((short)1, "processModel"),
+      EXPERIMENT_ID((short)2, "experimentId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -75866,7 +76173,9 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // EXPERIMENT_ID
+          case 1: // PROCESS_MODEL
+            return PROCESS_MODEL;
+          case 2: // EXPERIMENT_ID
             return EXPERIMENT_ID;
           default:
             return null;
@@ -75911,45 +76220,77 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.PROCESS_MODEL, new org.apache.thrift.meta_data.FieldMetaData("processModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
       tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserConfigurationData_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcess_args.class, metaDataMap);
     }
 
-    public getUserConfigurationData_args() {
+    public addProcess_args() {
     }
 
-    public getUserConfigurationData_args(
+    public addProcess_args(
+      org.apache.airavata.model.process.ProcessModel processModel,
       java.lang.String experimentId)
     {
       this();
+      this.processModel = processModel;
       this.experimentId = experimentId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getUserConfigurationData_args(getUserConfigurationData_args other) {
+    public addProcess_args(addProcess_args other) {
+      if (other.isSetProcessModel()) {
+        this.processModel = new org.apache.airavata.model.process.ProcessModel(other.processModel);
+      }
       if (other.isSetExperimentId()) {
         this.experimentId = other.experimentId;
       }
     }
 
-    public getUserConfigurationData_args deepCopy() {
-      return new getUserConfigurationData_args(this);
+    public addProcess_args deepCopy() {
+      return new addProcess_args(this);
     }
 
     @Override
     public void clear() {
+      this.processModel = null;
       this.experimentId = null;
     }
 
+    public org.apache.airavata.model.process.ProcessModel getProcessModel() {
+      return this.processModel;
+    }
+
+    public addProcess_args setProcessModel(org.apache.airavata.model.process.ProcessModel processModel) {
+      this.processModel = processModel;
+      return this;
+    }
+
+    public void unsetProcessModel() {
+      this.processModel = null;
+    }
+
+    /** Returns true if field processModel is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessModel() {
+      return this.processModel != null;
+    }
+
+    public void setProcessModelIsSet(boolean value) {
+      if (!value) {
+        this.processModel = null;
+      }
+    }
+
     public java.lang.String getExperimentId() {
       return this.experimentId;
     }
 
-    public getUserConfigurationData_args setExperimentId(java.lang.String experimentId) {
+    public addProcess_args setExperimentId(java.lang.String experimentId) {
       this.experimentId = experimentId;
       return this;
     }
@@ -75971,6 +76312,14 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case PROCESS_MODEL:
+        if (value == null) {
+          unsetProcessModel();
+        } else {
+          setProcessModel((org.apache.airavata.model.process.ProcessModel)value);
+        }
+        break;
+
       case EXPERIMENT_ID:
         if (value == null) {
           unsetExperimentId();
@@ -75984,6 +76333,9 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case PROCESS_MODEL:
+        return getProcessModel();
+
       case EXPERIMENT_ID:
         return getExperimentId();
 
@@ -75998,6 +76350,8 @@ public class RegistryService {
       }
 
       switch (field) {
+      case PROCESS_MODEL:
+        return isSetProcessModel();
       case EXPERIMENT_ID:
         return isSetExperimentId();
       }
@@ -76008,17 +76362,26 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getUserConfigurationData_args)
-        return this.equals((getUserConfigurationData_args)that);
+      if (that instanceof addProcess_args)
+        return this.equals((addProcess_args)that);
       return false;
     }
 
-    public boolean equals(getUserConfigurationData_args that) {
+    public boolean equals(addProcess_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
+      boolean this_present_processModel = true && this.isSetProcessModel();
+      boolean that_present_processModel = true && that.isSetProcessModel();
+      if (this_present_processModel || that_present_processModel) {
+        if (!(this_present_processModel && that_present_processModel))
+          return false;
+        if (!this.processModel.equals(that.processModel))
+          return false;
+      }
+
       boolean this_present_experimentId = true && this.isSetExperimentId();
       boolean that_present_experimentId = true && that.isSetExperimentId();
       if (this_present_experimentId || that_present_experimentId) {
@@ -76035,6 +76398,10 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetProcessModel()) ? 131071 : 524287);
+      if (isSetProcessModel())
+        hashCode = hashCode * 8191 + processModel.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
       if (isSetExperimentId())
         hashCode = hashCode * 8191 + experimentId.hashCode();
@@ -76043,13 +76410,23 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getUserConfigurationData_args other) {
+    public int compareTo(addProcess_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessModel()).compareTo(other.isSetProcessModel());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetProcessModel()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processModel, other.processModel);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
       if (lastComparison != 0) {
         return lastComparison;
@@ -76077,9 +76454,17 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getUserConfigurationData_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcess_args(");
       boolean first = true;
 
+      sb.append("processModel:");
+      if (this.processModel == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processModel);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("experimentId:");
       if (this.experimentId == null) {
         sb.append("null");
@@ -76093,10 +76478,16 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
+      if (processModel == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processModel' was not present! Struct: " + toString());
+      }
       if (experimentId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
+      if (processModel != null) {
+        processModel.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -76115,15 +76506,15 @@ public class RegistryService {
       }
     }
 
-    private static class getUserConfigurationData_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getUserConfigurationData_argsStandardScheme getScheme() {
-        return new getUserConfigurationData_argsStandardScheme();
+    private static class addProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcess_argsStandardScheme getScheme() {
+        return new addProcess_argsStandardScheme();
       }
     }
 
-    private static class getUserConfigurationData_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getUserConfigurationData_args> {
+    private static class addProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcess_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -76133,7 +76524,16 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // EXPERIMENT_ID
+            case 1: // PROCESS_MODEL
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.processModel = new org.apache.airavata.model.process.ProcessModel();
+                struct.processModel.read(iprot);
+                struct.setProcessModelIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // EXPERIMENT_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                 struct.experimentId = iprot.readString();
                 struct.setExperimentIdIsSet(true);
@@ -76152,10 +76552,15 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcess_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.processModel != null) {
+          oprot.writeFieldBegin(PROCESS_MODEL_FIELD_DESC);
+          struct.processModel.write(oprot);
+          oprot.writeFieldEnd();
+        }
         if (struct.experimentId != null) {
           oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
           oprot.writeString(struct.experimentId);
@@ -76167,23 +76572,27 @@ public class RegistryService {
 
     }
 
-    private static class getUserConfigurationData_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getUserConfigurationData_argsTupleScheme getScheme() {
-        return new getUserConfigurationData_argsTupleScheme();
+    private static class addProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcess_argsTupleScheme getScheme() {
+        return new addProcess_argsTupleScheme();
       }
     }
 
-    private static class getUserConfigurationData_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getUserConfigurationData_args> {
+    private static class addProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcess_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.processModel.write(oprot);
         oprot.writeString(struct.experimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.processModel = new org.apache.airavata.model.process.ProcessModel();
+        struct.processModel.read(iprot);
+        struct.setProcessModelIsSet(true);
         struct.experimentId = iprot.readString();
         struct.setExperimentIdIsSet(true);
       }
@@ -76194,16 +76603,16 @@ public class RegistryService {
     }
   }
 
-  public static class getUserConfigurationData_result implements org.apache.thrift.TBase<getUserConfigurationData_result, getUserConfigurationData_result._Fields>, java.io.Serializable, Cloneable, Comparable<getUserConfigurationData_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserConfigurationData_result");
+  public static class addProcess_result implements org.apache.thrift.TBase<addProcess_result, addProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<addProcess_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcess_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getUserConfigurationData_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getUserConfigurationData_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcess_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcess_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.experiment.UserConfigurationDataModel success; // required
+    public java.lang.String success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -76272,18 +76681,18 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.experiment.UserConfigurationDataModel.class)));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserConfigurationData_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcess_result.class, metaDataMap);
     }
 
-    public getUserConfigurationData_result() {
+    public addProcess_result() {
     }
 
-    public getUserConfigurationData_result(
-      org.apache.airavata.model.experiment.UserConfigurationDataModel success,
+    public addProcess_result(
+      java.lang.String success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -76294,17 +76703,17 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getUserConfigurationData_result(getUserConfigurationData_result other) {
+    public addProcess_result(addProcess_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel(other.success);
+        this.success = other.success;
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getUserConfigurationData_result deepCopy() {
-      return new getUserConfigurationData_result(this);
+    public addProcess_result deepCopy() {
+      return new addProcess_result(this);
     }
 
     @Override
@@ -76313,11 +76722,11 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public org.apache.airavata.model.experiment.UserConfigurationDataModel getSuccess() {
+    public java.lang.String getSuccess() {
       return this.success;
     }
 
-    public getUserConfigurationData_result setSuccess(org.apache.airavata.model.experiment.UserConfigurationDataModel success) {
+    public addProcess_result setSuccess(java.lang.String success) {
       this.success = success;
       return this;
     }
@@ -76341,7 +76750,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getUserConfigurationData_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public addProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -76367,7 +76776,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.experiment.UserConfigurationDataModel)value);
+          setSuccess((java.lang.String)value);
         }
         break;
 
@@ -76413,12 +76822,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getUserConfigurationData_result)
-        return this.equals((getUserConfigurationData_result)that);
+      if (that instanceof addProcess_result)
+        return this.equals((addProcess_result)that);
       return false;
     }
 
-    public boolean equals(getUserConfigurationData_result that) {
+    public boolean equals(addProcess_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -76461,7 +76870,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getUserConfigurationData_result other) {
+    public int compareTo(addProcess_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -76505,7 +76914,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getUserConfigurationData_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcess_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -76530,9 +76939,6 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -76551,15 +76957,15 @@ public class RegistryService {
       }
     }
 
-    private static class getUserConfigurationData_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getUserConfigurationData_resultStandardScheme getScheme() {
-        return new getUserConfigurationData_resultStandardScheme();
+    private static class addProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcess_resultStandardScheme getScheme() {
+        return new addProcess_resultStandardScheme();
       }
     }
 
-    private static class getUserConfigurationData_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getUserConfigurationData_result> {
+    private static class addProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcess_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -76570,9 +76976,8 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -76598,13 +77003,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcess_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          oprot.writeString(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -76618,16 +77023,16 @@ public class RegistryService {
 
     }
 
-    private static class getUserConfigurationData_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getUserConfigurationData_resultTupleScheme getScheme() {
-        return new getUserConfigurationData_resultTupleScheme();
+    private static class addProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcess_resultTupleScheme getScheme() {
+        return new addProcess_resultTupleScheme();
       }
     }
 
-    private static class getUserConfigurationData_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getUserConfigurationData_result> {
+    private static class addProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcess_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -76638,7 +77043,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          oprot.writeString(struct.success);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -76646,12 +77051,11 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
-          struct.success.read(iprot);
+          struct.success = iprot.readString();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -76667,19 +77071,22 @@ public class RegistryService {
     }
   }
 
-  public static class getProcess_args implements org.apache.thrift.TBase<getProcess_args, getProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcess_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcess_args");
+  public static class updateProcess_args implements org.apache.thrift.TBase<updateProcess_args, updateProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateProcess_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateProcess_args");
 
-    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField PROCESS_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("processModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcess_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcess_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateProcess_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateProcess_argsTupleSchemeFactory();
 
+    public org.apache.airavata.model.process.ProcessModel processModel; // required
     public java.lang.String processId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROCESS_ID((short)1, "processId");
+      PROCESS_MODEL((short)1, "processModel"),
+      PROCESS_ID((short)2, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -76694,7 +77101,9 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // PROCESS_ID
+          case 1: // PROCESS_MODEL
+            return PROCESS_MODEL;
+          case 2: // PROCESS_ID
             return PROCESS_ID;
           default:
             return null;
@@ -76739,45 +77148,77 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.PROCESS_MODEL, new org.apache.thrift.meta_data.FieldMetaData("processModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
       tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcess_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateProcess_args.class, metaDataMap);
     }
 
-    public getProcess_args() {
+    public updateProcess_args() {
     }
 
-    public getProcess_args(
+    public updateProcess_args(
+      org.apache.airavata.model.process.ProcessModel processModel,
       java.lang.String processId)
     {
       this();
+      this.processModel = processModel;
       this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcess_args(getProcess_args other) {
+    public updateProcess_args(updateProcess_args other) {
+      if (other.isSetProcessModel()) {
+        this.processModel = new org.apache.airavata.model.process.ProcessModel(other.processModel);
+      }
       if (other.isSetProcessId()) {
         this.processId = other.processId;
       }
     }
 
-    public getProcess_args deepCopy() {
-      return new getProcess_args(this);
+    public updateProcess_args deepCopy() {
+      return new updateProcess_args(this);
     }
 
     @Override
     public void clear() {
+      this.processModel = null;
       this.processId = null;
     }
 
+    public org.apache.airavata.model.process.ProcessModel getProcessModel() {
+      return this.processModel;
+    }
+
+    public updateProcess_args setProcessModel(org.apache.airavata.model.process.ProcessModel processModel) {
+      this.processModel = processModel;
+      return this;
+    }
+
+    public void unsetProcessModel() {
+      this.processModel = null;
+    }
+
+    /** Returns true if field processModel is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessModel() {
+      return this.processModel != null;
+    }
+
+    public void setProcessModelIsSet(boolean value) {
+      if (!value) {
+        this.processModel = null;
+      }
+    }
+
     public java.lang.String getProcessId() {
       return this.processId;
     }
 
-    public getProcess_args setProcessId(java.lang.String processId) {
+    public updateProcess_args setProcessId(java.lang.String processId) {
       this.processId = processId;
       return this;
     }
@@ -76799,6 +77240,14 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case PROCESS_MODEL:
+        if (value == null) {
+          unsetProcessModel();
+        } else {
+          setProcessModel((org.apache.airavata.model.process.ProcessModel)value);
+        }
+        break;
+
       case PROCESS_ID:
         if (value == null) {
           unsetProcessId();
@@ -76812,6 +77261,9 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case PROCESS_MODEL:
+        return getProcessModel();
+
       case PROCESS_ID:
         return getProcessId();
 
@@ -76826,6 +77278,8 @@ public class RegistryService {
       }
 
       switch (field) {
+      case PROCESS_MODEL:
+        return isSetProcessModel();
       case PROCESS_ID:
         return isSetProcessId();
       }
@@ -76836,17 +77290,26 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcess_args)
-        return this.equals((getProcess_args)that);
+      if (that instanceof updateProcess_args)
+        return this.equals((updateProcess_args)that);
       return false;
     }
 
-    public boolean equals(getProcess_args that) {
+    public boolean equals(updateProcess_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
+      boolean this_present_processModel = true && this.isSetProcessModel();
+      boolean that_present_processModel = true && that.isSetProcessModel();
+      if (this_present_processModel || that_present_processModel) {
+        if (!(this_present_processModel && that_present_processModel))
+          return false;
+        if (!this.processModel.equals(that.processModel))
+          return false;
+      }
+
       boolean this_present_processId = true && this.isSetProcessId();
       boolean that_present_processId = true && that.isSetProcessId();
       if (this_present_processId || that_present_processId) {
@@ -76863,6 +77326,10 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetProcessModel()) ? 131071 : 524287);
+      if (isSetProcessModel())
+        hashCode = hashCode * 8191 + processModel.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
       if (isSetProcessId())
         hashCode = hashCode * 8191 + processId.hashCode();
@@ -76871,13 +77338,23 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getProcess_args other) {
+    public int compareTo(updateProcess_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessModel()).compareTo(other.isSetProcessModel());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetProcessModel()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processModel, other.processModel);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
       if (lastComparison != 0) {
         return lastComparison;
@@ -76905,9 +77382,17 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcess_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateProcess_args(");
       boolean first = true;
 
+      sb.append("processModel:");
+      if (this.processModel == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processModel);
+      }
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("processId:");
       if (this.processId == null) {
         sb.append("null");
@@ -76921,10 +77406,16 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
+      if (processModel == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processModel' was not present! Struct: " + toString());
+      }
       if (processId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
+      if (processModel != null) {
+        processModel.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -76943,15 +77434,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcess_argsStandardScheme getScheme() {
-        return new getProcess_argsStandardScheme();
+    private static class updateProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateProcess_argsStandardScheme getScheme() {
+        return new updateProcess_argsStandardScheme();
       }
     }
 
-    private static class getProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcess_args> {
+    private static class updateProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateProcess_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -76961,7 +77452,16 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // PROCESS_ID
+            case 1: // PROCESS_MODEL
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.processModel = new org.apache.airavata.model.process.ProcessModel();
+                struct.processModel.read(iprot);
+                struct.setProcessModelIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // PROCESS_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                 struct.processId = iprot.readString();
                 struct.setProcessIdIsSet(true);
@@ -76980,10 +77480,15 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, updateProcess_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.processModel != null) {
+          oprot.writeFieldBegin(PROCESS_MODEL_FIELD_DESC);
+          struct.processModel.write(oprot);
+          oprot.writeFieldEnd();
+        }
         if (struct.processId != null) {
           oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
           oprot.writeString(struct.processId);
@@ -76995,23 +77500,27 @@ public class RegistryService {
 
     }
 
-    private static class getProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcess_argsTupleScheme getScheme() {
-        return new getProcess_argsTupleScheme();
+    private static class updateProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateProcess_argsTupleScheme getScheme() {
+        return new updateProcess_argsTupleScheme();
       }
     }
 
-    private static class getProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcess_args> {
+    private static class updateProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateProcess_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcess_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.processModel.write(oprot);
         oprot.writeString(struct.processId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcess_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.processModel = new org.apache.airavata.model.process.ProcessModel();
+        struct.processModel.read(iprot);
+        struct.setProcessModelIsSet(true);
         struct.processId = iprot.readString();
         struct.setProcessIdIsSet(true);
       }
@@ -77022,21 +77531,18 @@ public class RegistryService {
     }
   }
 
-  public static class getProcess_result implements org.apache.thrift.TBase<getProcess_result, getProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcess_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcess_result");
+  public static class updateProcess_result implements org.apache.thrift.TBase<updateProcess_result, updateProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateProcess_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateProcess_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcess_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcess_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateProcess_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateProcess_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.process.ProcessModel success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      SUCCESS((short)0, "success"),
       RSE((short)1, "rse");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -77052,8 +77558,6 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
           case 1: // RSE
             return RSE;
           default:
@@ -77099,77 +77603,45 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcess_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateProcess_result.class, metaDataMap);
     }
 
-    public getProcess_result() {
+    public updateProcess_result() {
     }
 
-    public getProcess_result(
-      org.apache.airavata.model.process.ProcessModel success,
+    public updateProcess_result(
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
-      this.success = success;
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcess_result(getProcess_result other) {
-      if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.process.ProcessModel(other.success);
-      }
+    public updateProcess_result(updateProcess_result other) {
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getProcess_result deepCopy() {
-      return new getProcess_result(this);
+    public updateProcess_result deepCopy() {
+      return new updateProcess_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
       this.rse = null;
     }
 
-    public org.apache.airavata.model.process.ProcessModel getSuccess() {
-      return this.success;
-    }
-
-    public getProcess_result setSuccess(org.apache.airavata.model.process.ProcessModel success) {
-      this.success = success;
-      return this;
-    }
-
-    public void unsetSuccess() {
-      this.success = null;
-    }
-
-    /** Returns true if field success is set (has been assigned a value) and false otherwise */
-    public boolean isSetSuccess() {
-      return this.success != null;
-    }
-
-    public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
-    }
-
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public getProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public updateProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -77191,14 +77663,6 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case SUCCESS:
-        if (value == null) {
-          unsetSuccess();
-        } else {
-          setSuccess((org.apache.airavata.model.process.ProcessModel)value);
-        }
-        break;
-
       case RSE:
         if (value == null) {
           unsetRse();
@@ -77212,9 +77676,6 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case SUCCESS:
-        return getSuccess();
-
       case RSE:
         return getRse();
 
@@ -77229,8 +77690,6 @@ public class RegistryService {
       }
 
       switch (field) {
-      case SUCCESS:
-        return isSetSuccess();
       case RSE:
         return isSetRse();
       }
@@ -77241,26 +77700,17 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcess_result)
-        return this.equals((getProcess_result)that);
+      if (that instanceof updateProcess_result)
+        return this.equals((updateProcess_result)that);
       return false;
     }
 
-    public boolean equals(getProcess_result that) {
+    public boolean equals(updateProcess_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
-      if (this_present_success || that_present_success) {
-        if (!(this_present_success && that_present_success))
-          return false;
-        if (!this.success.equals(that.success))
-          return false;
-      }
-
       boolean this_present_rse = true && this.isSetRse();
       boolean that_present_rse = true && that.isSetRse();
       if (this_present_rse || that_present_rse) {
@@ -77277,10 +77727,6 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
-
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
         hashCode = hashCode * 8191 + rse.hashCode();
@@ -77289,23 +77735,13 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getProcess_result other) {
+    public int compareTo(updateProcess_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetSuccess()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
       if (lastComparison != 0) {
         return lastComparison;
@@ -77333,17 +77769,9 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcess_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateProcess_result(");
       boolean first = true;
 
-      sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("rse:");
       if (this.rse == null) {
         sb.append("null");
@@ -77358,9 +77786,6 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -77379,15 +77804,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcess_resultStandardScheme getScheme() {
-        return new getProcess_resultStandardScheme();
+    private static class updateProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateProcess_resultStandardScheme getScheme() {
+        return new updateProcess_resultStandardScheme();
       }
     }
 
-    private static class getProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcess_result> {
+    private static class updateProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateProcess_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -77397,15 +77822,6 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.process.ProcessModel();
-                struct.success.read(iprot);
-                struct.setSuccessIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
             case 1: // RSE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
@@ -77426,15 +77842,10 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, updateProcess_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
-          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
-          oprot.writeFieldEnd();
-        }
         if (struct.rse != null) {
           oprot.writeFieldBegin(RSE_FIELD_DESC);
           struct.rse.write(oprot);
@@ -77446,43 +77857,32 @@ public class RegistryService {
 
     }
 
-    private static class getProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcess_resultTupleScheme getScheme() {
-        return new getProcess_resultTupleScheme();
+    private static class updateProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateProcess_resultTupleScheme getScheme() {
+        return new updateProcess_resultTupleScheme();
       }
     }
 
-    private static class getProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcess_result> {
+    private static class updateProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateProcess_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcess_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetSuccess()) {
-          optionals.set(0);
-        }
         if (struct.isSetRse()) {
-          optionals.set(1);
-        }
-        oprot.writeBitSet(optionals, 2);
-        if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          optionals.set(0);
         }
+        oprot.writeBitSet(optionals, 1);
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcess_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(2);
+        java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.process.ProcessModel();
-          struct.success.read(iprot);
-          struct.setSuccessIsSet(true);
-        }
-        if (incoming.get(1)) {
           struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
           struct.rse.read(iprot);
           struct.setRseIsSet(true);
@@ -77495,19 +77895,22 @@ public class RegistryService {
     }
   }
 
-  public static class getProcessList_args implements org.apache.thrift.TBase<getProcessList_args, getProcessList_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessList_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessList_args");
+  public static class addTask_args implements org.apache.thrift.TBase<addTask_args, addTask_args._Fields>, java.io.Serializable, Cloneable, Comparable<addTask_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTask_args");
 
-    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField TASK_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("taskModel", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessList_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessList_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addTask_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTask_argsTupleSchemeFactory();
 
-    public java.lang.String experimentId; // required
+    public org.apache.airavata.model.task.TaskModel taskModel; // required
+    public java.lang.String processId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      EXPERIMENT_ID((short)1, "experimentId");
+      TASK_MODEL((short)1, "taskModel"),
+      PROCESS_ID((short)2, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -77522,8 +77925,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // EXPERIMENT_ID
-            return EXPERIMENT_ID;
+          case 1: // TASK_MODEL
+            return TASK_MODEL;
+          case 2: // PROCESS_ID
+            return PROCESS_ID;
           default:
             return null;
         }
@@ -77567,71 +77972,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.TASK_MODEL, new org.apache.thrift.meta_data.FieldMetaData("taskModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.task.TaskModel.class)));
+      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessList_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addTask_args.class, metaDataMap);
     }
 
-    public getProcessList_args() {
+    public addTask_args() {
     }
 
-    public getProcessList_args(
-      java.lang.String experimentId)
+    public addTask_args(
+      org.apache.airavata.model.task.TaskModel taskModel,
+      java.lang.String processId)
     {
       this();
-      this.experimentId = experimentId;
+      this.taskModel = taskModel;
+      this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcessList_args(getProcessList_args other) {
-      if (other.isSetExperimentId()) {
-        this.experimentId = other.experimentId;
+    public addTask_args(addTask_args other) {
+      if (other.isSetTaskModel()) {
+        this.taskModel = new org.apache.airavata.model.task.TaskModel(other.taskModel);
+      }
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
     }
 
-    public getProcessList_args deepCopy() {
-      return new getProcessList_args(this);
+    public addTask_args deepCopy() {
+      return new addTask_args(this);
     }
 
     @Override
     public void clear() {
-      this.experimentId = null;
+      this.taskModel = null;
+      this.processId = null;
     }
 
-    public java.lang.String getExperimentId() {
-      return this.experimentId;
+    public org.apache.airavata.model.task.TaskModel getTaskModel() {
+      return this.taskModel;
     }
 
-    public getProcessList_args setExperimentId(java.lang.String experimentId) {
-      this.experimentId = experimentId;
+    public addTask_args setTaskModel(org.apache.airavata.model.task.TaskModel taskModel) {
+      this.taskModel = taskModel;
       return this;
     }
 
-    public void unsetExperimentId() {
-      this.experimentId = null;
+    public void unsetTaskModel() {
+      this.taskModel = null;
     }
 
-    /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
-    public boolean isSetExperimentId() {
-      return this.experimentId != null;
+    /** Returns true if field taskModel is set (has been assigned a value) and false otherwise */
+    public boolean isSetTaskModel() {
+      return this.taskModel != null;
     }
 
-    public void setExperimentIdIsSet(boolean value) {
+    public void setTaskModelIsSet(boolean value) {
       if (!value) {
-        this.experimentId = null;
+        this.taskModel = null;
+      }
+    }
+
+    public java.lang.String getProcessId() {
+      return this.processId;
+    }
+
+    public addTask_args setProcessId(java.lang.String processId) {
+      this.processId = processId;
+      return this;
+    }
+
+    public void unsetProcessId() {
+      this.processId = null;
+    }
+
+    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessId() {
+      return this.processId != null;
+    }
+
+    public void setProcessIdIsSet(boolean value) {
+      if (!value) {
+        this.processId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case EXPERIMENT_ID:
+      case TASK_MODEL:
         if (value == null) {
-          unsetExperimentId();
+          unsetTaskModel();
         } else {
-          setExperimentId((java.lang.String)value);
+          setTaskModel((org.apache.airavata.model.task.TaskModel)value);
+        }
+        break;
+
+      case PROCESS_ID:
+        if (value == null) {
+          unsetProcessId();
+        } else {
+          setProcessId((java.lang.String)value);
         }
         break;
 
@@ -77640,8 +78085,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case EXPERIMENT_ID:
-        return getExperimentId();
+      case TASK_MODEL:
+        return getTaskModel();
+
+      case PROCESS_ID:
+        return getProcessId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -77654,8 +78102,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case EXPERIMENT_ID:
-        return isSetExperimentId();
+      case TASK_MODEL:
+        return isSetTaskModel();
+      case PROCESS_ID:
+        return isSetProcessId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -77664,23 +78114,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcessList_args)
-        return this.equals((getProcessList_args)that);
+      if (that instanceof addTask_args)
+        return this.equals((addTask_args)that);
       return false;
     }
 
-    public boolean equals(getProcessList_args that) {
+    public boolean equals(addTask_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_experimentId = true && this.isSetExperimentId();
-      boolean that_present_experimentId = true && that.isSetExperimentId();
-      if (this_present_experimentId || that_present_experimentId) {
-        if (!(this_present_experimentId && that_present_experimentId))
+      boolean this_present_taskModel = true && this.isSetTaskModel();
+      boolean that_present_taskModel = true && that.isSetTaskModel();
+      if (this_present_taskModel || that_present_taskModel) {
+        if (!(this_present_taskModel && that_present_taskModel))
           return false;
-        if (!this.experimentId.equals(that.experimentId))
+        if (!this.taskModel.equals(that.taskModel))
+          return false;
+      }
+
+      boolean this_present_processId = true && this.isSetProcessId();
+      boolean that_present_processId = true && that.isSetProcessId();
+      if (this_present_processId || that_present_processId) {
+        if (!(this_present_processId && that_present_processId))
+          return false;
+        if (!this.processId.equals(that.processId))
           return false;
       }
 
@@ -77691,27 +78150,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
-      if (isSetExperimentId())
-        hashCode = hashCode * 8191 + experimentId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetTaskModel()) ? 131071 : 524287);
+      if (isSetTaskModel())
+        hashCode = hashCode * 8191 + taskModel.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
+      if (isSetProcessId())
+        hashCode = hashCode * 8191 + processId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getProcessList_args other) {
+    public int compareTo(addTask_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+      lastComparison = java.lang.Boolean.valueOf(isSetTaskModel()).compareTo(other.isSetTaskModel());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetExperimentId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (isSetTaskModel()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskModel, other.taskModel);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetProcessId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -77733,14 +78206,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessList_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTask_args(");
       boolean first = true;
 
-      sb.append("experimentId:");
-      if (this.experimentId == null) {
+      sb.append("taskModel:");
+      if (this.taskModel == null) {
         sb.append("null");
       } else {
-        sb.append(this.experimentId);
+        sb.append(this.taskModel);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("processId:");
+      if (this.processId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processId);
       }
       first = false;
       sb.append(")");
@@ -77749,10 +78230,16 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (experimentId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+      if (taskModel == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskModel' was not present! Struct: " + toString());
+      }
+      if (processId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
+      if (taskModel != null) {
+        taskModel.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -77771,15 +78258,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcessList_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessList_argsStandardScheme getScheme() {
-        return new getProcessList_argsStandardScheme();
+    private static class addTask_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTask_argsStandardScheme getScheme() {
+        return new addTask_argsStandardScheme();
       }
     }
 
-    private static class getProcessList_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessList_args> {
+    private static class addTask_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTask_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessList_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addTask_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -77789,10 +78276,19 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // EXPERIMENT_ID
+            case 1: // TASK_MODEL
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.taskModel = new org.apache.airavata.model.task.TaskModel();
+                struct.taskModel.read(iprot);
+                struct.setTaskModelIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // PROCESS_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.experimentId = iprot.readString();
-                struct.setExperimentIdIsSet(true);
+                struct.processId = iprot.readString();
+                struct.setProcessIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -77808,13 +78304,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessList_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addTask_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.experimentId != null) {
-          oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.experimentId);
+        if (struct.taskModel != null) {
+          oprot.writeFieldBegin(TASK_MODEL_FIELD_DESC);
+          struct.taskModel.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.processId != null) {
+          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+          oprot.writeString(struct.processId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -77823,25 +78324,29 @@ public class RegistryService {
 
     }
 
-    private static class getProcessList_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessList_argsTupleScheme getScheme() {
-        return new getProcessList_argsTupleScheme();
+    private static class addTask_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTask_argsTupleScheme getScheme() {
+        return new addTask_argsTupleScheme();
       }
     }
 
-    private static class getProcessList_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessList_args> {
+    private static class addTask_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTask_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessList_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addTask_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.experimentId);
+        struct.taskModel.write(oprot);
+        oprot.writeString(struct.processId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessList_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addTask_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.experimentId = iprot.readString();
-        struct.setExperimentIdIsSet(true);
+        struct.taskModel = new org.apache.airavata.model.task.TaskModel();
+        struct.taskModel.read(iprot);
+        struct.setTaskModelIsSet(true);
+        struct.processId = iprot.readString();
+        struct.setProcessIdIsSet(true);
       }
     }
 
@@ -77850,16 +78355,16 @@ public class RegistryService {
     }
   }
 
-  public static class getProcessList_result implements org.apache.thrift.TBase<getProcessList_result, getProcessList_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessList_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessList_result");
+  public static class addTask_result implements org.apache.thrift.TBase<addTask_result, addTask_result._Fields>, java.io.Serializable, Cloneable, Comparable<addTask_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTask_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessList_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessList_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addTask_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTask_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.process.ProcessModel> success; // required
+    public java.lang.String success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -77928,19 +78433,18 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class))));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessList_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addTask_result.class, metaDataMap);
     }
 
-    public getProcessList_result() {
+    public addTask_result() {
     }
 
-    public getProcessList_result(
-      java.util.List<org.apache.airavata.model.process.ProcessModel> success,
+    public addTask_result(
+      java.lang.String success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -77951,21 +78455,17 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcessList_result(getProcessList_result other) {
+    public addTask_result(addTask_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.process.ProcessModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(other.success.size());
-        for (org.apache.airavata.model.process.ProcessModel other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.process.ProcessModel(other_element));
-        }
-        this.success = __this__success;
+        this.success = other.success;
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getProcessList_result deepCopy() {
-      return new getProcessList_result(this);
+    public addTask_result deepCopy() {
+      return new addTask_result(this);
     }
 
     @Override
@@ -77974,26 +78474,11 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.process.ProcessModel> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.process.ProcessModel elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.process.ProcessModel> getSuccess() {
+    public java.lang.String getSuccess() {
       return this.success;
     }
 
-    public getProcessList_result setSuccess(java.util.List<org.apache.airavata.model.process.ProcessModel> success) {
+    public addTask_result setSuccess(java.lang.String success) {
       this.success = success;
       return this;
     }
@@ -78017,7 +78502,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getProcessList_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public addTask_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -78043,7 +78528,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.process.ProcessModel>)value);
+          setSuccess((java.lang.String)value);
         }
         break;
 
@@ -78089,12 +78574,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcessList_result)
-        return this.equals((getProcessList_result)that);
+      if (that instanceof addTask_result)
+        return this.equals((addTask_result)that);
       return false;
     }
 
-    public boolean equals(getProcessList_result that) {
+    public boolean equals(addTask_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -78137,7 +78622,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getProcessList_result other) {
+    public int compareTo(addTask_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -78181,7 +78666,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessList_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTask_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -78224,15 +78709,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcessList_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessList_resultStandardScheme getScheme() {
-        return new getProcessList_resultStandardScheme();
+    private static class addTask_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTask_resultStandardScheme getScheme() {
+        return new addTask_resultStandardScheme();
       }
     }
 
-    private static class getProcessList_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessList_result> {
+    private static class addTask_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTask_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessList_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addTask_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -78243,19 +78728,8 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list142 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(_list142.size);
-                  org.apache.airavata.model.process.ProcessModel _elem143;
-                  for (int _i144 = 0; _i144 < _list142.size; ++_i144)
-                  {
-                    _elem143 = new org.apache.airavata.model.process.ProcessModel();
-                    _elem143.read(iprot);
-                    struct.success.add(_elem143);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -78281,20 +78755,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessList_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addTask_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.process.ProcessModel _iter145 : struct.success)
-            {
-              _iter145.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
+          oprot.writeString(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -78308,16 +78775,16 @@ public class RegistryService {
 
     }
 
-    private static class getProcessList_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessList_resultTupleScheme getScheme() {
-        return new getProcessList_resultTupleScheme();
+    private static class addTask_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTask_resultTupleScheme getScheme() {
+        return new addTask_resultTupleScheme();
       }
     }
 
-    private static class getProcessList_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessList_result> {
+    private static class addTask_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTask_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessList_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addTask_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -78328,13 +78795,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          {
-            oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.process.ProcessModel _iter146 : struct.success)
-            {
-              _iter146.write(oprot);
-            }
-          }
+          oprot.writeString(struct.success);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -78342,21 +78803,11 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessList_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addTask_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          {
-            org.apache.thrift.protocol.TList _list147 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(_list147.size);
-            org.apache.airavata.model.process.ProcessModel _elem148;
-            for (int _i149 = 0; _i149 < _list147.size; ++_i149)
-            {
-              _elem148 = new org.apache.airavata.model.process.ProcessModel();
-              _elem148.read(iprot);
-              struct.success.add(_elem148);
-            }
-          }
+          struct.success = iprot.readString();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -78372,19 +78823,19 @@ public class RegistryService {
     }
   }
 
-  public static class getProcessStatus_args implements org.apache.thrift.TBase<getProcessStatus_args, getProcessStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessStatus_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessStatus_args");
+  public static class getUserConfigurationData_args implements org.apache.thrift.TBase<getUserConfigurationData_args, getUserConfigurationData_args._Fields>, java.io.Serializable, Cloneable, Comparable<getUserConfigurationData_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserConfigurationData_args");
 
-    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessStatus_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessStatus_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getUserConfigurationData_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getUserConfigurationData_argsTupleSchemeFactory();
 
-    public java.lang.String processId; // required
+    public java.lang.String experimentId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROCESS_ID((short)1, "processId");
+      EXPERIMENT_ID((short)1, "experimentId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -78399,8 +78850,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // PROCESS_ID
-            return PROCESS_ID;
+          case 1: // EXPERIMENT_ID
+            return EXPERIMENT_ID;
           default:
             return null;
         }
@@ -78444,71 +78895,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessStatus_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserConfigurationData_args.class, metaDataMap);
     }
 
-    public getProcessStatus_args() {
+    public getUserConfigurationData_args() {
     }
 
-    public getProcessStatus_args(
-      java.lang.String processId)
+    public getUserConfigurationData_args(
+      java.lang.String experimentId)
     {
       this();
-      this.processId = processId;
+      this.experimentId = experimentId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcessStatus_args(getProcessStatus_args other) {
-      if (other.isSetProcessId()) {
-        this.processId = other.processId;
+    public getUserConfigurationData_args(getUserConfigurationData_args other) {
+      if (other.isSetExperimentId()) {
+        this.experimentId = other.experimentId;
       }
     }
 
-    public getProcessStatus_args deepCopy() {
-      return new getProcessStatus_args(this);
+    public getUserConfigurationData_args deepCopy() {
+      return new getUserConfigurationData_args(this);
     }
 
     @Override
     public void clear() {
-      this.processId = null;
+      this.experimentId = null;
     }
 
-    public java.lang.String getProcessId() {
-      return this.processId;
+    public java.lang.String getExperimentId() {
+      return this.experimentId;
     }
 
-    public getProcessStatus_args setProcessId(java.lang.String processId) {
-      this.processId = processId;
+    public getUserConfigurationData_args setExperimentId(java.lang.String experimentId) {
+      this.experimentId = experimentId;
       return this;
     }
 
-    public void unsetProcessId() {
-      this.processId = null;
+    public void unsetExperimentId() {
+      this.experimentId = null;
     }
 
-    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessId() {
-      return this.processId != null;
+    /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetExperimentId() {
+      return this.experimentId != null;
     }
 
-    public void setProcessIdIsSet(boolean value) {
+    public void setExperimentIdIsSet(boolean value) {
       if (!value) {
-        this.processId = null;
+        this.experimentId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case PROCESS_ID:
+      case EXPERIMENT_ID:
         if (value == null) {
-          unsetProcessId();
+          unsetExperimentId();
         } else {
-          setProcessId((java.lang.String)value);
+          setExperimentId((java.lang.String)value);
         }
         break;
 
@@ -78517,8 +78968,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case PROCESS_ID:
-        return getProcessId();
+      case EXPERIMENT_ID:
+        return getExperimentId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -78531,8 +78982,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case PROCESS_ID:
-        return isSetProcessId();
+      case EXPERIMENT_ID:
+        return isSetExperimentId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -78541,23 +78992,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcessStatus_args)
-        return this.equals((getProcessStatus_args)that);
+      if (that instanceof getUserConfigurationData_args)
+        return this.equals((getUserConfigurationData_args)that);
       return false;
     }
 
-    public boolean equals(getProcessStatus_args that) {
+    public boolean equals(getUserConfigurationData_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_processId = true && this.isSetProcessId();
-      boolean that_present_processId = true && that.isSetProcessId();
-      if (this_present_processId || that_present_processId) {
-        if (!(this_present_processId && that_present_processId))
+      boolean this_present_experimentId = true && this.isSetExperimentId();
+      boolean that_present_experimentId = true && that.isSetExperimentId();
+      if (this_present_experimentId || that_present_experimentId) {
+        if (!(this_present_experimentId && that_present_experimentId))
           return false;
-        if (!this.processId.equals(that.processId))
+        if (!this.experimentId.equals(that.experimentId))
           return false;
       }
 
@@ -78568,27 +79019,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
-      if (isSetProcessId())
-        hashCode = hashCode * 8191 + processId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
+      if (isSetExperimentId())
+        hashCode = hashCode * 8191 + experimentId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getProcessStatus_args other) {
+    public int compareTo(getUserConfigurationData_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+      lastComparison = java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetProcessId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (isSetExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -78610,14 +79061,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessStatus_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getUserConfigurationData_args(");
       boolean first = true;
 
-      sb.append("processId:");
-      if (this.processId == null) {
+      sb.append("experimentId:");
+      if (this.experimentId == null) {
         sb.append("null");
       } else {
-        sb.append(this.processId);
+        sb.append(this.experimentId);
       }
       first = false;
       sb.append(")");
@@ -78626,8 +79077,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (processId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+      if (experimentId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -78648,15 +79099,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcessStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessStatus_argsStandardScheme getScheme() {
-        return new getProcessStatus_argsStandardScheme();
+    private static class getUserConfigurationData_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getUserConfigurationData_argsStandardScheme getScheme() {
+        return new getUserConfigurationData_argsStandardScheme();
       }
     }
 
-    private static class getProcessStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessStatus_args> {
+    private static class getUserConfigurationData_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getUserConfigurationData_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessStatus_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -78666,10 +79117,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // PROCESS_ID
+            case 1: // EXPERIMENT_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.processId = iprot.readString();
-                struct.setProcessIdIsSet(true);
+                struct.experimentId = iprot.readString();
+                struct.setExperimentIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -78685,13 +79136,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessStatus_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.processId != null) {
-          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
-          oprot.writeString(struct.processId);
+        if (struct.experimentId != null) {
+          oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.experimentId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -78700,25 +79151,25 @@ public class RegistryService {
 
     }
 
-    private static class getProcessStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessStatus_argsTupleScheme getScheme() {
-        return new getProcessStatus_argsTupleScheme();
+    private static class getUserConfigurationData_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getUserConfigurationData_argsTupleScheme getScheme() {
+        return new getUserConfigurationData_argsTupleScheme();
       }
     }
 
-    private static class getProcessStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessStatus_args> {
+    private static class getUserConfigurationData_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getUserConfigurationData_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.processId);
+        oprot.writeString(struct.experimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.processId = iprot.readString();
-        struct.setProcessIdIsSet(true);
+        struct.experimentId = iprot.readString();
+        struct.setExperimentIdIsSet(true);
       }
     }
 
@@ -78727,16 +79178,16 @@ public class RegistryService {
     }
   }
 
-  public static class getProcessStatus_result implements org.apache.thrift.TBase<getProcessStatus_result, getProcessStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessStatus_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessStatus_result");
+  public static class getUserConfigurationData_result implements org.apache.thrift.TBase<getUserConfigurationData_result, getUserConfigurationData_result._Fields>, java.io.Serializable, Cloneable, Comparable<getUserConfigurationData_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserConfigurationData_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessStatus_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessStatus_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getUserConfigurationData_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getUserConfigurationData_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.status.ProcessStatus success; // required
+    public org.apache.airavata.model.experiment.UserConfigurationDataModel success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -78805,18 +79256,18 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.experiment.UserConfigurationDataModel.class)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessStatus_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserConfigurationData_result.class, metaDataMap);
     }
 
-    public getProcessStatus_result() {
+    public getUserConfigurationData_result() {
     }
 
-    public getProcessStatus_result(
-      org.apache.airavata.model.status.ProcessStatus success,
+    public getUserConfigurationData_result(
+      org.apache.airavata.model.experiment.UserConfigurationDataModel success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -78827,17 +79278,17 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcessStatus_result(getProcessStatus_result other) {
+    public getUserConfigurationData_result(getUserConfigurationData_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.status.ProcessStatus(other.success);
+        this.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel(other.success);
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getProcessStatus_result deepCopy() {
-      return new getProcessStatus_result(this);
+    public getUserConfigurationData_result deepCopy() {
+      return new getUserConfigurationData_result(this);
     }
 
     @Override
@@ -78846,11 +79297,11 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public org.apache.airavata.model.status.ProcessStatus getSuccess() {
+    public org.apache.airavata.model.experiment.UserConfigurationDataModel getSuccess() {
       return this.success;
     }
 
-    public getProcessStatus_result setSuccess(org.apache.airavata.model.status.ProcessStatus success) {
+    public getUserConfigurationData_result setSuccess(org.apache.airavata.model.experiment.UserConfigurationDataModel success) {
       this.success = success;
       return this;
     }
@@ -78874,7 +79325,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getProcessStatus_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getUserConfigurationData_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -78900,7 +79351,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.status.ProcessStatus)value);
+          setSuccess((org.apache.airavata.model.experiment.UserConfigurationDataModel)value);
         }
         break;
 
@@ -78946,12 +79397,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcessStatus_result)
-        return this.equals((getProcessStatus_result)that);
+      if (that instanceof getUserConfigurationData_result)
+        return this.equals((getUserConfigurationData_result)that);
       return false;
     }
 
-    public boolean equals(getProcessStatus_result that) {
+    public boolean equals(getUserConfigurationData_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -78994,7 +79445,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getProcessStatus_result other) {
+    public int compareTo(getUserConfigurationData_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -79038,7 +79489,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessStatus_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getUserConfigurationData_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -79084,15 +79535,15 @@ public class RegistryService {
       }
     }
 
-    private static class getProcessStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessStatus_resultStandardScheme getScheme() {
-        return new getProcessStatus_resultStandardScheme();
+    private static class getUserConfigurationData_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getUserConfigurationData_resultStandardScheme getScheme() {
+        return new getUserConfigurationData_resultStandardScheme();
       }
     }
 
-    private static class getProcessStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessStatus_result> {
+    private static class getUserConfigurationData_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getUserConfigurationData_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessStatus_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -79104,7 +79555,7 @@ public class RegistryService {
           switch (schemeField.id) {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.status.ProcessStatus();
+                struct.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
                 struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
@@ -79131,7 +79582,7 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessStatus_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -79151,16 +79602,16 @@ public class RegistryService {
 
     }
 
-    private static class getProcessStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getProcessStatus_resultTupleScheme getScheme() {
-        return new getProcessStatus_resultTupleScheme();
+    private static class getUserConfigurationData_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getUserConfigurationData_resultTupleScheme getScheme() {
+        return new getUserConfigurationData_resultTupleScheme();
       }
     }
 
-    private static class getProcessStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessStatus_result> {
+    private static class getUserConfigurationData_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getUserConfigurationData_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -79179,11 +79630,11 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getUserConfigurationData_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.status.ProcessStatus();
+          struct.success = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
           struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
@@ -79200,22 +79651,19 @@ public class RegistryService {
     }
   }
 
-  public static class isJobExist_args implements org.apache.thrift.TBase<isJobExist_args, isJobExist_args._Fields>, java.io.Serializable, Cloneable, Comparable<isJobExist_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isJobExist_args");
+  public static class getProcess_args implements org.apache.thrift.TBase<getProcess_args, getProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcess_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcess_args");
 
-    private static final org.apache.thrift.protocol.TField QUERY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("queryType", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isJobExist_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isJobExist_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcess_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcess_argsTupleSchemeFactory();
 
-    public java.lang.String queryType; // required
-    public java.lang.String id; // required
+    public java.lang.String processId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      QUERY_TYPE((short)1, "queryType"),
-      ID((short)2, "id");
+      PROCESS_ID((short)1, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -79230,10 +79678,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // QUERY_TYPE
-            return QUERY_TYPE;
-          case 2: // ID
-            return ID;
+          case 1: // PROCESS_ID
+            return PROCESS_ID;
           default:
             return null;
         }
@@ -79277,111 +79723,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.QUERY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("queryType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isJobExist_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcess_args.class, metaDataMap);
     }
 
-    public isJobExist_args() {
+    public getProcess_args() {
     }
 
-    public isJobExist_args(
-      java.lang.String queryType,
-      java.lang.String id)
+    public getProcess_args(
+      java.lang.String processId)
     {
       this();
-      this.queryType = queryType;
-      this.id = id;
+      this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public isJobExist_args(isJobExist_args other) {
-      if (other.isSetQueryType()) {
-        this.queryType = other.queryType;
-      }
-      if (other.isSetId()) {
-        this.id = other.id;
+    public getProcess_args(getProcess_args other) {
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
     }
 
-    public isJobExist_args deepCopy() {
-      return new isJobExist_args(this);
+    public getProcess_args deepCopy() {
+      return new getProcess_args(this);
     }
 
     @Override
     public void clear() {
-      this.queryType = null;
-      this.id = null;
-    }
-
-    public java.lang.String getQueryType() {
-      return this.queryType;
-    }
-
-    public isJobExist_args setQueryType(java.lang.String queryType) {
-      this.queryType = queryType;
-      return this;
-    }
-
-    public void unsetQueryType() {
-      this.queryType = null;
-    }
-
-    /** Returns true if field queryType is set (has been assigned a value) and false otherwise */
-    public boolean isSetQueryType() {
-      return this.queryType != null;
-    }
-
-    public void setQueryTypeIsSet(boolean value) {
-      if (!value) {
-        this.queryType = null;
-      }
+      this.processId = null;
     }
 
-    public java.lang.String getId() {
-      return this.id;
+    public java.lang.String getProcessId() {
+      return this.processId;
     }
 
-    public isJobExist_args setId(java.lang.String id) {
-      this.id = id;
+    public getProcess_args setProcessId(java.lang.String processId) {
+      this.processId = processId;
       return this;
     }
 
-    public void unsetId() {
-      this.id = null;
+    public void unsetProcessId() {
+      this.processId = null;
     }
 
-    /** Returns true if field id is set (has been assigned a value) and false otherwise */
-    public boolean isSetId() {
-      return this.id != null;
+    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessId() {
+      return this.processId != null;
     }
 
-    public void setIdIsSet(boolean value) {
+    public void setProcessIdIsSet(boolean value) {
       if (!value) {
-        this.id = null;
+        this.processId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case QUERY_TYPE:
-        if (value == null) {
-          unsetQueryType();
-        } else {
-          setQueryType((java.lang.String)value);
-        }
-        break;
-
-      case ID:
+      case PROCESS_ID:
         if (value == null) {
-          unsetId();
+          unsetProcessId();
         } else {
-          setId((java.lang.String)value);
+          setProcessId((java.lang.String)value);
         }
         break;
 
@@ -79390,11 +79796,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case QUERY_TYPE:
-        return getQueryType();
-
-      case ID:
-        return getId();
+      case PROCESS_ID:
+        return getProcessId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -79407,10 +79810,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case QUERY_TYPE:
-        return isSetQueryType();
-      case ID:
-        return isSetId();
+      case PROCESS_ID:
+        return isSetProcessId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -79419,32 +79820,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof isJobExist_args)
-        return this.equals((isJobExist_args)that);
+      if (that instanceof getProcess_args)
+        return this.equals((getProcess_args)that);
       return false;
     }
 
-    public boolean equals(isJobExist_args that) {
+    public boolean equals(getProcess_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_queryType = true && this.isSetQueryType();
-      boolean that_present_queryType = true && that.isSetQueryType();
-      if (this_present_queryType || that_present_queryType) {
-        if (!(this_present_queryType && that_present_queryType))
-          return false;
-        if (!this.queryType.equals(that.queryType))
-          return false;
-      }
-
-      boolean this_present_id = true && this.isSetId();
-      boolean that_present_id = true && that.isSetId();
-      if (this_present_id || that_present_id) {
-        if (!(this_present_id && that_present_id))
+      boolean this_present_processId = true && this.isSetProcessId();
+      boolean that_present_processId = true && that.isSetProcessId();
+      if (this_present_processId || that_present_processId) {
+        if (!(this_present_processId && that_present_processId))
           return false;
-        if (!this.id.equals(that.id))
+        if (!this.processId.equals(that.processId))
           return false;
       }
 
@@ -79455,41 +79847,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetQueryType()) ? 131071 : 524287);
-      if (isSetQueryType())
-        hashCode = hashCode * 8191 + queryType.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetId()) ? 131071 : 524287);
-      if (isSetId())
-        hashCode = hashCode * 8191 + id.hashCode();
+      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
+      if (isSetProcessId())
+        hashCode = hashCode * 8191 + processId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(isJobExist_args other) {
+    public int compareTo(getProcess_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetQueryType()).compareTo(other.isSetQueryType());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetQueryType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queryType, other.queryType);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+      if (isSetProcessId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -79511,22 +79889,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("isJobExist_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcess_args(");
       boolean first = true;
 
-      sb.append("queryType:");
-      if (this.queryType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.queryType);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("id:");
-      if (this.id == null) {
+      sb.append("processId:");
+      if (this.processId == null) {
         sb.append("null");
       } else {
-        sb.append(this.id);
+        sb.append(this.processId);
       }
       first = false;
       sb.append(")");
@@ -79535,11 +79905,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (queryType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'queryType' was not present! Struct: " + toString());
-      }
-      if (id == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString());
+      if (processId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -79560,15 +79927,15 @@ public class RegistryService {
       }
     }
 
-    private static class isJobExist_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public isJobExist_argsStandardScheme getScheme() {
-        return new isJobExist_argsStandardScheme();
+    private static class getProcess_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcess_argsStandardScheme getScheme() {
+        return new getProcess_argsStandardScheme();
       }
     }
 
-    private static class isJobExist_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<isJobExist_args> {
+    private static class getProcess_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcess_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, isJobExist_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -79578,18 +79945,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // QUERY_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.queryType = iprot.readString();
-                struct.setQueryTypeIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // ID
+            case 1: // PROCESS_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.id = iprot.readString();
-                struct.setIdIsSet(true);
+                struct.processId = iprot.readString();
+                struct.setProcessIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -79605,18 +79964,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, isJobExist_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcess_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.queryType != null) {
-          oprot.writeFieldBegin(QUERY_TYPE_FIELD_DESC);
-          oprot.writeString(struct.queryType);
-          oprot.writeFieldEnd();
-        }
-        if (struct.id != null) {
-          oprot.writeFieldBegin(ID_FIELD_DESC);
-          oprot.writeString(struct.id);
+        if (struct.processId != null) {
+          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+          oprot.writeString(struct.processId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -79625,28 +79979,25 @@ public class RegistryService {
 
     }
 
-    private static class isJobExist_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public isJobExist_argsTupleScheme getScheme() {
-        return new isJobExist_argsTupleScheme();
+    private static class getProcess_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcess_argsTupleScheme getScheme() {
+        return new getProcess_argsTupleScheme();
       }
     }
 
-    private static class isJobExist_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<isJobExist_args> {
+    private static class getProcess_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcess_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, isJobExist_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.queryType);
-        oprot.writeString(struct.id);
+        oprot.writeString(struct.processId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, isJobExist_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.queryType = iprot.readString();
-        struct.setQueryTypeIsSet(true);
-        struct.id = iprot.readString();
-        struct.setIdIsSet(true);
+        struct.processId = iprot.readString();
+        struct.setProcessIdIsSet(true);
       }
     }
 
@@ -79655,16 +80006,16 @@ public class RegistryService {
     }
   }
 
-  public static class isJobExist_result implements org.apache.thrift.TBase<isJobExist_result, isJobExist_result._Fields>, java.io.Serializable, Cloneable, Comparable<isJobExist_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isJobExist_result");
+  public static class getProcess_result implements org.apache.thrift.TBase<getProcess_result, getProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcess_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcess_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isJobExist_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isJobExist_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcess_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcess_resultTupleSchemeFactory();
 
-    public boolean success; // required
+    public org.apache.airavata.model.process.ProcessModel success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -79729,82 +80080,80 @@ public class RegistryService {
     }
 
     // isset id assignments
-    private static final int __SUCCESS_ISSET_ID = 0;
-    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isJobExist_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcess_result.class, metaDataMap);
     }
 
-    public isJobExist_result() {
+    public getProcess_result() {
     }
 
-    public isJobExist_result(
-      boolean success,
+    public getProcess_result(
+      org.apache.airavata.model.process.ProcessModel success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
       this.success = success;
-      setSuccessIsSet(true);
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public isJobExist_result(isJobExist_result other) {
-      __isset_bitfield = other.__isset_bitfield;
-      this.success = other.success;
+    public getProcess_result(getProcess_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.process.ProcessModel(other.success);
+      }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public isJobExist_result deepCopy() {
-      return new isJobExist_result(this);
+    public getProcess_result deepCopy() {
+      return new getProcess_result(this);
     }
 
     @Override
     public void clear() {
-      setSuccessIsSet(false);
-      this.success = false;
+      this.success = null;
       this.rse = null;
     }
 
-    public boolean isSuccess() {
+    public org.apache.airavata.model.process.ProcessModel getSuccess() {
       return this.success;
     }
 
-    public isJobExist_result setSuccess(boolean success) {
+    public getProcess_result setSuccess(org.apache.airavata.model.process.ProcessModel success) {
       this.success = success;
-      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      this.success = null;
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      return this.success != null;
     }
 
     public void setSuccessIsSet(boolean value) {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public isJobExist_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getProcess_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -79830,7 +80179,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.Boolean)value);
+          setSuccess((org.apache.airavata.model.process.ProcessModel)value);
         }
         break;
 
@@ -79848,7 +80197,7 @@ public class RegistryService {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return isSuccess();
+        return getSuccess();
 
       case RSE:
         return getRse();
@@ -79876,23 +80225,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof isJobExist_result)
-        return this.equals((isJobExist_result)that);
+      if (that instanceof getProcess_result)
+        return this.equals((getProcess_result)that);
       return false;
     }
 
-    public boolean equals(isJobExist_result that) {
+    public boolean equals(getProcess_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true;
-      boolean that_present_success = true;
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (this.success != that.success)
+        if (!this.success.equals(that.success))
           return false;
       }
 
@@ -79912,7 +80261,9 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
 
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
@@ -79922,7 +80273,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(isJobExist_result other) {
+    public int compareTo(getProcess_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -79966,11 +80317,15 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("isJobExist_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcess_result(");
       boolean first = true;
 
       sb.append("success:");
-      sb.append(this.success);
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
       first = false;
       if (!first) sb.append(", ");
       sb.append("rse:");
@@ -79987,6 +80342,9 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -79999,23 +80357,21 @@ public class RegistryService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
-        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class isJobExist_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public isJobExist_resultStandardScheme getScheme() {
-        return new isJobExist_resultStandardScheme();
+    private static class getProcess_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcess_resultStandardScheme getScheme() {
+        return new getProcess_resultStandardScheme();
       }
     }
 
-    private static class isJobExist_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<isJobExist_result> {
+    private static class getProcess_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcess_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, isJobExist_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -80026,8 +80382,9 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-                struct.success = iprot.readBool();
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.process.ProcessModel();
+                struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -80053,13 +80410,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, isJobExist_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcess_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.isSetSuccess()) {
+        if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -80073,16 +80430,16 @@ public class RegistryService {
 
     }
 
-    private static class isJobExist_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public isJobExist_resultTupleScheme getScheme() {
-        return new isJobExist_resultTupleScheme();
+    private static class getProcess_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcess_resultTupleScheme getScheme() {
+        return new getProcess_resultTupleScheme();
       }
     }
 
-    private static class isJobExist_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<isJobExist_result> {
+    private static class getProcess_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcess_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, isJobExist_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -80093,7 +80450,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -80101,11 +80458,12 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, isJobExist_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = iprot.readBool();
+          struct.success = new org.apache.airavata.model.process.ProcessModel();
+          struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -80121,22 +80479,19 @@ public class RegistryService {
     }
   }
 
-  public static class getJob_args implements org.apache.thrift.TBase<getJob_args, getJob_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJob_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJob_args");
+  public static class getProcessList_args implements org.apache.thrift.TBase<getProcessList_args, getProcessList_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessList_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessList_args");
 
-    private static final org.apache.thrift.protocol.TField QUERY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("queryType", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJob_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJob_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessList_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessList_argsTupleSchemeFactory();
 
-    public java.lang.String queryType; // required
-    public java.lang.String id; // required
+    public java.lang.String experimentId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      QUERY_TYPE((short)1, "queryType"),
-      ID((short)2, "id");
+      EXPERIMENT_ID((short)1, "experimentId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -80151,10 +80506,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // QUERY_TYPE
-            return QUERY_TYPE;
-          case 2: // ID
-            return ID;
+          case 1: // EXPERIMENT_ID
+            return EXPERIMENT_ID;
           default:
             return null;
         }
@@ -80198,111 +80551,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.QUERY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("queryType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJob_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessList_args.class, metaDataMap);
     }
 
-    public getJob_args() {
+    public getProcessList_args() {
     }
 
-    public getJob_args(
-      java.lang.String queryType,
-      java.lang.String id)
+    public getProcessList_args(
+      java.lang.String experimentId)
     {
       this();
-      this.queryType = queryType;
-      this.id = id;
+      this.experimentId = experimentId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJob_args(getJob_args other) {
-      if (other.isSetQueryType()) {
-        this.queryType = other.queryType;
-      }
-      if (other.isSetId()) {
-        this.id = other.id;
+    public getProcessList_args(getProcessList_args other) {
+      if (other.isSetExperimentId()) {
+        this.experimentId = other.experimentId;
       }
     }
 
-    public getJob_args deepCopy() {
-      return new getJob_args(this);
+    public getProcessList_args deepCopy() {
+      return new getProcessList_args(this);
     }
 
     @Override
     public void clear() {
-      this.queryType = null;
-      this.id = null;
-    }
-
-    public java.lang.String getQueryType() {
-      return this.queryType;
-    }
-
-    public getJob_args setQueryType(java.lang.String queryType) {
-      this.queryType = queryType;
-      return this;
-    }
-
-    public void unsetQueryType() {
-      this.queryType = null;
-    }
-
-    /** Returns true if field queryType is set (has been assigned a value) and false otherwise */
-    public boolean isSetQueryType() {
-      return this.queryType != null;
-    }
-
-    public void setQueryTypeIsSet(boolean value) {
-      if (!value) {
-        this.queryType = null;
-      }
+      this.experimentId = null;
     }
 
-    public java.lang.String getId() {
-      return this.id;
+    public java.lang.String getExperimentId() {
+      return this.experimentId;
     }
 
-    public getJob_args setId(java.lang.String id) {
-      this.id = id;
+    public getProcessList_args setExperimentId(java.lang.String experimentId) {
+      this.experimentId = experimentId;
       return this;
     }
 
-    public void unsetId() {
-      this.id = null;
+    public void unsetExperimentId() {
+      this.experimentId = null;
     }
 
-    /** Returns true if field id is set (has been assigned a value) and false otherwise */
-    public boolean isSetId() {
-      return this.id != null;
+    /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetExperimentId() {
+      return this.experimentId != null;
     }
 
-    public void setIdIsSet(boolean value) {
+    public void setExperimentIdIsSet(boolean value) {
       if (!value) {
-        this.id = null;
+        this.experimentId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case QUERY_TYPE:
-        if (value == null) {
-          unsetQueryType();
-        } else {
-          setQueryType((java.lang.String)value);
-        }
-        break;
-
-      case ID:
+      case EXPERIMENT_ID:
         if (value == null) {
-          unsetId();
+          unsetExperimentId();
         } else {
-          setId((java.lang.String)value);
+          setExperimentId((java.lang.String)value);
         }
         break;
 
@@ -80311,11 +80624,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case QUERY_TYPE:
-        return getQueryType();
-
-      case ID:
-        return getId();
+      case EXPERIMENT_ID:
+        return getExperimentId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -80328,10 +80638,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case QUERY_TYPE:
-        return isSetQueryType();
-      case ID:
-        return isSetId();
+      case EXPERIMENT_ID:
+        return isSetExperimentId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -80340,32 +80648,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJob_args)
-        return this.equals((getJob_args)that);
+      if (that instanceof getProcessList_args)
+        return this.equals((getProcessList_args)that);
       return false;
     }
 
-    public boolean equals(getJob_args that) {
+    public boolean equals(getProcessList_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_queryType = true && this.isSetQueryType();
-      boolean that_present_queryType = true && that.isSetQueryType();
-      if (this_present_queryType || that_present_queryType) {
-        if (!(this_present_queryType && that_present_queryType))
-          return false;
-        if (!this.queryType.equals(that.queryType))
-          return false;
-      }
-
-      boolean this_present_id = true && this.isSetId();
-      boolean that_present_id = true && that.isSetId();
-      if (this_present_id || that_present_id) {
-        if (!(this_present_id && that_present_id))
+      boolean this_present_experimentId = true && this.isSetExperimentId();
+      boolean that_present_experimentId = true && that.isSetExperimentId();
+      if (this_present_experimentId || that_present_experimentId) {
+        if (!(this_present_experimentId && that_present_experimentId))
           return false;
-        if (!this.id.equals(that.id))
+        if (!this.experimentId.equals(that.experimentId))
           return false;
       }
 
@@ -80376,41 +80675,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetQueryType()) ? 131071 : 524287);
-      if (isSetQueryType())
-        hashCode = hashCode * 8191 + queryType.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetId()) ? 131071 : 524287);
-      if (isSetId())
-        hashCode = hashCode * 8191 + id.hashCode();
+      hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
+      if (isSetExperimentId())
+        hashCode = hashCode * 8191 + experimentId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getJob_args other) {
+    public int compareTo(getProcessList_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetQueryType()).compareTo(other.isSetQueryType());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetQueryType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queryType, other.queryType);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+      lastComparison = java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+      if (isSetExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -80432,22 +80717,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJob_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessList_args(");
       boolean first = true;
 
-      sb.append("queryType:");
-      if (this.queryType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.queryType);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("id:");
-      if (this.id == null) {
+      sb.append("experimentId:");
+      if (this.experimentId == null) {
         sb.append("null");
       } else {
-        sb.append(this.id);
+        sb.append(this.experimentId);
       }
       first = false;
       sb.append(")");
@@ -80456,11 +80733,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (queryType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'queryType' was not present! Struct: " + toString());
-      }
-      if (id == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString());
+      if (experimentId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -80481,15 +80755,15 @@ public class RegistryService {
       }
     }
 
-    private static class getJob_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJob_argsStandardScheme getScheme() {
-        return new getJob_argsStandardScheme();
+    private static class getProcessList_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessList_argsStandardScheme getScheme() {
+        return new getProcessList_argsStandardScheme();
       }
     }
 
-    private static class getJob_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJob_args> {
+    private static class getProcessList_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessList_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJob_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessList_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -80499,18 +80773,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // QUERY_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.queryType = iprot.readString();
-                struct.setQueryTypeIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // ID
+            case 1: // EXPERIMENT_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.id = iprot.readString();
-                struct.setIdIsSet(true);
+                struct.experimentId = iprot.readString();
+                struct.setExperimentIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -80526,18 +80792,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJob_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessList_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.queryType != null) {
-          oprot.writeFieldBegin(QUERY_TYPE_FIELD_DESC);
-          oprot.writeString(struct.queryType);
-          oprot.writeFieldEnd();
-        }
-        if (struct.id != null) {
-          oprot.writeFieldBegin(ID_FIELD_DESC);
-          oprot.writeString(struct.id);
+        if (struct.experimentId != null) {
+          oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.experimentId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -80546,28 +80807,25 @@ public class RegistryService {
 
     }
 
-    private static class getJob_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJob_argsTupleScheme getScheme() {
-        return new getJob_argsTupleScheme();
+    private static class getProcessList_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessList_argsTupleScheme getScheme() {
+        return new getProcessList_argsTupleScheme();
       }
     }
 
-    private static class getJob_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJob_args> {
+    private static class getProcessList_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessList_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJob_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessList_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.queryType);
-        oprot.writeString(struct.id);
+        oprot.writeString(struct.experimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJob_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessList_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.queryType = iprot.readString();
-        struct.setQueryTypeIsSet(true);
-        struct.id = iprot.readString();
-        struct.setIdIsSet(true);
+        struct.experimentId = iprot.readString();
+        struct.setExperimentIdIsSet(true);
       }
     }
 
@@ -80576,16 +80834,16 @@ public class RegistryService {
     }
   }
 
-  public static class getJob_result implements org.apache.thrift.TBase<getJob_result, getJob_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJob_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJob_result");
+  public static class getProcessList_result implements org.apache.thrift.TBase<getProcessList_result, getProcessList_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessList_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessList_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJob_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJob_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessList_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessList_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.job.JobModel success; // required
+    public java.util.List<org.apache.airavata.model.process.ProcessModel> success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -80654,18 +80912,19 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class))));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJob_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessList_result.class, metaDataMap);
     }
 
-    public getJob_result() {
+    public getProcessList_result() {
     }
 
-    public getJob_result(
-      org.apache.airavata.model.job.JobModel success,
+    public getProcessList_result(
+      java.util.List<org.apache.airavata.model.process.ProcessModel> success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -80676,17 +80935,21 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJob_result(getJob_result other) {
+    public getProcessList_result(getProcessList_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.job.JobModel(other.success);
+        java.util.List<org.apache.airavata.model.process.ProcessModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(other.success.size());
+        for (org.apache.airavata.model.process.ProcessModel other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.process.ProcessModel(other_element));
+        }
+        this.success = __this__success;
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getJob_result deepCopy() {
-      return new getJob_result(this);
+    public getProcessList_result deepCopy() {
+      return new getProcessList_result(this);
     }
 
     @Override
@@ -80695,11 +80958,26 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public org.apache.airavata.model.job.JobModel getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.process.ProcessModel> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.process.ProcessModel elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.process.ProcessModel> getSuccess() {
       return this.success;
     }
 
-    public getJob_result setSuccess(org.apache.airavata.model.job.JobModel success) {
+    public getProcessList_result setSuccess(java.util.List<org.apache.airavata.model.process.ProcessModel> success) {
       this.success = success;
       return this;
     }
@@ -80723,7 +81001,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getJob_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getProcessList_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -80749,7 +81027,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.job.JobModel)value);
+          setSuccess((java.util.List<org.apache.airavata.model.process.ProcessModel>)value);
         }
         break;
 
@@ -80795,12 +81073,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJob_result)
-        return this.equals((getJob_result)that);
+      if (that instanceof getProcessList_result)
+        return this.equals((getProcessList_result)that);
       return false;
     }
 
-    public boolean equals(getJob_result that) {
+    public boolean equals(getProcessList_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -80843,7 +81121,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getJob_result other) {
+    public int compareTo(getProcessList_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -80887,7 +81165,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJob_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessList_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -80912,9 +81190,6 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -80933,15 +81208,15 @@ public class RegistryService {
       }
     }
 
-    private static class getJob_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJob_resultStandardScheme getScheme() {
-        return new getJob_resultStandardScheme();
+    private static class getProcessList_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessList_resultStandardScheme getScheme() {
+        return new getProcessList_resultStandardScheme();
       }
     }
 
-    private static class getJob_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJob_result> {
+    private static class getProcessList_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessList_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJob_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -80952,9 +81227,19 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.job.JobModel();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list150 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(_list150.size);
+                  org.apache.airavata.model.process.ProcessModel _elem151;
+                  for (int _i152 = 0; _i152 < _list150.size; ++_i152)
+                  {
+                    _elem151 = new org.apache.airavata.model.process.ProcessModel();
+                    _elem151.read(iprot);
+                    struct.success.add(_elem151);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -80980,13 +81265,20 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJob_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessList_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.process.ProcessModel _iter153 : struct.success)
+            {
+              _iter153.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -81000,16 +81292,16 @@ public class RegistryService {
 
     }
 
-    private static class getJob_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJob_resultTupleScheme getScheme() {
-        return new getJob_resultTupleScheme();
+    private static class getProcessList_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessList_resultTupleScheme getScheme() {
+        return new getProcessList_resultTupleScheme();
       }
     }
 
-    private static class getJob_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJob_result> {
+    private static class getProcessList_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessList_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJob_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -81020,7 +81312,13 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.process.ProcessModel _iter154 : struct.success)
+            {
+              _iter154.write(oprot);
+            }
+          }
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -81028,12 +81326,21 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJob_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.job.JobModel();
-          struct.success.read(iprot);
+          {
+            org.apache.thrift.protocol.TList _list155 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.process.ProcessModel>(_list155.size);
+            org.apache.airavata.model.process.ProcessModel _elem156;
+            for (int _i157 = 0; _i157 < _list155.size; ++_i157)
+            {
+              _elem156 = new org.apache.airavata.model.process.ProcessModel();
+              _elem156.read(iprot);
+              struct.success.add(_elem156);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -81049,22 +81356,19 @@ public class RegistryService {
     }
   }
 
-  public static class getJobs_args implements org.apache.thrift.TBase<getJobs_args, getJobs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJobs_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobs_args");
+  public static class getProcessStatus_args implements org.apache.thrift.TBase<getProcessStatus_args, getProcessStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessStatus_args");
 
-    private static final org.apache.thrift.protocol.TField QUERY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("queryType", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobs_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobs_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessStatus_argsTupleSchemeFactory();
 
-    public java.lang.String queryType; // required
-    public java.lang.String id; // required
+    public java.lang.String processId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      QUERY_TYPE((short)1, "queryType"),
-      ID((short)2, "id");
+      PROCESS_ID((short)1, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -81079,10 +81383,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // QUERY_TYPE
-            return QUERY_TYPE;
-          case 2: // ID
-            return ID;
+          case 1: // PROCESS_ID
+            return PROCESS_ID;
           default:
             return null;
         }
@@ -81126,111 +81428,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.QUERY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("queryType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobs_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessStatus_args.class, metaDataMap);
     }
 
-    public getJobs_args() {
+    public getProcessStatus_args() {
     }
 
-    public getJobs_args(
-      java.lang.String queryType,
-      java.lang.String id)
+    public getProcessStatus_args(
+      java.lang.String processId)
     {
       this();
-      this.queryType = queryType;
-      this.id = id;
+      this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobs_args(getJobs_args other) {
-      if (other.isSetQueryType()) {
-        this.queryType = other.queryType;
-      }
-      if (other.isSetId()) {
-        this.id = other.id;
+    public getProcessStatus_args(getProcessStatus_args other) {
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
     }
 
-    public getJobs_args deepCopy() {
-      return new getJobs_args(this);
+    public getProcessStatus_args deepCopy() {
+      return new getProcessStatus_args(this);
     }
 
     @Override
     public void clear() {
-      this.queryType = null;
-      this.id = null;
-    }
-
-    public java.lang.String getQueryType() {
-      return this.queryType;
-    }
-
-    public getJobs_args setQueryType(java.lang.String queryType) {
-      this.queryType = queryType;
-      return this;
-    }
-
-    public void unsetQueryType() {
-      this.queryType = null;
-    }
-
-    /** Returns true if field queryType is set (has been assigned a value) and false otherwise */
-    public boolean isSetQueryType() {
-      return this.queryType != null;
-    }
-
-    public void setQueryTypeIsSet(boolean value) {
-      if (!value) {
-        this.queryType = null;
-      }
+      this.processId = null;
     }
 
-    public java.lang.String getId() {
-      return this.id;
+    public java.lang.String getProcessId() {
+      return this.processId;
     }
 
-    public getJobs_args setId(java.lang.String id) {
-      this.id = id;
+    public getProcessStatus_args setProcessId(java.lang.String processId) {
+      this.processId = processId;
       return this;
     }
 
-    public void unsetId() {
-      this.id = null;
+    public void unsetProcessId() {
+      this.processId = null;
     }
 
-    /** Returns true if field id is set (has been assigned a value) and false otherwise */
-    public boolean isSetId() {
-      return this.id != null;
+    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessId() {
+      return this.processId != null;
     }
 
-    public void setIdIsSet(boolean value) {
+    public void setProcessIdIsSet(boolean value) {
       if (!value) {
-        this.id = null;
+        this.processId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case QUERY_TYPE:
-        if (value == null) {
-          unsetQueryType();
-        } else {
-          setQueryType((java.lang.String)value);
-        }
-        break;
-
-      case ID:
+      case PROCESS_ID:
         if (value == null) {
-          unsetId();
+          unsetProcessId();
         } else {
-          setId((java.lang.String)value);
+          setProcessId((java.lang.String)value);
         }
         break;
 
@@ -81239,11 +81501,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case QUERY_TYPE:
-        return getQueryType();
-
-      case ID:
-        return getId();
+      case PROCESS_ID:
+        return getProcessId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -81256,10 +81515,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case QUERY_TYPE:
-        return isSetQueryType();
-      case ID:
-        return isSetId();
+      case PROCESS_ID:
+        return isSetProcessId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -81268,32 +81525,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobs_args)
-        return this.equals((getJobs_args)that);
+      if (that instanceof getProcessStatus_args)
+        return this.equals((getProcessStatus_args)that);
       return false;
     }
 
-    public boolean equals(getJobs_args that) {
+    public boolean equals(getProcessStatus_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_queryType = true && this.isSetQueryType();
-      boolean that_present_queryType = true && that.isSetQueryType();
-      if (this_present_queryType || that_present_queryType) {
-        if (!(this_present_queryType && that_present_queryType))
-          return false;
-        if (!this.queryType.equals(that.queryType))
-          return false;
-      }
-
-      boolean this_present_id = true && this.isSetId();
-      boolean that_present_id = true && that.isSetId();
-      if (this_present_id || that_present_id) {
-        if (!(this_present_id && that_present_id))
+      boolean this_present_processId = true && this.isSetProcessId();
+      boolean that_present_processId = true && that.isSetProcessId();
+      if (this_present_processId || that_present_processId) {
+        if (!(this_present_processId && that_present_processId))
           return false;
-        if (!this.id.equals(that.id))
+        if (!this.processId.equals(that.processId))
           return false;
       }
 
@@ -81304,41 +81552,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetQueryType()) ? 131071 : 524287);
-      if (isSetQueryType())
-        hashCode = hashCode * 8191 + queryType.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetId()) ? 131071 : 524287);
-      if (isSetId())
-        hashCode = hashCode * 8191 + id.hashCode();
+      hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
+      if (isSetProcessId())
+        hashCode = hashCode * 8191 + processId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getJobs_args other) {
+    public int compareTo(getProcessStatus_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetQueryType()).compareTo(other.isSetQueryType());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetQueryType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queryType, other.queryType);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+      if (isSetProcessId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -81360,22 +81594,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobs_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessStatus_args(");
       boolean first = true;
 
-      sb.append("queryType:");
-      if (this.queryType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.queryType);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("id:");
-      if (this.id == null) {
+      sb.append("processId:");
+      if (this.processId == null) {
         sb.append("null");
       } else {
-        sb.append(this.id);
+        sb.append(this.processId);
       }
       first = false;
       sb.append(")");
@@ -81384,11 +81610,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (queryType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'queryType' was not present! Struct: " + toString());
-      }
-      if (id == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString());
+      if (processId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -81409,15 +81632,15 @@ public class RegistryService {
       }
     }
 
-    private static class getJobs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobs_argsStandardScheme getScheme() {
-        return new getJobs_argsStandardScheme();
+    private static class getProcessStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessStatus_argsStandardScheme getScheme() {
+        return new getProcessStatus_argsStandardScheme();
       }
     }
 
-    private static class getJobs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobs_args> {
+    private static class getProcessStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessStatus_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -81427,18 +81650,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // QUERY_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.queryType = iprot.readString();
-                struct.setQueryTypeIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // ID
+            case 1: // PROCESS_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.id = iprot.readString();
-                struct.setIdIsSet(true);
+                struct.processId = iprot.readString();
+                struct.setProcessIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -81454,18 +81669,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessStatus_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.queryType != null) {
-          oprot.writeFieldBegin(QUERY_TYPE_FIELD_DESC);
-          oprot.writeString(struct.queryType);
-          oprot.writeFieldEnd();
-        }
-        if (struct.id != null) {
-          oprot.writeFieldBegin(ID_FIELD_DESC);
-          oprot.writeString(struct.id);
+        if (struct.processId != null) {
+          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+          oprot.writeString(struct.processId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -81474,28 +81684,25 @@ public class RegistryService {
 
     }
 
-    private static class getJobs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobs_argsTupleScheme getScheme() {
-        return new getJobs_argsTupleScheme();
+    private static class getProcessStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessStatus_argsTupleScheme getScheme() {
+        return new getProcessStatus_argsTupleScheme();
       }
     }
 
-    private static class getJobs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobs_args> {
+    private static class getProcessStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessStatus_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.queryType);
-        oprot.writeString(struct.id);
+        oprot.writeString(struct.processId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.queryType = iprot.readString();
-        struct.setQueryTypeIsSet(true);
-        struct.id = iprot.readString();
-        struct.setIdIsSet(true);
+        struct.processId = iprot.readString();
+        struct.setProcessIdIsSet(true);
       }
     }
 
@@ -81504,16 +81711,16 @@ public class RegistryService {
     }
   }
 
-  public static class getJobs_result implements org.apache.thrift.TBase<getJobs_result, getJobs_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJobs_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobs_result");
+  public static class getProcessStatus_result implements org.apache.thrift.TBase<getProcessStatus_result, getProcessStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessStatus_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessStatus_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobs_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobs_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessStatus_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessStatus_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.job.JobModel> success; // required
+    public org.apache.airavata.model.status.ProcessStatus success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -81582,19 +81789,18 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class))));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.class)));
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobs_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessStatus_result.class, metaDataMap);
     }
 
-    public getJobs_result() {
+    public getProcessStatus_result() {
     }
 
-    public getJobs_result(
-      java.util.List<org.apache.airavata.model.job.JobModel> success,
+    public getProcessStatus_result(
+      org.apache.airavata.model.status.ProcessStatus success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -81605,21 +81811,17 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobs_result(getJobs_result other) {
+    public getProcessStatus_result(getProcessStatus_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.job.JobModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(other.success.size());
-        for (org.apache.airavata.model.job.JobModel other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.job.JobModel(other_element));
-        }
-        this.success = __this__success;
+        this.success = new org.apache.airavata.model.status.ProcessStatus(other.success);
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getJobs_result deepCopy() {
-      return new getJobs_result(this);
+    public getProcessStatus_result deepCopy() {
+      return new getProcessStatus_result(this);
     }
 
     @Override
@@ -81628,26 +81830,11 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.job.JobModel> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.job.JobModel elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.job.JobModel> getSuccess() {
+    public org.apache.airavata.model.status.ProcessStatus getSuccess() {
       return this.success;
     }
 
-    public getJobs_result setSuccess(java.util.List<org.apache.airavata.model.job.JobModel> success) {
+    public getProcessStatus_result setSuccess(org.apache.airavata.model.status.ProcessStatus success) {
       this.success = success;
       return this;
     }
@@ -81671,7 +81858,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getJobs_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getProcessStatus_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -81697,7 +81884,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.job.JobModel>)value);
+          setSuccess((org.apache.airavata.model.status.ProcessStatus)value);
         }
         break;
 
@@ -81743,12 +81930,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobs_result)
-        return this.equals((getJobs_result)that);
+      if (that instanceof getProcessStatus_result)
+        return this.equals((getProcessStatus_result)that);
       return false;
     }
 
-    public boolean equals(getJobs_result that) {
+    public boolean equals(getProcessStatus_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -81791,7 +81978,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getJobs_result other) {
+    public int compareTo(getProcessStatus_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -81835,7 +82022,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobs_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getProcessStatus_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -81860,6 +82047,9 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -81878,15 +82068,15 @@ public class RegistryService {
       }
     }
 
-    private static class getJobs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobs_resultStandardScheme getScheme() {
-        return new getJobs_resultStandardScheme();
+    private static class getProcessStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessStatus_resultStandardScheme getScheme() {
+        return new getProcessStatus_resultStandardScheme();
       }
     }
 
-    private static class getJobs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobs_result> {
+    private static class getProcessStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getProcessStatus_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getProcessStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -81897,19 +82087,9 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list150 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list150.size);
-                  org.apache.airavata.model.job.JobModel _elem151;
-                  for (int _i152 = 0; _i152 < _list150.size; ++_i152)
-                  {
-                    _elem151 = new org.apache.airavata.model.job.JobModel();
-                    _elem151.read(iprot);
-                    struct.success.add(_elem151);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.status.ProcessStatus();
+                struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -81935,20 +82115,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getProcessStatus_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.job.JobModel _iter153 : struct.success)
-            {
-              _iter153.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
+          struct.success.write(oprot);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -81962,16 +82135,16 @@ public class RegistryService {
 
     }
 
-    private static class getJobs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobs_resultTupleScheme getScheme() {
-        return new getJobs_resultTupleScheme();
+    private static class getProcessStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getProcessStatus_resultTupleScheme getScheme() {
+        return new getProcessStatus_resultTupleScheme();
       }
     }
 
-    private static class getJobs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobs_result> {
+    private static class getProcessStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getProcessStatus_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -81982,13 +82155,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          {
-            oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.job.JobModel _iter154 : struct.success)
-            {
-              _iter154.write(oprot);
-            }
-          }
+          struct.success.write(oprot);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -81996,21 +82163,12 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getProcessStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          {
-            org.apache.thrift.protocol.TList _list155 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list155.size);
-            org.apache.airavata.model.job.JobModel _elem156;
-            for (int _i157 = 0; _i157 < _list155.size; ++_i157)
-            {
-              _elem156 = new org.apache.airavata.model.job.JobModel();
-              _elem156.read(iprot);
-              struct.success.add(_elem156);
-            }
-          }
+          struct.success = new org.apache.airavata.model.status.ProcessStatus();
+          struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -82026,19 +82184,22 @@ public class RegistryService {
     }
   }
 
-  public static class getProcessOutputs_args implements org.apache.thrift.TBase<getProcessOutputs_args, getProcessOutputs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getProcessOutputs_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getProcessOutputs_args");
+  public static class isJobExist_args implements org.apache.thrift.TBase<isJobExist_args, isJobExist_args._Fields>, java.io.Serializable, Cloneable, Comparable<isJobExist_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isJobExist_args");
 
-    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField QUERY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("queryType", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getProcessOutputs_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getProcessOutputs_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isJobExist_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isJobExist_argsTupleSchemeFactory();
 
-    public java.lang.String processId; // required
+    public java.lang.String queryType; // required
+    public java.lang.String id; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROCESS_ID((short)1, "processId");
+      QUERY_TYPE((short)1, "queryType"),
+      ID((short)2, "id");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -82053,8 +82214,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // PROCESS_ID
-            return PROCESS_ID;
+          case 1: // QUERY_TYPE
+            return QUERY_TYPE;
+          case 2: // ID
+            return ID;
           default:
             return null;
         }
@@ -82098,71 +82261,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.QUERY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("queryType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getProcessOutputs_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isJobExist_args.class, metaDataMap);
     }
 
-    public getProcessOutputs_args() {
+    public isJobExist_args() {
     }
 
-    public getProcessOutputs_args(
-      java.lang.String processId)
+    public isJobExist_args(
+      java.lang.String queryType,
+      java.lang.String id)
     {
       this();
-      this.processId = processId;
+      this.queryType = queryType;
+      this.id = id;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getProcessOutputs_args(getProcessOutputs_args other) {
-      if (other.isSetProcessId()) {
-        this.processId = other.processId;
+    public isJobExist_args(isJobExist_args other) {
+      if (other.isSetQueryType()) {
+        this.queryType = other.queryType;
+      }
+      if (other.isSetId()) {
+        this.id = other.id;
       }
     }
 
-    public getProcessOutputs_args deepCopy() {
-      return new getProcessOutputs_args(this);
+    public isJobExist_args deepCopy() {
+      return new isJobExist_args(this);
     }
 
     @Override
     public void clear() {
-      this.processId = null;
+      this.queryType = null;
+      this.id = null;
     }
 
-    public java.lang.String getProcessId() {
-      return this.processId;
+    public java.lang.String getQueryType() {
+      return this.queryType;
     }
 
-    public getProcessOutputs_args setProcessId(java.lang.String processId) {
-      this.processId = processId;
+    public isJobExist_args setQueryType(java.lang.String queryType) {
+      this.queryType = queryType;
       return this;
     }
 
-    public void unsetProcessId() {
-      this.processId = null;
+    public void unsetQueryType() {
+      this.queryType = null;
     }
 
-    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
-    public boolean isSetProcessId() {
-      return this.processId != null;
+    /** Returns true if field queryType is set (has been assigned a value) and false otherwise */
+    public boolean isSetQueryType() {
+      return this.queryType != null;
     }
 
-    public void setProcessIdIsSet(boolean value) {
+    public void setQueryTypeIsSet(boolean value) {
       if (!value) {
-        this.processId = null;
+        this.queryType = null;
+      }
+    }
+
+    public java.lang.String getId() {
+      return this.id;
+    }
+
+    public isJobExist_args setId(java.lang.String id) {
+      this.id = id;
+      return this;
+    }
+
+    public void unsetId() {
+      this.id = null;
+    }
+
+    /** Returns true if field id is set (has been assigned a value) and false otherwise */
+    public boolean isSetId() {
+      return this.id != null;
+    }
+
+    public void setIdIsSet(boolean value) {
+      if (!value) {
+        this.id = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case PROCESS_ID:
+      case QUERY_TYPE:
         if (value == null) {
-          unsetProcessId();
+          unsetQueryType();
         } else {
-          setProcessId((java.lang.String)value);
+          setQueryType((java.lang.String)value);
+        }
+        break;
+
+      case ID:
+        if (value == null) {
+          unsetId();
+        } else {
+          setId((java.lang.String)value);
         }
         break;
 
@@ -82171,8 +82374,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case PROCESS_ID:
-        return getProcessId();
+      case QUERY_TYPE:
+        return getQueryType();
+
+      case ID:
+        return getId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -82185,8 +82391,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case PROCESS_ID:
-        return isSetProcessId();
+      case QUERY_TYPE:
+        return isSetQueryType();
+      case ID:
+        return isSetId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -82195,23 +82403,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getProcessOutputs_args)
-        return this.equals((getProcessOutputs_args)that);
+      if (that instanceof isJobExist_args)
+        return this.equals((isJobExist_args)that);
       return false;
     }
 
-    public boolean equals(getProcessOutputs_args that) {
+    public boolean equals(isJobExist_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_processId = true && this.isSetProcessId();
-      boolean that_present_processId = true && that.isSetProcessId();
-      if (this_present_processId || that_present_processId) {
-        if (!(this_present_processId && that_present_processId))
+      boolean this_present_queryType = true && this.isSetQueryType();
+      boolean that_present_queryType = true && that.isSetQueryType();
+      if (this_present_queryType || that_present_queryType) {
+        if (!(this_present_queryType && that_present_queryType))
           return false;
-        if (!this.processId.equals(that.processId))
+        if (!this.queryType.equals(that.queryType))
... 37307 lines suppressed ...