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 2019/01/23 19:33:56 UTC

[airavata] branch staging updated: Adding process workflow API and table to keep track of helix workflows of a process

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

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


The following commit(s) were added to refs/heads/staging by this push:
     new 5c1ed49  Adding process workflow API and table to keep track of helix workflows of a process
5c1ed49 is described below

commit 5c1ed49c4e4c384e62f69ab4151ad59e335df053
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Wed Jan 23 14:33:44 2019 -0500

    Adding process workflow API and table to keep track of helix workflows of a process
---
 .../airavata/model/process/ProcessWorkflow.java    |   691 ++
 .../core/experiment/catalog/ResourceType.java      |     3 +-
 .../catalog/impl/ExperimentCatalogImpl.java        |     5 +
 .../catalog/impl/ExperimentRegistry.java           |    22 +
 .../core/experiment/catalog/model/Process.java     |    10 +
 .../experiment/catalog/model/ProcessWorkflow.java  |    65 +
 .../catalog/model/ProcessWorkflowPK.java           |    49 +
 .../catalog/resources/AbstractExpCatResource.java  |     5 +
 .../catalog/resources/ProcessResource.java         |    30 +-
 .../catalog/resources/ProcessWorkflowResource.java |   137 +
 .../core/experiment/catalog/resources/Utils.java   |    18 +
 .../catalog/utils/ThriftDataModelConversion.java   |    16 +
 .../src/main/resources/expcatalog-derby.sql        |    10 +-
 .../src/main/resources/expcatalog-mysql.sql        |    10 +-
 .../airavata/registry/cpi/ExpCatChildDataType.java |     3 +-
 .../registry/cpi/ExperimentCatalogModelType.java   |     3 +-
 .../airavata/registry/cpi/utils/Constants.java     |     1 +
 .../api/service/handler/RegistryServerHandler.java |    32 +
 .../airavata/registry/api/RegistryService.java     | 12123 +++++++++++--------
 .../component-cpis/registry-api.thrift             |    16 +
 .../experiment-catalog-models/process_model.thrift |     7 +
 21 files changed, 8138 insertions(+), 5118 deletions(-)

diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessWorkflow.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessWorkflow.java
new file mode 100644
index 0000000..e4e69c7
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessWorkflow.java
@@ -0,0 +1,691 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.process;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+public class ProcessWorkflow implements org.apache.thrift.TBase<ProcessWorkflow, ProcessWorkflow._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessWorkflow> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessWorkflow");
+
+  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 WORKFLOW_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("workflowId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)3);
+  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ProcessWorkflowStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ProcessWorkflowTupleSchemeFactory();
+
+  private java.lang.String processId; // required
+  private java.lang.String workflowId; // required
+  private long creationTime; // optional
+  private java.lang.String type; // optional
+
+  /** 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"),
+    WORKFLOW_ID((short)2, "workflowId"),
+    CREATION_TIME((short)3, "creationTime"),
+    TYPE((short)4, "type");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // PROCESS_ID
+          return PROCESS_ID;
+        case 2: // WORKFLOW_ID
+          return WORKFLOW_ID;
+        case 3: // CREATION_TIME
+          return CREATION_TIME;
+        case 4: // TYPE
+          return TYPE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.TYPE};
+  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, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.WORKFLOW_ID, new org.apache.thrift.meta_data.FieldMetaData("workflowId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        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(ProcessWorkflow.class, metaDataMap);
+  }
+
+  public ProcessWorkflow() {
+  }
+
+  public ProcessWorkflow(
+    java.lang.String processId,
+    java.lang.String workflowId)
+  {
+    this();
+    this.processId = processId;
+    this.workflowId = workflowId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessWorkflow(ProcessWorkflow other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetWorkflowId()) {
+      this.workflowId = other.workflowId;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+  }
+
+  public ProcessWorkflow deepCopy() {
+    return new ProcessWorkflow(this);
+  }
+
+  @Override
+  public void clear() {
+    this.processId = null;
+    this.workflowId = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.type = null;
+  }
+
+  public java.lang.String getProcessId() {
+    return this.processId;
+  }
+
+  public void setProcessId(java.lang.String processId) {
+    this.processId = processId;
+  }
+
+  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 java.lang.String getWorkflowId() {
+    return this.workflowId;
+  }
+
+  public void setWorkflowId(java.lang.String workflowId) {
+    this.workflowId = workflowId;
+  }
+
+  public void unsetWorkflowId() {
+    this.workflowId = null;
+  }
+
+  /** Returns true if field workflowId is set (has been assigned a value) and false otherwise */
+  public boolean isSetWorkflowId() {
+    return this.workflowId != null;
+  }
+
+  public void setWorkflowIdIsSet(boolean value) {
+    if (!value) {
+      this.workflowId = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public void setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public java.lang.String getType() {
+    return this.type;
+  }
+
+  public void setType(java.lang.String type) {
+    this.type = type;
+  }
+
+  public void unsetType() {
+    this.type = null;
+  }
+
+  /** Returns true if field type is set (has been assigned a value) and false otherwise */
+  public boolean isSetType() {
+    return this.type != null;
+  }
+
+  public void setTypeIsSet(boolean value) {
+    if (!value) {
+      this.type = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((java.lang.String)value);
+      }
+      break;
+
+    case WORKFLOW_ID:
+      if (value == null) {
+        unsetWorkflowId();
+      } else {
+        setWorkflowId((java.lang.String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((java.lang.Long)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((java.lang.String)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROCESS_ID:
+      return getProcessId();
+
+    case WORKFLOW_ID:
+      return getWorkflowId();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case TYPE:
+      return getType();
+
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PROCESS_ID:
+      return isSetProcessId();
+    case WORKFLOW_ID:
+      return isSetWorkflowId();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case TYPE:
+      return isSetType();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessWorkflow)
+      return this.equals((ProcessWorkflow)that);
+    return false;
+  }
+
+  public boolean equals(ProcessWorkflow 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))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_workflowId = true && this.isSetWorkflowId();
+    boolean that_present_workflowId = true && that.isSetWorkflowId();
+    if (this_present_workflowId || that_present_workflowId) {
+      if (!(this_present_workflowId && that_present_workflowId))
+        return false;
+      if (!this.workflowId.equals(that.workflowId))
+        return false;
+    }
+
+    boolean this_present_creationTime = true && this.isSetCreationTime();
+    boolean that_present_creationTime = true && that.isSetCreationTime();
+    if (this_present_creationTime || that_present_creationTime) {
+      if (!(this_present_creationTime && that_present_creationTime))
+        return false;
+      if (this.creationTime != that.creationTime)
+        return false;
+    }
+
+    boolean this_present_type = true && this.isSetType();
+    boolean that_present_type = true && that.isSetType();
+    if (this_present_type || that_present_type) {
+      if (!(this_present_type && that_present_type))
+        return false;
+      if (!this.type.equals(that.type))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetProcessId()) ? 131071 : 524287);
+    if (isSetProcessId())
+      hashCode = hashCode * 8191 + processId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetWorkflowId()) ? 131071 : 524287);
+    if (isSetWorkflowId())
+      hashCode = hashCode * 8191 + workflowId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetCreationTime()) ? 131071 : 524287);
+    if (isSetCreationTime())
+      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(creationTime);
+
+    hashCode = hashCode * 8191 + ((isSetType()) ? 131071 : 524287);
+    if (isSetType())
+      hashCode = hashCode * 8191 + type.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(ProcessWorkflow 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());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetWorkflowId()).compareTo(other.isSetWorkflowId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWorkflowId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.workflowId, other.workflowId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetType()).compareTo(other.isSetType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("ProcessWorkflow(");
+    boolean first = true;
+
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("workflowId:");
+    if (this.workflowId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.workflowId);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetType()) {
+      if (!first) sb.append(", ");
+      sb.append("type:");
+      if (this.type == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.type);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetProcessId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetWorkflowId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'workflowId' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  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 ProcessWorkflowStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public ProcessWorkflowStandardScheme getScheme() {
+      return new ProcessWorkflowStandardScheme();
+    }
+  }
+
+  private static class ProcessWorkflowStandardScheme extends org.apache.thrift.scheme.StandardScheme<ProcessWorkflow> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessWorkflow struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // WORKFLOW_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.workflowId = iprot.readString();
+              struct.setWorkflowIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // CREATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.creationTime = iprot.readI64();
+              struct.setCreationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.type = iprot.readString();
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessWorkflow 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);
+        oprot.writeFieldEnd();
+      }
+      if (struct.workflowId != null) {
+        oprot.writeFieldBegin(WORKFLOW_ID_FIELD_DESC);
+        oprot.writeString(struct.workflowId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.type != null) {
+        if (struct.isSetType()) {
+          oprot.writeFieldBegin(TYPE_FIELD_DESC);
+          oprot.writeString(struct.type);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessWorkflowTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public ProcessWorkflowTupleScheme getScheme() {
+      return new ProcessWorkflowTupleScheme();
+    }
+  }
+
+  private static class ProcessWorkflowTupleScheme extends org.apache.thrift.scheme.TupleScheme<ProcessWorkflow> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessWorkflow 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.workflowId);
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetType()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetType()) {
+        oprot.writeString(struct.type);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessWorkflow 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.workflowId = iprot.readString();
+      struct.setWorkflowIdIsSet(true);
+      java.util.BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.type = iprot.readString();
+        struct.setTypeIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
index 6519d92..5e959c6 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
@@ -43,5 +43,6 @@ public enum ResourceType {
     TASK_STATUS,
     JOB,
     JOB_STATUS,
-    QUEUE_STATUS
+    QUEUE_STATUS,
+    PROCESS_WORKFLOW
 }
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 3825045..c35bb57 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -29,6 +29,7 @@ import org.apache.airavata.model.experiment.ExperimentSummaryModel;
 import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 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.*;
 import org.apache.airavata.model.task.TaskModel;
@@ -185,6 +186,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     return experimentRegistry.addJob((JobModel) newObjectToAdd, (String) dependentIdentifier);
                 case JOB_STATUS:
                     return experimentRegistry.addJobStatus((JobStatus) newObjectToAdd, (CompositeIdentifier) dependentIdentifier);
+                case PROCESS_WORKFLOW:
+                    return experimentRegistry.addProcessWorkflow((ProcessWorkflow) newObjectToAdd, (String)dependentIdentifier);
                 default:
                     logger.error("Unsupported dependent data type...", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -349,6 +352,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     return experimentRegistry.getProcessInputs((String) identifier);
                 case PROCESS_OUTPUT:
                     return experimentRegistry.getProcessOutputs((String) identifier);
+                case PROCESS_WORKFLOW:
+                    return experimentRegistry.getProcessWorkflows((String)identifier);
                 case PROCESS_STATUS:
                     return experimentRegistry.getProcessStatus((String) identifier);
                 case PROCESS_ERROR:
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 8b47a78..1be8514 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -29,6 +29,7 @@ import org.apache.airavata.model.experiment.ExperimentSummaryModel;
 import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 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.*;
 import org.apache.airavata.model.task.TaskModel;
@@ -584,6 +585,21 @@ public class ExperimentRegistry {
         return jobID;
     }
 
+    public String addProcessWorkflow(ProcessWorkflow processWorkflow, String processId) throws RegistryException {
+        try {
+            ProcessWorkflowResource resource = new ProcessWorkflowResource();
+            resource.setProcessId(processId);
+            resource.setWorkflowId(processWorkflow.getWorkflowId());
+            resource.setCreationTime(AiravataUtils.getTime(processWorkflow.getCreationTime()));
+            resource.setType(processWorkflow.getType());
+            resource.save();
+        } catch (Exception e) {
+            logger.error("Failed to save process workflow for workflow id " + processWorkflow.getWorkflowId() + " and process " +processId);
+            throw new RegistryException(e);
+        }
+        return processId;
+    }
+
 
     //CPI Update Methods
     public void updateExperiment(ExperimentModel experiment, String expId) throws RegistryException {
@@ -1110,6 +1126,8 @@ public class ExperimentRegistry {
                 return ThriftDataModelConversion.getProcessOutputs(resource.getProcessOutputs());
             } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_RESOURCE_SCHEDULE)) {
                 return ThriftDataModelConversion.getProcessResourceSchedule(resource.getProcessResourceSchedule());
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_WORKFLOW)) {
+                return ThriftDataModelConversion.getProcessWorkflows(resource.getProcessWorkflows());
             } else {
                 logger.error("Unsupported field name for process data..");
             }
@@ -1140,6 +1158,10 @@ public class ExperimentRegistry {
         return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_RESOURCE_SCHEDULE);
     }
 
+    public Object getProcessWorkflows(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_WORKFLOW);
+    }
+
     public Object getTask(String taskId, String fieldName) throws RegistryException {
         try {
             ProcessResource processResource = new ProcessResource();
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
index 9707686..53a2a21 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
@@ -51,6 +51,7 @@ public class Process {
     private Collection<ProcessOutput> processOutputs;
     private ProcessResourceSchedule processResourceSchedule;
     private Collection<ProcessStatus> processStatuses;
+    private Collection<ProcessWorkflow> processWorkflows;
     private Collection<Task> tasks;
     private String userDn;
     private boolean generateCert;
@@ -304,6 +305,15 @@ public class Process {
     }
 
     @OneToMany(mappedBy = "process")
+    public Collection<ProcessWorkflow> getProcessWorkflows() {
+        return processWorkflows;
+    }
+
+    public void setProcessWorkflows(Collection<ProcessWorkflow> processWorkflows) {
+        this.processWorkflows = processWorkflows;
+    }
+
+    @OneToMany(mappedBy = "process")
     public Collection<Task> getTasks() {
         return tasks;
     }
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflow.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflow.java
new file mode 100644
index 0000000..a2acd36
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflow.java
@@ -0,0 +1,65 @@
+package org.apache.airavata.registry.core.experiment.catalog.model;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "PROCESS_WORKFLOW")
+@IdClass(ProcessWorkflowPK.class)
+public class ProcessWorkflow {
+
+    private String processId;
+    private String workflowId;
+    private Timestamp creationTime;
+    private String type;
+    private Process process;
+
+    @Id
+    @Column(name = "PROCESS_ID")
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+
+    @Id
+    @Column(name = "WORKFLOW_ID")
+    public String getWorkflowId() {
+        return workflowId;
+    }
+
+    public void setWorkflowId(String workflowId) {
+        this.workflowId = workflowId;
+    }
+
+    @Column(name = "CREATION_TIME")
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    @Column(name = "TYPE")
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID")
+    public Process getProcess() {
+        return process;
+    }
+
+    public void setProcess(Process process) {
+        this.process = process;
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflowPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflowPK.java
new file mode 100644
index 0000000..050d535
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessWorkflowPK.java
@@ -0,0 +1,49 @@
+package org.apache.airavata.registry.core.experiment.catalog.model;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class ProcessWorkflowPK implements Serializable {
+
+    private String processId;
+    private String workflowId;
+
+    @Id
+    @Column(name = "PROCESS_ID")
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+    @Id
+    @Column(name = "WORKFLOW_ID")
+    public String getWorkflowId() {
+        return workflowId;
+    }
+
+    public void setWorkflowId(String workflowId) {
+        this.workflowId = workflowId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        ProcessWorkflowPK that = (ProcessWorkflowPK) o;
+
+        return (getProcessId() != null ? getProcessId().equals(that.getProcessId()) : that.getProcessId() == null)
+                && (getWorkflowId() != null ? getWorkflowId().equals(that.getWorkflowId()) : that.getWorkflowId() == null);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = getProcessId() != null ? getProcessId().hashCode() : 0;
+        result = 31 * result + (getWorkflowId() != null ? getWorkflowId().hashCode() : 0);
+        return result;
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
index 501ae3a..06e4248 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -51,6 +51,7 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
     public static final String TASK_STATUS = "TaskStatus";
     public static final String JOB = "Job";
     public static final String JOB_STATUS = "JobStatus";
+    public static final String PROCESS_WORKFLOW = "ProcessWorkflow";
 
 
 	// Gateway Table
@@ -219,6 +220,10 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
         public static final String PROCESS_ID = "processId";
     }
 
+    public final class ProcessWorkflowConstants {
+        public static final String PROCESS_ID = "processId";
+    }
+
     //Process Resource Schedule table
     public final class ProcessResourceScheduleConstants {
         public static final String PROCESS_ID = "processId";
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
index 3ba5111..227f224 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
@@ -544,6 +544,20 @@ public class ProcessResource extends AbstractExpCatResource {
 			            }
 		            }
 		            break;
+                case PROCESS_WORKFLOW:
+                    generator = new QueryGenerator(PROCESS_WORKFLOW);
+                    generator.setParameter(ProcessWorkflowConstants.PROCESS_ID, processId);
+                    q = generator.selectQuery(em);
+                    results = q.getResultList();
+                    if (results.size() != 0) {
+                        for (Object result : results) {
+                            ProcessWorkflow processWorkflow = (ProcessWorkflow) result;
+                            JobResource jobResource =
+                                    (JobResource) Utils.getResource(ResourceType.PROCESS_WORKFLOW, processWorkflow);
+                            resourceList.add(jobResource);
+                        }
+                    }
+                    break;
                 default:
                     logger.error("Unsupported resource type for task resource.", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -634,7 +648,7 @@ public class ProcessResource extends AbstractExpCatResource {
         }
     }
 
-    public List<ProcessInputResource> getProcessInputs() throws RegistryException{
+    public List<ProcessInputResource> getProcessInputs() throws RegistryException {
         List<ProcessInputResource> processInputResources = new ArrayList();
         List<ExperimentCatResource> resources = get(ResourceType.PROCESS_INPUT);
         for (ExperimentCatResource resource : resources) {
@@ -644,7 +658,7 @@ public class ProcessResource extends AbstractExpCatResource {
         return processInputResources;
     }
 
-    public List<ProcessOutputResource> getProcessOutputs() throws RegistryException{
+    public List<ProcessOutputResource> getProcessOutputs() throws RegistryException {
         List<ProcessOutputResource> outputResources = new ArrayList();
         List<ExperimentCatResource> resources = get(ResourceType.PROCESS_OUTPUT);
         for (ExperimentCatResource resource : resources) {
@@ -654,7 +668,17 @@ public class ProcessResource extends AbstractExpCatResource {
         return outputResources;
     }
 
-    public List<ProcessStatusResource> getProcessStatuses() throws RegistryException{
+    public List<ProcessWorkflowResource> getProcessWorkflows() throws RegistryException {
+        List<ProcessWorkflowResource> processWorkflowResources = new ArrayList<>();
+        List<ExperimentCatResource> resources = get(ResourceType.PROCESS_WORKFLOW);
+        for (ExperimentCatResource resource : resources) {
+            ProcessWorkflowResource workflowResource = (ProcessWorkflowResource) resource;
+            processWorkflowResources.add(workflowResource);
+        }
+        return processWorkflowResources;
+    }
+
+    public List<ProcessStatusResource> getProcessStatuses() throws RegistryException {
         List<ProcessStatusResource> processStatusResources = new ArrayList();
         List<ExperimentCatResource> resources = get(ResourceType.PROCESS_STATUS);
         for (ExperimentCatResource resource : resources) {
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessWorkflowResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessWorkflowResource.java
new file mode 100644
index 0000000..59f4c3e
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessWorkflowResource.java
@@ -0,0 +1,137 @@
+package org.apache.airavata.registry.core.experiment.catalog.resources;
+
+import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.model.Job;
+import org.apache.airavata.registry.core.experiment.catalog.model.JobPK;
+import org.apache.airavata.registry.core.experiment.catalog.model.ProcessWorkflow;
+import org.apache.airavata.registry.core.experiment.catalog.model.ProcessWorkflowPK;
+import org.apache.airavata.registry.cpi.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import java.sql.Timestamp;
+import java.util.List;
+
+public class ProcessWorkflowResource extends AbstractExpCatResource {
+
+    private static final Logger logger = LoggerFactory.getLogger(ProcessWorkflowResource.class);
+
+    private String processId;
+    private String workflowId;
+    private Timestamp creationTime;
+    private String type;
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+    public String getWorkflowId() {
+        return workflowId;
+    }
+
+    public void setWorkflowId(String workflowId) {
+        this.workflowId = workflowId;
+    }
+
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    @Override
+    public ExperimentCatResource create(ResourceType type) throws RegistryException, RegistryException {
+        throw new UnsupportedOperationException("Create operation is not supported for process workflow resource");
+    }
+
+    @Override
+    public void remove(ResourceType type, Object name) throws RegistryException {
+        throw new UnsupportedOperationException("Remove operation is not supported for process workflow resource");
+    }
+
+    @Override
+    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException {
+        throw new UnsupportedOperationException("Get operation is not supported for process workflow resource");
+    }
+
+    @Override
+    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException {
+        throw new UnsupportedOperationException("List operation is not supported for process workflow resource");
+    }
+
+    @Override
+    public void save() throws RegistryException {
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            ProcessWorkflowPK pwPK = new ProcessWorkflowPK();
+            pwPK.setProcessId(processId);
+            pwPK.setWorkflowId(workflowId);
+            ProcessWorkflow existingPW = em.find(ProcessWorkflow.class, pwPK);
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+
+            ProcessWorkflow pw;
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            if(existingPW == null){
+                pw = new ProcessWorkflow();
+            }else {
+                pw = existingPW;
+            }
+            pw.setProcessId(processId);
+            pw.setWorkflowId(workflowId);
+            if (creationTime != null) {
+                pw.setCreationTime(creationTime);
+            }
+
+            if (type != null) {
+                pw.setType(type);
+            }
+
+            if (existingPW == null){
+                em.persist(pw);
+            }else {
+                em.merge(pw);
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
index 79080b8..a727bad 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
@@ -333,6 +333,13 @@ public class Utils {
                     logger.error("Object should be a JobStatus data.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a JobStatus data.");
                 }
+            case PROCESS_WORKFLOW:
+                if (o instanceof ProcessWorkflow) {
+                    return createProcessWorkflowResource((ProcessWorkflow) o);
+                } else {
+                    logger.error("Object should be a ProcessWorkflow data.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a ProcessWorkflow data.");
+                }
             default:
                 logger.error("Illegal data type..", new IllegalArgumentException());
                 throw new IllegalArgumentException("Illegal data type..");
@@ -747,4 +754,15 @@ public class Utils {
 
         return jobStatusResource;
     }
+
+    private static ExperimentCatResource createProcessWorkflowResource(ProcessWorkflow pw) {
+        ProcessWorkflowResource pwr = new ProcessWorkflowResource();
+        if (pw != null) {
+            pwr.setProcessId(pw.getProcessId());
+            pwr.setWorkflowId(pw.getWorkflowId());
+            pwr.setCreationTime(pw.getCreationTime());
+            pwr.setType(pw.getType());
+        }
+        return pwr;
+    }
 }
\ No newline at end of file
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index 767f587..95bf237 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -50,6 +50,7 @@ import org.apache.airavata.model.experiment.ExperimentSummaryModel;
 import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 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.*;
 import org.apache.airavata.model.task.TaskModel;
@@ -633,4 +634,19 @@ public class ThriftDataModelConversion {
         }
         return null;
     }
+
+    public static List<ProcessWorkflow> getProcessWorkflows(List<ProcessWorkflowResource> resources) {
+        List<ProcessWorkflow> workflows = new ArrayList<>();
+        if (resources != null) {
+            for (ProcessWorkflowResource resource: resources) {
+                ProcessWorkflow processWorkflow = new ProcessWorkflow();
+                processWorkflow.setProcessId(resource.getProcessId());
+                processWorkflow.setWorkflowId(resource.getWorkflowId());
+                processWorkflow.setCreationTime(resource.getCreationTime().getTime());
+                processWorkflow.setType(resource.getType());
+                workflows.add(processWorkflow);
+            }
+        }
+        return workflows;
+    }
 }
\ No newline at end of file
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 5d9bf94..57d72d6 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -392,4 +392,12 @@ CREATE TABLE CONFIGURATION
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL, CATEGORY_ID)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL, EXPIRE_DATE, CATEGORY_ID) VALUES('registry.version', '0.16', CURRENT_TIMESTAMP ,'SYSTEM');
\ No newline at end of file
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL, EXPIRE_DATE, CATEGORY_ID) VALUES('registry.version', '0.16', CURRENT_TIMESTAMP ,'SYSTEM');
+
+CREATE TABLE PROCESS_WORKFLOW
+(
+  PROCESS_ID varchar(255) NOT NULL,
+  WORKFLOW_ID varchar(255) NOT NULL,
+  TYPE varchar(255) DEFAULT NULL,
+  CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+);
\ No newline at end of file
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 b4e437c..6b07069 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -395,4 +395,12 @@ CREATE TABLE CONFIGURATION
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL, CATEGORY_ID)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL, EXPIRE_DATE, CATEGORY_ID) VALUES('registry.version', '0.16', NOW() ,'SYSTEM');
\ No newline at end of file
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL, EXPIRE_DATE, CATEGORY_ID) VALUES('registry.version', '0.16', NOW() ,'SYSTEM');
+
+CREATE TABLE PROCESS_WORKFLOW
+(
+  PROCESS_ID varchar(255) NOT NULL,
+  WORKFLOW_ID varchar(255) NOT NULL,
+  TYPE varchar(255) DEFAULT NULL,
+  CREATION_TIME timestamp DEFAULT NOW()
+);
\ No newline at end of file
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatChildDataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatChildDataType.java
index a097454..f57b676 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatChildDataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatChildDataType.java
@@ -35,5 +35,6 @@ public enum ExpCatChildDataType {
     TASK_STATUS,
     TASK_ERROR,
     JOB,
-    JOB_STATUS
+    JOB_STATUS,
+    PROCESS_WORKFLOW
 }
\ No newline at end of file
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
index 6b88dbc..47964f4 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
@@ -44,5 +44,6 @@ public enum ExperimentCatalogModelType {
     TASK_ERROR,
     JOB,
     JOB_STATUS,
-    QUEUE_STATUS
+    QUEUE_STATUS,
+    PROCESS_WORKFLOW
 }
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
index 49c94aa..87a7bf7 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
@@ -69,6 +69,7 @@ public class Constants {
             public static final String PROCESS_INPUTS = "processInputs";
             public static final String PROCESS_OUTPUTS = "processOutputs";
             public static final String PROCESS_RESOURCE_SCHEDULE = "processResourceSchedule";
+            public static final String PROCESS_WORKFLOW = "processWorkflow";
         }
 
         public final class TaskConstants {
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 5bacaf0..26a2241 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
@@ -45,6 +45,7 @@ import org.apache.airavata.model.error.*;
 import org.apache.airavata.model.experiment.*;
 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.*;
 import org.apache.airavata.model.task.TaskModel;
@@ -1101,6 +1102,37 @@ public class RegistryServerHandler implements RegistryService.Iface {
     }
 
     @Override
+    public List<ProcessWorkflow> getProcessWorkflows(String processId) throws RegistryServiceException, TException {
+
+        try {
+            experimentCatalog = RegistryFactory.getDefaultExpCatalog();
+            return (List<ProcessWorkflow>) experimentCatalog.get(ExperimentCatalogModelType.PROCESS_WORKFLOW, processId);
+        } catch (Exception e) {
+            logger.error(processId, "Error while retrieving process workflows for process " + processId, e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while retrieving process workflows for process " + processId
+                    + ". More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public void addProcessWorkflow(ProcessWorkflow processWorkflow) throws RegistryServiceException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getDefaultExpCatalog();
+            experimentCatalog.add(ExpCatChildDataType.PROCESS_WORKFLOW, processWorkflow, processWorkflow.getProcessId());
+        } catch (Exception e) {
+            logger.error("Error while adding process workflow for process " + processWorkflow.getProcessId(), e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while adding process workflow for process id " + processWorkflow.getProcessId()
+                    + ". More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
     public List<String> getProcessIds(String experimentId) throws RegistryServiceException, TException {
         try {
             experimentCatalog = RegistryFactory.getDefaultExpCatalog();
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 b28c448..acf3997 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
@@ -743,6 +743,10 @@ public class RegistryService {
 
     public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getProcessOutputs(java.lang.String processId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
+    public java.util.List<org.apache.airavata.model.process.ProcessWorkflow> getProcessWorkflows(java.lang.String processId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public void addProcessWorkflow(org.apache.airavata.model.process.ProcessWorkflow processWorkflow) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
     public java.util.List<java.lang.String> getProcessIds(java.lang.String experimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
     /**
@@ -2599,6 +2603,10 @@ public class RegistryService {
 
     public void getProcessOutputs(java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 
+    public void getProcessWorkflows(java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> resultHandler) throws org.apache.thrift.TException;
+
+    public void addProcessWorkflow(org.apache.airavata.model.process.ProcessWorkflow processWorkflow, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+
     public void getProcessIds(java.lang.String experimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 
     public void getJobDetails(java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException;
@@ -4300,6 +4308,55 @@ public class RegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getProcessOutputs failed: unknown result");
     }
 
+    public java.util.List<org.apache.airavata.model.process.ProcessWorkflow> getProcessWorkflows(java.lang.String processId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getProcessWorkflows(processId);
+      return recv_getProcessWorkflows();
+    }
+
+    public void send_getProcessWorkflows(java.lang.String processId) throws org.apache.thrift.TException
+    {
+      getProcessWorkflows_args args = new getProcessWorkflows_args();
+      args.setProcessId(processId);
+      sendBase("getProcessWorkflows", args);
+    }
+
+    public java.util.List<org.apache.airavata.model.process.ProcessWorkflow> recv_getProcessWorkflows() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getProcessWorkflows_result result = new getProcessWorkflows_result();
+      receiveBase(result, "getProcessWorkflows");
+      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, "getProcessWorkflows failed: unknown result");
+    }
+
+    public void addProcessWorkflow(org.apache.airavata.model.process.ProcessWorkflow processWorkflow) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_addProcessWorkflow(processWorkflow);
+      recv_addProcessWorkflow();
+    }
+
+    public void send_addProcessWorkflow(org.apache.airavata.model.process.ProcessWorkflow processWorkflow) throws org.apache.thrift.TException
+    {
+      addProcessWorkflow_args args = new addProcessWorkflow_args();
+      args.setProcessWorkflow(processWorkflow);
+      sendBase("addProcessWorkflow", args);
+    }
+
+    public void recv_addProcessWorkflow() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      addProcessWorkflow_result result = new addProcessWorkflow_result();
+      receiveBase(result, "addProcessWorkflow");
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      return;
+    }
+
     public java.util.List<java.lang.String> getProcessIds(java.lang.String experimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
     {
       send_getProcessIds(experimentId);
@@ -9262,6 +9319,70 @@ public class RegistryService {
       }
     }
 
+    public void getProcessWorkflows(java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getProcessWorkflows_call method_call = new getProcessWorkflows_call(processId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getProcessWorkflows_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> {
+      private java.lang.String processId;
+      public getProcessWorkflows_call(java.lang.String processId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> 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.processId = processId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getProcessWorkflows", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getProcessWorkflows_args args = new getProcessWorkflows_args();
+        args.setProcessId(processId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.util.List<org.apache.airavata.model.process.ProcessWorkflow> 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_getProcessWorkflows();
+      }
+    }
+
+    public void addProcessWorkflow(org.apache.airavata.model.process.ProcessWorkflow processWorkflow, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addProcessWorkflow_call method_call = new addProcessWorkflow_call(processWorkflow, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addProcessWorkflow_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+      private org.apache.airavata.model.process.ProcessWorkflow processWorkflow;
+      public addProcessWorkflow_call(org.apache.airavata.model.process.ProcessWorkflow processWorkflow, 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.processWorkflow = processWorkflow;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addProcessWorkflow", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addProcessWorkflow_args args = new addProcessWorkflow_args();
+        args.setProcessWorkflow(processWorkflow);
+        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 getProcessIds(java.lang.String experimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getProcessIds_call method_call = new getProcessIds_call(experimentId, resultHandler, this, ___protocolFactory, ___transport);
@@ -13264,6 +13385,8 @@ public class RegistryService {
       processMap.put("getJob", new getJob());
       processMap.put("getJobs", new getJobs());
       processMap.put("getProcessOutputs", new getProcessOutputs());
+      processMap.put("getProcessWorkflows", new getProcessWorkflows());
+      processMap.put("addProcessWorkflow", new addProcessWorkflow());
       processMap.put("getProcessIds", new getProcessIds());
       processMap.put("getJobDetails", new getJobDetails());
       processMap.put("registerApplicationModule", new registerApplicationModule());
@@ -14711,6 +14834,54 @@ public class RegistryService {
       }
     }
 
+    public static class getProcessWorkflows<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getProcessWorkflows_args> {
+      public getProcessWorkflows() {
+        super("getProcessWorkflows");
+      }
+
+      public getProcessWorkflows_args getEmptyArgsInstance() {
+        return new getProcessWorkflows_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getProcessWorkflows_result getResult(I iface, getProcessWorkflows_args args) throws org.apache.thrift.TException {
+        getProcessWorkflows_result result = new getProcessWorkflows_result();
+        try {
+          result.success = iface.getProcessWorkflows(args.processId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class addProcessWorkflow<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addProcessWorkflow_args> {
+      public addProcessWorkflow() {
+        super("addProcessWorkflow");
+      }
+
+      public addProcessWorkflow_args getEmptyArgsInstance() {
+        return new addProcessWorkflow_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addProcessWorkflow_result getResult(I iface, addProcessWorkflow_args args) throws org.apache.thrift.TException {
+        addProcessWorkflow_result result = new addProcessWorkflow_result();
+        try {
+          iface.addProcessWorkflow(args.processWorkflow);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
     public static class getProcessIds<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getProcessIds_args> {
       public getProcessIds() {
         super("getProcessIds");
@@ -17586,6 +17757,8 @@ public class RegistryService {
       processMap.put("getJob", new getJob());
       processMap.put("getJobs", new getJobs());
       processMap.put("getProcessOutputs", new getProcessOutputs());
+      processMap.put("getProcessWorkflows", new getProcessWorkflows());
+      processMap.put("addProcessWorkflow", new addProcessWorkflow());
       processMap.put("getProcessIds", new getProcessIds());
       processMap.put("getJobDetails", new getJobDetails());
       processMap.put("registerApplicationModule", new registerApplicationModule());
@@ -21258,20 +21431,20 @@ public class RegistryService {
       }
     }
 
-    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 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 getProcessIds_args getEmptyArgsInstance() {
-        return new getProcessIds_args();
+      public getProcessWorkflows_args getEmptyArgsInstance() {
+        return new getProcessWorkflows_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.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<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.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);
@@ -21286,7 +21459,7 @@ 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();
+            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);
@@ -21318,26 +21491,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessIds_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessIds(args.experimentId,resultHandler);
+      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 getJobDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobDetails_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
-      public getJobDetails() {
-        super("getJobDetails");
+    public static class addProcessWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessWorkflow_args, Void> {
+      public addProcessWorkflow() {
+        super("addProcessWorkflow");
       }
 
-      public getJobDetails_args getEmptyArgsInstance() {
-        return new getJobDetails_args();
+      public addProcessWorkflow_args getEmptyArgsInstance() {
+        return new addProcessWorkflow_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<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.util.List<org.apache.airavata.model.job.JobModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.job.JobModel> o) {
-            getJobDetails_result result = new getJobDetails_result();
-            result.success = o;
+        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) {
@@ -21351,15 +21523,11 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJobDetails_result result = new getJobDetails_result();
+            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.airavata.model.error.ExperimentNotFoundException) {
-              result.enf = (org.apache.airavata.model.error.ExperimentNotFoundException) e;
-              result.setEnfIsSet(true);
-              msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
               _LOGGER.error("TTransportException inside handler", e);
               fb.close();
@@ -21387,25 +21555,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJobDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getJobDetails(args.airavataExperimentId,resultHandler);
+      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 registerApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationModule_args, java.lang.String> {
-      public registerApplicationModule() {
-        super("registerApplicationModule");
+    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 registerApplicationModule_args getEmptyArgsInstance() {
-        return new registerApplicationModule_args();
+      public getProcessIds_args getEmptyArgsInstance() {
+        return new getProcessIds_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<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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerApplicationModule_result result = new registerApplicationModule_result();
+        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);
@@ -21420,7 +21588,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerApplicationModule_result result = new registerApplicationModule_result();
+            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);
@@ -21452,25 +21620,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerApplicationModule(args.gatewayId, args.applicationModule,resultHandler);
+      public void start(I iface, getProcessIds_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessIds(args.experimentId,resultHandler);
       }
     }
 
-    public static class getApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationModule_args, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> {
-      public getApplicationModule() {
-        super("getApplicationModule");
+    public static class getJobDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobDetails_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
+      public getJobDetails() {
+        super("getJobDetails");
       }
 
-      public getApplicationModule_args getEmptyArgsInstance() {
-        return new getApplicationModule_args();
+      public getJobDetails_args getEmptyArgsInstance() {
+        return new getJobDetails_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> 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<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule o) {
-            getApplicationModule_result result = new getApplicationModule_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) {
+            getJobDetails_result result = new getJobDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -21485,11 +21653,15 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationModule_result result = new getApplicationModule_result();
+            getJobDetails_result result = new getJobDetails_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.airavata.model.error.ExperimentNotFoundException) {
+              result.enf = (org.apache.airavata.model.error.ExperimentNotFoundException) e;
+              result.setEnfIsSet(true);
+              msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
               _LOGGER.error("TTransportException inside handler", e);
               fb.close();
@@ -21517,27 +21689,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationModule(args.appModuleId,resultHandler);
+      public void start(I iface, getJobDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getJobDetails(args.airavataExperimentId,resultHandler);
       }
     }
 
-    public static class updateApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationModule_args, java.lang.Boolean> {
-      public updateApplicationModule() {
-        super("updateApplicationModule");
+    public static class registerApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationModule_args, java.lang.String> {
+      public registerApplicationModule() {
+        super("registerApplicationModule");
       }
 
-      public updateApplicationModule_args getEmptyArgsInstance() {
-        return new updateApplicationModule_args();
+      public registerApplicationModule_args getEmptyArgsInstance() {
+        return new registerApplicationModule_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateApplicationModule_result result = new updateApplicationModule_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerApplicationModule_result result = new registerApplicationModule_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) {
@@ -21551,7 +21722,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateApplicationModule_result result = new updateApplicationModule_result();
+            registerApplicationModule_result result = new registerApplicationModule_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21583,25 +21754,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateApplicationModule(args.appModuleId, args.applicationModule,resultHandler);
+      public void start(I iface, registerApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerApplicationModule(args.gatewayId, args.applicationModule,resultHandler);
       }
     }
 
-    public static class getAllAppModules<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAppModules_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> {
-      public getAllAppModules() {
-        super("getAllAppModules");
+    public static class getApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationModule_args, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> {
+      public getApplicationModule() {
+        super("getApplicationModule");
       }
 
-      public getAllAppModules_args getEmptyArgsInstance() {
-        return new getAllAppModules_args();
+      public getApplicationModule_args getEmptyArgsInstance() {
+        return new getApplicationModule_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> 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.appcatalog.appdeployment.ApplicationModule>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> o) {
-            getAllAppModules_result result = new getAllAppModules_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule o) {
+            getApplicationModule_result result = new getApplicationModule_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -21616,7 +21787,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllAppModules_result result = new getAllAppModules_result();
+            getApplicationModule_result result = new getApplicationModule_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21648,25 +21819,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllAppModules_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllAppModules(args.gatewayId,resultHandler);
+      public void start(I iface, getApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationModule(args.appModuleId,resultHandler);
       }
     }
 
-    public static class deleteApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationModule_args, java.lang.Boolean> {
-      public deleteApplicationModule() {
-        super("deleteApplicationModule");
+    public static class updateApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationModule_args, java.lang.Boolean> {
+      public updateApplicationModule() {
+        super("updateApplicationModule");
       }
 
-      public deleteApplicationModule_args getEmptyArgsInstance() {
-        return new deleteApplicationModule_args();
+      public updateApplicationModule_args getEmptyArgsInstance() {
+        return new updateApplicationModule_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteApplicationModule_result result = new deleteApplicationModule_result();
+            updateApplicationModule_result result = new updateApplicationModule_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -21682,7 +21853,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteApplicationModule_result result = new deleteApplicationModule_result();
+            updateApplicationModule_result result = new updateApplicationModule_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21714,90 +21885,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteApplicationModule(args.appModuleId,resultHandler);
-      }
-    }
-
-    public static class registerApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationDeployment_args, java.lang.String> {
-      public registerApplicationDeployment() {
-        super("registerApplicationDeployment");
-      }
-
-      public registerApplicationDeployment_args getEmptyArgsInstance() {
-        return new registerApplicationDeployment_args();
-      }
-
-      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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerApplicationDeployment_result result = new registerApplicationDeployment_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;
-            registerApplicationDeployment_result result = new registerApplicationDeployment_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, registerApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerApplicationDeployment(args.gatewayId, args.applicationDeployment,resultHandler);
+      public void start(I iface, updateApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateApplicationModule(args.appModuleId, args.applicationModule,resultHandler);
       }
     }
 
-    public static class getApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationDeployment_args, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> {
-      public getApplicationDeployment() {
-        super("getApplicationDeployment");
+    public static class getAllAppModules<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAppModules_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> {
+      public getAllAppModules() {
+        super("getAllAppModules");
       }
 
-      public getApplicationDeployment_args getEmptyArgsInstance() {
-        return new getApplicationDeployment_args();
+      public getAllAppModules_args getEmptyArgsInstance() {
+        return new getAllAppModules_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> 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.appcatalog.appdeployment.ApplicationModule>> 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.appcatalog.appdeployment.ApplicationDeploymentDescription>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription o) {
-            getApplicationDeployment_result result = new getApplicationDeployment_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> o) {
+            getAllAppModules_result result = new getAllAppModules_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -21812,7 +21918,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationDeployment_result result = new getApplicationDeployment_result();
+            getAllAppModules_result result = new getAllAppModules_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21844,25 +21950,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationDeployment(args.appDeploymentId,resultHandler);
+      public void start(I iface, getAllAppModules_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllAppModules(args.gatewayId,resultHandler);
       }
     }
 
-    public static class updateApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationDeployment_args, java.lang.Boolean> {
-      public updateApplicationDeployment() {
-        super("updateApplicationDeployment");
+    public static class deleteApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationModule_args, java.lang.Boolean> {
+      public deleteApplicationModule() {
+        super("deleteApplicationModule");
       }
 
-      public updateApplicationDeployment_args getEmptyArgsInstance() {
-        return new updateApplicationDeployment_args();
+      public deleteApplicationModule_args getEmptyArgsInstance() {
+        return new deleteApplicationModule_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateApplicationDeployment_result result = new updateApplicationDeployment_result();
+            deleteApplicationModule_result result = new deleteApplicationModule_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -21878,7 +21984,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateApplicationDeployment_result result = new updateApplicationDeployment_result();
+            deleteApplicationModule_result result = new deleteApplicationModule_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21910,27 +22016,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateApplicationDeployment(args.appDeploymentId, args.applicationDeployment,resultHandler);
+      public void start(I iface, deleteApplicationModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteApplicationModule(args.appModuleId,resultHandler);
       }
     }
 
-    public static class deleteApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationDeployment_args, java.lang.Boolean> {
-      public deleteApplicationDeployment() {
-        super("deleteApplicationDeployment");
+    public static class registerApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationDeployment_args, java.lang.String> {
+      public registerApplicationDeployment() {
+        super("registerApplicationDeployment");
       }
 
-      public deleteApplicationDeployment_args getEmptyArgsInstance() {
-        return new deleteApplicationDeployment_args();
+      public registerApplicationDeployment_args getEmptyArgsInstance() {
+        return new registerApplicationDeployment_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteApplicationDeployment_result result = new deleteApplicationDeployment_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerApplicationDeployment_result result = new registerApplicationDeployment_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) {
@@ -21944,7 +22049,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteApplicationDeployment_result result = new deleteApplicationDeployment_result();
+            registerApplicationDeployment_result result = new registerApplicationDeployment_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -21976,25 +22081,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteApplicationDeployment(args.appDeploymentId,resultHandler);
+      public void start(I iface, registerApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerApplicationDeployment(args.gatewayId, args.applicationDeployment,resultHandler);
       }
     }
 
-    public static class getAllApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
-      public getAllApplicationDeployments() {
-        super("getAllApplicationDeployments");
+    public static class getApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationDeployment_args, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> {
+      public getApplicationDeployment() {
+        super("getApplicationDeployment");
       }
 
-      public getAllApplicationDeployments_args getEmptyArgsInstance() {
-        return new getAllApplicationDeployments_args();
+      public getApplicationDeployment_args getEmptyArgsInstance() {
+        return new getApplicationDeployment_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> 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.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
-            getAllApplicationDeployments_result result = new getAllApplicationDeployments_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription o) {
+            getApplicationDeployment_result result = new getApplicationDeployment_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22009,7 +22114,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllApplicationDeployments_result result = new getAllApplicationDeployments_result();
+            getApplicationDeployment_result result = new getApplicationDeployment_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22041,26 +22146,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllApplicationDeployments(args.gatewayId,resultHandler);
+      public void start(I iface, getApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationDeployment(args.appDeploymentId,resultHandler);
       }
     }
 
-    public static class getAppModuleDeployedResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAppModuleDeployedResources_args, java.util.List<java.lang.String>> {
-      public getAppModuleDeployedResources() {
-        super("getAppModuleDeployedResources");
+    public static class updateApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationDeployment_args, java.lang.Boolean> {
+      public updateApplicationDeployment() {
+        super("updateApplicationDeployment");
       }
 
-      public getAppModuleDeployedResources_args getEmptyArgsInstance() {
-        return new getAppModuleDeployedResources_args();
+      public updateApplicationDeployment_args getEmptyArgsInstance() {
+        return new updateApplicationDeployment_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.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<java.lang.String>>() { 
-          public void onComplete(java.util.List<java.lang.String> o) {
-            getAppModuleDeployedResources_result result = new getAppModuleDeployedResources_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateApplicationDeployment_result result = new updateApplicationDeployment_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) {
@@ -22074,7 +22180,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAppModuleDeployedResources_result result = new getAppModuleDeployedResources_result();
+            updateApplicationDeployment_result result = new updateApplicationDeployment_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22106,26 +22212,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAppModuleDeployedResources_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAppModuleDeployedResources(args.appModuleId,resultHandler);
+      public void start(I iface, updateApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateApplicationDeployment(args.appDeploymentId, args.applicationDeployment,resultHandler);
       }
     }
 
-    public static class getApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
-      public getApplicationDeployments() {
-        super("getApplicationDeployments");
+    public static class deleteApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationDeployment_args, java.lang.Boolean> {
+      public deleteApplicationDeployment() {
+        super("deleteApplicationDeployment");
       }
 
-      public getApplicationDeployments_args getEmptyArgsInstance() {
-        return new getApplicationDeployments_args();
+      public deleteApplicationDeployment_args getEmptyArgsInstance() {
+        return new deleteApplicationDeployment_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> 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.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
-            getApplicationDeployments_result result = new getApplicationDeployments_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteApplicationDeployment_result result = new deleteApplicationDeployment_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) {
@@ -22139,7 +22246,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationDeployments_result result = new getApplicationDeployments_result();
+            deleteApplicationDeployment_result result = new deleteApplicationDeployment_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22171,25 +22278,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationDeployments(args.appModuleId,resultHandler);
+      public void start(I iface, deleteApplicationDeployment_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteApplicationDeployment(args.appDeploymentId,resultHandler);
       }
     }
 
-    public static class registerApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationInterface_args, java.lang.String> {
-      public registerApplicationInterface() {
-        super("registerApplicationInterface");
+    public static class getAllApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
+      public getAllApplicationDeployments() {
+        super("getAllApplicationDeployments");
       }
 
-      public registerApplicationInterface_args getEmptyArgsInstance() {
-        return new registerApplicationInterface_args();
+      public getAllApplicationDeployments_args getEmptyArgsInstance() {
+        return new getAllApplicationDeployments_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<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> 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) {
-            registerApplicationInterface_result result = new registerApplicationInterface_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
+            getAllApplicationDeployments_result result = new getAllApplicationDeployments_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22204,7 +22311,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerApplicationInterface_result result = new registerApplicationInterface_result();
+            getAllApplicationDeployments_result result = new getAllApplicationDeployments_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22236,25 +22343,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerApplicationInterface(args.gatewayId, args.applicationInterface,resultHandler);
+      public void start(I iface, getAllApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllApplicationDeployments(args.gatewayId,resultHandler);
       }
     }
 
-    public static class getApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationInterface_args, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> {
-      public getApplicationInterface() {
-        super("getApplicationInterface");
+    public static class getAppModuleDeployedResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAppModuleDeployedResources_args, java.util.List<java.lang.String>> {
+      public getAppModuleDeployedResources() {
+        super("getAppModuleDeployedResources");
       }
 
-      public getApplicationInterface_args getEmptyArgsInstance() {
-        return new getApplicationInterface_args();
+      public getAppModuleDeployedResources_args getEmptyArgsInstance() {
+        return new getAppModuleDeployedResources_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      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<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription o) {
-            getApplicationInterface_result result = new getApplicationInterface_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAppModuleDeployedResources_result result = new getAppModuleDeployedResources_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22269,7 +22376,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationInterface_result result = new getApplicationInterface_result();
+            getAppModuleDeployedResources_result result = new getAppModuleDeployedResources_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22301,27 +22408,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationInterface(args.appInterfaceId,resultHandler);
+      public void start(I iface, getAppModuleDeployedResources_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAppModuleDeployedResources(args.appModuleId,resultHandler);
       }
     }
 
-    public static class updateApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationInterface_args, java.lang.Boolean> {
-      public updateApplicationInterface() {
-        super("updateApplicationInterface");
+    public static class getApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
+      public getApplicationDeployments() {
+        super("getApplicationDeployments");
       }
 
-      public updateApplicationInterface_args getEmptyArgsInstance() {
-        return new updateApplicationInterface_args();
+      public getApplicationDeployments_args getEmptyArgsInstance() {
+        return new getApplicationDeployments_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<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> 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) {
-            updateApplicationInterface_result result = new updateApplicationInterface_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
+            getApplicationDeployments_result result = new getApplicationDeployments_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) {
@@ -22335,7 +22441,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateApplicationInterface_result result = new updateApplicationInterface_result();
+            getApplicationDeployments_result result = new getApplicationDeployments_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22367,27 +22473,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateApplicationInterface(args.appInterfaceId, args.applicationInterface,resultHandler);
+      public void start(I iface, getApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationDeployments(args.appModuleId,resultHandler);
       }
     }
 
-    public static class deleteApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationInterface_args, java.lang.Boolean> {
-      public deleteApplicationInterface() {
-        super("deleteApplicationInterface");
+    public static class registerApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationInterface_args, java.lang.String> {
+      public registerApplicationInterface() {
+        super("registerApplicationInterface");
       }
 
-      public deleteApplicationInterface_args getEmptyArgsInstance() {
-        return new deleteApplicationInterface_args();
+      public registerApplicationInterface_args getEmptyArgsInstance() {
+        return new registerApplicationInterface_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteApplicationInterface_result result = new deleteApplicationInterface_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerApplicationInterface_result result = new registerApplicationInterface_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) {
@@ -22401,7 +22506,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteApplicationInterface_result result = new deleteApplicationInterface_result();
+            registerApplicationInterface_result result = new registerApplicationInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22433,25 +22538,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteApplicationInterface(args.appInterfaceId,resultHandler);
+      public void start(I iface, registerApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerApplicationInterface(args.gatewayId, args.applicationInterface,resultHandler);
       }
     }
 
-    public static class getAllApplicationInterfaceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationInterfaceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
-      public getAllApplicationInterfaceNames() {
-        super("getAllApplicationInterfaceNames");
+    public static class getApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationInterface_args, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> {
+      public getApplicationInterface() {
+        super("getApplicationInterface");
       }
 
-      public getAllApplicationInterfaceNames_args getEmptyArgsInstance() {
-        return new getAllApplicationInterfaceNames_args();
+      public getApplicationInterface_args getEmptyArgsInstance() {
+        return new getApplicationInterface_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> 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.Map<java.lang.String,java.lang.String>>() { 
-          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
-            getAllApplicationInterfaceNames_result result = new getAllApplicationInterfaceNames_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription o) {
+            getApplicationInterface_result result = new getApplicationInterface_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22466,7 +22571,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllApplicationInterfaceNames_result result = new getAllApplicationInterfaceNames_result();
+            getApplicationInterface_result result = new getApplicationInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22498,26 +22603,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllApplicationInterfaceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllApplicationInterfaceNames(args.gatewayId,resultHandler);
+      public void start(I iface, getApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationInterface(args.appInterfaceId,resultHandler);
       }
     }
 
-    public static class getAllApplicationInterfaces<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationInterfaces_args, java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> {
-      public getAllApplicationInterfaces() {
-        super("getAllApplicationInterfaces");
+    public static class updateApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationInterface_args, java.lang.Boolean> {
+      public updateApplicationInterface() {
+        super("updateApplicationInterface");
       }
 
-      public getAllApplicationInterfaces_args getEmptyArgsInstance() {
-        return new getAllApplicationInterfaces_args();
+      public updateApplicationInterface_args getEmptyArgsInstance() {
+        return new updateApplicationInterface_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> 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.appcatalog.appinterface.ApplicationInterfaceDescription>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> o) {
-            getAllApplicationInterfaces_result result = new getAllApplicationInterfaces_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateApplicationInterface_result result = new updateApplicationInterface_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) {
@@ -22531,7 +22637,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllApplicationInterfaces_result result = new getAllApplicationInterfaces_result();
+            updateApplicationInterface_result result = new updateApplicationInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22563,26 +22669,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllApplicationInterfaces_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllApplicationInterfaces(args.gatewayId,resultHandler);
+      public void start(I iface, updateApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateApplicationInterface(args.appInterfaceId, args.applicationInterface,resultHandler);
       }
     }
 
-    public static class getApplicationInputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationInputs_args, java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> {
-      public getApplicationInputs() {
-        super("getApplicationInputs");
+    public static class deleteApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationInterface_args, java.lang.Boolean> {
+      public deleteApplicationInterface() {
+        super("deleteApplicationInterface");
       }
 
-      public getApplicationInputs_args getEmptyArgsInstance() {
-        return new getApplicationInputs_args();
+      public deleteApplicationInterface_args getEmptyArgsInstance() {
+        return new deleteApplicationInterface_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> 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.InputDataObjectType>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.application.io.InputDataObjectType> o) {
-            getApplicationInputs_result result = new getApplicationInputs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteApplicationInterface_result result = new deleteApplicationInterface_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) {
@@ -22596,7 +22703,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationInputs_result result = new getApplicationInputs_result();
+            deleteApplicationInterface_result result = new deleteApplicationInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22628,25 +22735,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationInputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationInputs(args.appInterfaceId,resultHandler);
+      public void start(I iface, deleteApplicationInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteApplicationInterface(args.appInterfaceId,resultHandler);
       }
     }
 
-    public static class getApplicationOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
-      public getApplicationOutputs() {
-        super("getApplicationOutputs");
+    public static class getAllApplicationInterfaceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationInterfaceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
+      public getAllApplicationInterfaceNames() {
+        super("getAllApplicationInterfaceNames");
       }
 
-      public getApplicationOutputs_args getEmptyArgsInstance() {
-        return new getApplicationOutputs_args();
+      public getAllApplicationInterfaceNames_args getEmptyArgsInstance() {
+        return new getAllApplicationInterfaceNames_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.util.Map<java.lang.String,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.application.io.OutputDataObjectType>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
-            getApplicationOutputs_result result = new getApplicationOutputs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>>() { 
+          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
+            getAllApplicationInterfaceNames_result result = new getAllApplicationInterfaceNames_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22661,7 +22768,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getApplicationOutputs_result result = new getApplicationOutputs_result();
+            getAllApplicationInterfaceNames_result result = new getAllApplicationInterfaceNames_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22693,25 +22800,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getApplicationOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
-        iface.getApplicationOutputs(args.appInterfaceId,resultHandler);
+      public void start(I iface, getAllApplicationInterfaceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllApplicationInterfaceNames(args.gatewayId,resultHandler);
       }
     }
 
-    public static class getAvailableAppInterfaceComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAvailableAppInterfaceComputeResources_args, java.util.Map<java.lang.String,java.lang.String>> {
-      public getAvailableAppInterfaceComputeResources() {
-        super("getAvailableAppInterfaceComputeResources");
+    public static class getAllApplicationInterfaces<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllApplicationInterfaces_args, java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> {
+      public getAllApplicationInterfaces() {
+        super("getAllApplicationInterfaces");
       }
 
-      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
-        return new getAvailableAppInterfaceComputeResources_args();
+      public getAllApplicationInterfaces_args getEmptyArgsInstance() {
+        return new getAllApplicationInterfaces_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,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.appcatalog.appinterface.ApplicationInterfaceDescription>> 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.Map<java.lang.String,java.lang.String>>() { 
-          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
-            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> o) {
+            getAllApplicationInterfaces_result result = new getAllApplicationInterfaces_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22726,7 +22833,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+            getAllApplicationInterfaces_result result = new getAllApplicationInterfaces_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22758,25 +22865,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAvailableAppInterfaceComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId,resultHandler);
+      public void start(I iface, getAllApplicationInterfaces_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllApplicationInterfaces(args.gatewayId,resultHandler);
       }
     }
 
-    public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, java.lang.String> {
-      public registerComputeResource() {
-        super("registerComputeResource");
+    public static class getApplicationInputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationInputs_args, java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> {
+      public getApplicationInputs() {
+        super("getApplicationInputs");
       }
 
-      public registerComputeResource_args getEmptyArgsInstance() {
-        return new registerComputeResource_args();
+      public getApplicationInputs_args getEmptyArgsInstance() {
+        return new getApplicationInputs_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<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> 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) {
-            registerComputeResource_result result = new registerComputeResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.application.io.InputDataObjectType> o) {
+            getApplicationInputs_result result = new getApplicationInputs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22791,7 +22898,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerComputeResource_result result = new registerComputeResource_result();
+            getApplicationInputs_result result = new getApplicationInputs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22823,25 +22930,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerComputeResource(args.computeResourceDescription,resultHandler);
+      public void start(I iface, getApplicationInputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationInputs(args.appInterfaceId,resultHandler);
       }
     }
 
-    public static class getComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getComputeResource_args, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> {
-      public getComputeResource() {
-        super("getComputeResource");
+    public static class getApplicationOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      public getApplicationOutputs() {
+        super("getApplicationOutputs");
       }
 
-      public getComputeResource_args getEmptyArgsInstance() {
-        return new getComputeResource_args();
+      public getApplicationOutputs_args getEmptyArgsInstance() {
+        return new getApplicationOutputs_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> 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.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<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription o) {
-            getComputeResource_result result = new getComputeResource_result();
+        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) {
+            getApplicationOutputs_result result = new getApplicationOutputs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22856,7 +22963,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getComputeResource_result result = new getComputeResource_result();
+            getApplicationOutputs_result result = new getApplicationOutputs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22888,25 +22995,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> resultHandler) throws org.apache.thrift.TException {
-        iface.getComputeResource(args.computeResourceId,resultHandler);
+      public void start(I iface, getApplicationOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getApplicationOutputs(args.appInterfaceId,resultHandler);
       }
     }
 
-    public static class getAllComputeResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllComputeResourceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
-      public getAllComputeResourceNames() {
-        super("getAllComputeResourceNames");
+    public static class getAvailableAppInterfaceComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAvailableAppInterfaceComputeResources_args, java.util.Map<java.lang.String,java.lang.String>> {
+      public getAvailableAppInterfaceComputeResources() {
+        super("getAvailableAppInterfaceComputeResources");
       }
 
-      public getAllComputeResourceNames_args getEmptyArgsInstance() {
-        return new getAllComputeResourceNames_args();
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,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.Map<java.lang.String,java.lang.String>>() { 
           public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
-            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22921,7 +23028,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22953,27 +23060,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllComputeResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllComputeResourceNames(resultHandler);
+      public void start(I iface, getAvailableAppInterfaceComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId,resultHandler);
       }
     }
 
-    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, java.lang.Boolean> {
-      public updateComputeResource() {
-        super("updateComputeResource");
+    public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, java.lang.String> {
+      public registerComputeResource() {
+        super("registerComputeResource");
       }
 
-      public updateComputeResource_args getEmptyArgsInstance() {
-        return new updateComputeResource_args();
+      public registerComputeResource_args getEmptyArgsInstance() {
+        return new registerComputeResource_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateComputeResource_result result = new updateComputeResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerComputeResource_result result = new registerComputeResource_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) {
@@ -22987,7 +23093,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateComputeResource_result result = new updateComputeResource_result();
+            registerComputeResource_result result = new registerComputeResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23019,27 +23125,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
+      public void start(I iface, registerComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerComputeResource(args.computeResourceDescription,resultHandler);
       }
     }
 
-    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, java.lang.Boolean> {
-      public deleteComputeResource() {
-        super("deleteComputeResource");
+    public static class getComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getComputeResource_args, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> {
+      public getComputeResource() {
+        super("getComputeResource");
       }
 
-      public deleteComputeResource_args getEmptyArgsInstance() {
-        return new deleteComputeResource_args();
+      public getComputeResource_args getEmptyArgsInstance() {
+        return new getComputeResource_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.appcatalog.computeresource.ComputeResourceDescription> 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) {
-            deleteComputeResource_result result = new deleteComputeResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription o) {
+            getComputeResource_result result = new getComputeResource_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) {
@@ -23053,7 +23158,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteComputeResource_result result = new deleteComputeResource_result();
+            getComputeResource_result result = new getComputeResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23085,25 +23190,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      public void start(I iface, getComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> resultHandler) throws org.apache.thrift.TException {
+        iface.getComputeResource(args.computeResourceId,resultHandler);
       }
     }
 
-    public static class registerStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerStorageResource_args, java.lang.String> {
-      public registerStorageResource() {
-        super("registerStorageResource");
+    public static class getAllComputeResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllComputeResourceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
+      public getAllComputeResourceNames() {
+        super("getAllComputeResourceNames");
       }
 
-      public registerStorageResource_args getEmptyArgsInstance() {
-        return new registerStorageResource_args();
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_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<java.util.Map<java.lang.String,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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerStorageResource_result result = new registerStorageResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>>() { 
+          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23118,7 +23223,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerStorageResource_result result = new registerStorageResource_result();
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23150,26 +23255,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerStorageResource(args.storageResourceDescription,resultHandler);
+      public void start(I iface, getAllComputeResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllComputeResourceNames(resultHandler);
       }
     }
 
-    public static class getStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getStorageResource_args, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> {
-      public getStorageResource() {
-        super("getStorageResource");
+    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, java.lang.Boolean> {
+      public updateComputeResource() {
+        super("updateComputeResource");
       }
 
-      public getStorageResource_args getEmptyArgsInstance() {
-        return new getStorageResource_args();
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> 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<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription o) {
-            getStorageResource_result result = new getStorageResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateComputeResource_result result = new updateComputeResource_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) {
@@ -23183,7 +23289,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getStorageResource_result result = new getStorageResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23215,26 +23321,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> resultHandler) throws org.apache.thrift.TException {
-        iface.getStorageResource(args.storageResourceId,resultHandler);
+      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
       }
     }
 
-    public static class getAllStorageResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllStorageResourceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
-      public getAllStorageResourceNames() {
-        super("getAllStorageResourceNames");
+    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, java.lang.Boolean> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
       }
 
-      public getAllStorageResourceNames_args getEmptyArgsInstance() {
-        return new getAllStorageResourceNames_args();
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> 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.Map<java.lang.String,java.lang.String>>() { 
-          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
-            getAllStorageResourceNames_result result = new getAllStorageResourceNames_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteComputeResource_result result = new deleteComputeResource_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) {
@@ -23248,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;
-            getAllStorageResourceNames_result result = new getAllStorageResourceNames_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23280,27 +23387,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllStorageResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllStorageResourceNames(resultHandler);
+      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteComputeResource(args.computeResourceId,resultHandler);
       }
     }
 
-    public static class updateStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateStorageResource_args, java.lang.Boolean> {
-      public updateStorageResource() {
-        super("updateStorageResource");
+    public static class registerStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerStorageResource_args, java.lang.String> {
+      public registerStorageResource() {
+        super("registerStorageResource");
       }
 
-      public updateStorageResource_args getEmptyArgsInstance() {
-        return new updateStorageResource_args();
+      public registerStorageResource_args getEmptyArgsInstance() {
+        return new registerStorageResource_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateStorageResource_result result = new updateStorageResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerStorageResource_result result = new registerStorageResource_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) {
@@ -23314,7 +23420,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateStorageResource_result result = new updateStorageResource_result();
+            registerStorageResource_result result = new registerStorageResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23346,27 +23452,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateStorageResource(args.storageResourceId, args.storageResourceDescription,resultHandler);
+      public void start(I iface, registerStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerStorageResource(args.storageResourceDescription,resultHandler);
       }
     }
 
-    public static class deleteStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteStorageResource_args, java.lang.Boolean> {
-      public deleteStorageResource() {
-        super("deleteStorageResource");
+    public static class getStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getStorageResource_args, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> {
+      public getStorageResource() {
+        super("getStorageResource");
       }
 
-      public deleteStorageResource_args getEmptyArgsInstance() {
-        return new deleteStorageResource_args();
+      public getStorageResource_args getEmptyArgsInstance() {
+        return new getStorageResource_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.appcatalog.storageresource.StorageResourceDescription> 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) {
-            deleteStorageResource_result result = new deleteStorageResource_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription o) {
+            getStorageResource_result result = new getStorageResource_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) {
@@ -23380,7 +23485,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteStorageResource_result result = new deleteStorageResource_result();
+            getStorageResource_result result = new getStorageResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23412,25 +23517,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteStorageResource(args.storageResourceId,resultHandler);
+      public void start(I iface, getStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> resultHandler) throws org.apache.thrift.TException {
+        iface.getStorageResource(args.storageResourceId,resultHandler);
       }
     }
 
-    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, java.lang.String> {
-      public addLocalSubmissionDetails() {
-        super("addLocalSubmissionDetails");
+    public static class getAllStorageResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllStorageResourceNames_args, java.util.Map<java.lang.String,java.lang.String>> {
+      public getAllStorageResourceNames() {
+        super("getAllStorageResourceNames");
       }
 
-      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new addLocalSubmissionDetails_args();
+      public getAllStorageResourceNames_args getEmptyArgsInstance() {
+        return new getAllStorageResourceNames_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<java.util.Map<java.lang.String,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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>>() { 
+          public void onComplete(java.util.Map<java.lang.String,java.lang.String> o) {
+            getAllStorageResourceNames_result result = new getAllStorageResourceNames_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23445,7 +23550,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            getAllStorageResourceNames_result result = new getAllStorageResourceNames_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23477,25 +23582,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addLocalSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addLocalSubmissionDetails(args.computeResourceId, args.priorityOrder, args.localSubmission,resultHandler);
+      public void start(I iface, getAllStorageResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllStorageResourceNames(resultHandler);
       }
     }
 
-    public static class updateLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalSubmissionDetails_args, java.lang.Boolean> {
-      public updateLocalSubmissionDetails() {
-        super("updateLocalSubmissionDetails");
+    public static class updateStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateStorageResource_args, java.lang.Boolean> {
+      public updateStorageResource() {
+        super("updateStorageResource");
       }
 
-      public updateLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateLocalSubmissionDetails_args();
+      public updateStorageResource_args getEmptyArgsInstance() {
+        return new updateStorageResource_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateLocalSubmissionDetails_result result = new updateLocalSubmissionDetails_result();
+            updateStorageResource_result result = new updateStorageResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -23511,7 +23616,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateLocalSubmissionDetails_result result = new updateLocalSubmissionDetails_result();
+            updateStorageResource_result result = new updateStorageResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23543,26 +23648,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateLocalSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateLocalSubmissionDetails(args.jobSubmissionInterfaceId, args.localSubmission,resultHandler);
+      public void start(I iface, updateStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateStorageResource(args.storageResourceId, args.storageResourceDescription,resultHandler);
       }
     }
 
-    public static class getLocalJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> {
-      public getLocalJobSubmission() {
-        super("getLocalJobSubmission");
+    public static class deleteStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteStorageResource_args, java.lang.Boolean> {
+      public deleteStorageResource() {
+        super("deleteStorageResource");
       }
 
-      public getLocalJobSubmission_args getEmptyArgsInstance() {
-        return new getLocalJobSubmission_args();
+      public deleteStorageResource_args getEmptyArgsInstance() {
+        return new deleteStorageResource_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> 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<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission o) {
-            getLocalJobSubmission_result result = new getLocalJobSubmission_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteStorageResource_result result = new deleteStorageResource_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) {
@@ -23576,7 +23682,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getLocalJobSubmission_result result = new getLocalJobSubmission_result();
+            deleteStorageResource_result result = new deleteStorageResource_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23608,25 +23714,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getLocalJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> resultHandler) throws org.apache.thrift.TException {
-        iface.getLocalJobSubmission(args.jobSubmissionId,resultHandler);
+      public void start(I iface, deleteStorageResource_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteStorageResource(args.storageResourceId,resultHandler);
       }
     }
 
-    public static class addSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHJobSubmissionDetails_args, java.lang.String> {
-      public addSSHJobSubmissionDetails() {
-        super("addSSHJobSubmissionDetails");
+    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, java.lang.String> {
+      public addLocalSubmissionDetails() {
+        super("addLocalSubmissionDetails");
       }
 
-      public addSSHJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addSSHJobSubmissionDetails_args();
+      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
+        return new addLocalSubmissionDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23641,7 +23747,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23673,26 +23779,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addSSHJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addSSHJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.sshJobSubmission,resultHandler);
+      public void start(I iface, addLocalSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addLocalSubmissionDetails(args.computeResourceId, args.priorityOrder, args.localSubmission,resultHandler);
       }
     }
 
-    public static class addSSHForkJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHForkJobSubmissionDetails_args, java.lang.String> {
-      public addSSHForkJobSubmissionDetails() {
-        super("addSSHForkJobSubmissionDetails");
+    public static class updateLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalSubmissionDetails_args, java.lang.Boolean> {
+      public updateLocalSubmissionDetails() {
+        super("updateLocalSubmissionDetails");
       }
 
-      public addSSHForkJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addSSHForkJobSubmissionDetails_args();
+      public updateLocalSubmissionDetails_args getEmptyArgsInstance() {
+        return new updateLocalSubmissionDetails_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<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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addSSHForkJobSubmissionDetails_result result = new addSSHForkJobSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateLocalSubmissionDetails_result result = new updateLocalSubmissionDetails_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) {
@@ -23706,7 +23813,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addSSHForkJobSubmissionDetails_result result = new addSSHForkJobSubmissionDetails_result();
+            updateLocalSubmissionDetails_result result = new updateLocalSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23738,25 +23845,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addSSHForkJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addSSHForkJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.sshJobSubmission,resultHandler);
+      public void start(I iface, updateLocalSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateLocalSubmissionDetails(args.jobSubmissionInterfaceId, args.localSubmission,resultHandler);
       }
     }
 
-    public static class getSSHJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> {
-      public getSSHJobSubmission() {
-        super("getSSHJobSubmission");
+    public static class getLocalJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> {
+      public getLocalJobSubmission() {
+        super("getLocalJobSubmission");
       }
 
-      public getSSHJobSubmission_args getEmptyArgsInstance() {
-        return new getSSHJobSubmission_args();
+      public getLocalJobSubmission_args getEmptyArgsInstance() {
+        return new getLocalJobSubmission_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> 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.appcatalog.computeresource.SSHJobSubmission>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission o) {
-            getSSHJobSubmission_result result = new getSSHJobSubmission_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission o) {
+            getLocalJobSubmission_result result = new getLocalJobSubmission_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23771,7 +23878,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getSSHJobSubmission_result result = new getSSHJobSubmission_result();
+            getLocalJobSubmission_result result = new getLocalJobSubmission_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23803,25 +23910,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getSSHJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> resultHandler) throws org.apache.thrift.TException {
-        iface.getSSHJobSubmission(args.jobSubmissionId,resultHandler);
+      public void start(I iface, getLocalJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> resultHandler) throws org.apache.thrift.TException {
+        iface.getLocalJobSubmission(args.jobSubmissionId,resultHandler);
       }
     }
 
-    public static class addUNICOREJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUNICOREJobSubmissionDetails_args, java.lang.String> {
-      public addUNICOREJobSubmissionDetails() {
-        super("addUNICOREJobSubmissionDetails");
+    public static class addSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHJobSubmissionDetails_args, java.lang.String> {
+      public addSSHJobSubmissionDetails() {
+        super("addSSHJobSubmissionDetails");
       }
 
-      public addUNICOREJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addUNICOREJobSubmissionDetails_args();
+      public addSSHJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addSSHJobSubmissionDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_result();
+            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23836,7 +23943,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_result();
+            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23868,25 +23975,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addUNICOREJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addUNICOREJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.unicoreJobSubmission,resultHandler);
+      public void start(I iface, addSSHJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addSSHJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.sshJobSubmission,resultHandler);
       }
     }
 
-    public static class getUnicoreJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUnicoreJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> {
-      public getUnicoreJobSubmission() {
-        super("getUnicoreJobSubmission");
+    public static class addSSHForkJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHForkJobSubmissionDetails_args, java.lang.String> {
+      public addSSHForkJobSubmissionDetails() {
+        super("addSSHForkJobSubmissionDetails");
       }
 
-      public getUnicoreJobSubmission_args getEmptyArgsInstance() {
-        return new getUnicoreJobSubmission_args();
+      public addSSHForkJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addSSHForkJobSubmissionDetails_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> 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.appcatalog.computeresource.UnicoreJobSubmission>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission o) {
-            getUnicoreJobSubmission_result result = new getUnicoreJobSubmission_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addSSHForkJobSubmissionDetails_result result = new addSSHForkJobSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23901,7 +24008,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUnicoreJobSubmission_result result = new getUnicoreJobSubmission_result();
+            addSSHForkJobSubmissionDetails_result result = new addSSHForkJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23933,25 +24040,90 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUnicoreJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> resultHandler) throws org.apache.thrift.TException {
-        iface.getUnicoreJobSubmission(args.jobSubmissionId,resultHandler);
+      public void start(I iface, addSSHForkJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addSSHForkJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.sshJobSubmission,resultHandler);
       }
     }
 
-    public static class addCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addCloudJobSubmissionDetails_args, java.lang.String> {
-      public addCloudJobSubmissionDetails() {
-        super("addCloudJobSubmissionDetails");
+    public static class getSSHJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> {
+      public getSSHJobSubmission() {
+        super("getSSHJobSubmission");
       }
 
-      public addCloudJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addCloudJobSubmissionDetails_args();
+      public getSSHJobSubmission_args getEmptyArgsInstance() {
+        return new getSSHJobSubmission_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> 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.appcatalog.computeresource.SSHJobSubmission>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission o) {
+            getSSHJobSubmission_result result = new getSSHJobSubmission_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;
+            getSSHJobSubmission_result result = new getSSHJobSubmission_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, getSSHJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> resultHandler) throws org.apache.thrift.TException {
+        iface.getSSHJobSubmission(args.jobSubmissionId,resultHandler);
+      }
+    }
+
+    public static class addUNICOREJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUNICOREJobSubmissionDetails_args, java.lang.String> {
+      public addUNICOREJobSubmissionDetails() {
+        super("addUNICOREJobSubmissionDetails");
+      }
+
+      public addUNICOREJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addUNICOREJobSubmissionDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_result();
+            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23966,7 +24138,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_result();
+            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23998,25 +24170,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addCloudJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addCloudJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.cloudSubmission,resultHandler);
+      public void start(I iface, addUNICOREJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addUNICOREJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.unicoreJobSubmission,resultHandler);
       }
     }
 
-    public static class getCloudJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getCloudJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> {
-      public getCloudJobSubmission() {
-        super("getCloudJobSubmission");
+    public static class getUnicoreJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUnicoreJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> {
+      public getUnicoreJobSubmission() {
+        super("getUnicoreJobSubmission");
       }
 
-      public getCloudJobSubmission_args getEmptyArgsInstance() {
-        return new getCloudJobSubmission_args();
+      public getUnicoreJobSubmission_args getEmptyArgsInstance() {
+        return new getUnicoreJobSubmission_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> 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.appcatalog.computeresource.CloudJobSubmission>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission o) {
-            getCloudJobSubmission_result result = new getCloudJobSubmission_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission o) {
+            getUnicoreJobSubmission_result result = new getUnicoreJobSubmission_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24031,7 +24203,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getCloudJobSubmission_result result = new getCloudJobSubmission_result();
+            getUnicoreJobSubmission_result result = new getUnicoreJobSubmission_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24063,27 +24235,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getCloudJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> resultHandler) throws org.apache.thrift.TException {
-        iface.getCloudJobSubmission(args.jobSubmissionId,resultHandler);
+      public void start(I iface, getUnicoreJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> resultHandler) throws org.apache.thrift.TException {
+        iface.getUnicoreJobSubmission(args.jobSubmissionId,resultHandler);
       }
     }
 
-    public static class updateSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSSHJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateSSHJobSubmissionDetails() {
-        super("updateSSHJobSubmissionDetails");
+    public static class addCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addCloudJobSubmissionDetails_args, java.lang.String> {
+      public addCloudJobSubmissionDetails() {
+        super("addCloudJobSubmissionDetails");
       }
 
-      public updateSSHJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateSSHJobSubmissionDetails_args();
+      public addCloudJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addCloudJobSubmissionDetails_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_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) {
@@ -24097,7 +24268,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_result();
+            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24129,27 +24300,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateSSHJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateSSHJobSubmissionDetails(args.jobSubmissionInterfaceId, args.sshJobSubmission,resultHandler);
+      public void start(I iface, addCloudJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addCloudJobSubmissionDetails(args.computeResourceId, args.priorityOrder, args.cloudSubmission,resultHandler);
       }
     }
 
-    public static class updateCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateCloudJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateCloudJobSubmissionDetails() {
-        super("updateCloudJobSubmissionDetails");
+    public static class getCloudJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getCloudJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> {
+      public getCloudJobSubmission() {
+        super("getCloudJobSubmission");
       }
 
-      public updateCloudJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateCloudJobSubmissionDetails_args();
+      public getCloudJobSubmission_args getEmptyArgsInstance() {
+        return new getCloudJobSubmission_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.appcatalog.computeresource.CloudJobSubmission> 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) {
-            updateCloudJobSubmissionDetails_result result = new updateCloudJobSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission o) {
+            getCloudJobSubmission_result result = new getCloudJobSubmission_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) {
@@ -24163,7 +24333,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateCloudJobSubmissionDetails_result result = new updateCloudJobSubmissionDetails_result();
+            getCloudJobSubmission_result result = new getCloudJobSubmission_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24195,25 +24365,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateCloudJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateCloudJobSubmissionDetails(args.jobSubmissionInterfaceId, args.sshJobSubmission,resultHandler);
+      public void start(I iface, getCloudJobSubmission_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> resultHandler) throws org.apache.thrift.TException {
+        iface.getCloudJobSubmission(args.jobSubmissionId,resultHandler);
       }
     }
 
-    public static class updateUnicoreJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateUnicoreJobSubmissionDetails() {
-        super("updateUnicoreJobSubmissionDetails");
+    public static class updateSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSSHJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateSSHJobSubmissionDetails() {
+        super("updateSSHJobSubmissionDetails");
       }
 
-      public updateUnicoreJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateUnicoreJobSubmissionDetails_args();
+      public updateSSHJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new updateSSHJobSubmissionDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_result();
+            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -24229,7 +24399,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_result();
+            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24261,26 +24431,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUnicoreJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUnicoreJobSubmissionDetails(args.jobSubmissionInterfaceId, args.unicoreJobSubmission,resultHandler);
+      public void start(I iface, updateSSHJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateSSHJobSubmissionDetails(args.jobSubmissionInterfaceId, args.sshJobSubmission,resultHandler);
       }
     }
 
-    public static class addLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalDataMovementDetails_args, java.lang.String> {
-      public addLocalDataMovementDetails() {
-        super("addLocalDataMovementDetails");
+    public static class updateCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateCloudJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateCloudJobSubmissionDetails() {
+        super("updateCloudJobSubmissionDetails");
       }
 
-      public addLocalDataMovementDetails_args getEmptyArgsInstance() {
-        return new addLocalDataMovementDetails_args();
+      public updateCloudJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new updateCloudJobSubmissionDetails_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<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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateCloudJobSubmissionDetails_result result = new updateCloudJobSubmissionDetails_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) {
@@ -24294,7 +24465,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
+            updateCloudJobSubmissionDetails_result result = new updateCloudJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24326,25 +24497,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addLocalDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addLocalDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.localDataMovement,resultHandler);
+      public void start(I iface, updateCloudJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateCloudJobSubmissionDetails(args.jobSubmissionInterfaceId, args.sshJobSubmission,resultHandler);
       }
     }
 
-    public static class updateLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalDataMovementDetails_args, java.lang.Boolean> {
-      public updateLocalDataMovementDetails() {
-        super("updateLocalDataMovementDetails");
+    public static class updateUnicoreJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateUnicoreJobSubmissionDetails() {
+        super("updateUnicoreJobSubmissionDetails");
       }
 
-      public updateLocalDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateLocalDataMovementDetails_args();
+      public updateUnicoreJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new updateUnicoreJobSubmissionDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_result();
+            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -24360,7 +24531,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_result();
+            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24392,90 +24563,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateLocalDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateLocalDataMovementDetails(args.dataMovementInterfaceId, args.localDataMovement,resultHandler);
-      }
-    }
-
-    public static class getLocalDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalDataMovement_args, org.apache.airavata.model.data.movement.LOCALDataMovement> {
-      public getLocalDataMovement() {
-        super("getLocalDataMovement");
-      }
-
-      public getLocalDataMovement_args getEmptyArgsInstance() {
-        return new getLocalDataMovement_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement> 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.data.movement.LOCALDataMovement>() { 
-          public void onComplete(org.apache.airavata.model.data.movement.LOCALDataMovement o) {
-            getLocalDataMovement_result result = new getLocalDataMovement_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;
-            getLocalDataMovement_result result = new getLocalDataMovement_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, getLocalDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement> resultHandler) throws org.apache.thrift.TException {
-        iface.getLocalDataMovement(args.dataMovementId,resultHandler);
+      public void start(I iface, updateUnicoreJobSubmissionDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUnicoreJobSubmissionDetails(args.jobSubmissionInterfaceId, args.unicoreJobSubmission,resultHandler);
       }
     }
 
-    public static class addSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSCPDataMovementDetails_args, java.lang.String> {
-      public addSCPDataMovementDetails() {
-        super("addSCPDataMovementDetails");
+    public static class addLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalDataMovementDetails_args, java.lang.String> {
+      public addLocalDataMovementDetails() {
+        super("addLocalDataMovementDetails");
       }
 
-      public addSCPDataMovementDetails_args getEmptyArgsInstance() {
-        return new addSCPDataMovementDetails_args();
+      public addLocalDataMovementDetails_args getEmptyArgsInstance() {
+        return new addLocalDataMovementDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_result();
+            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24490,7 +24596,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_result();
+            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24522,25 +24628,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addSCPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addSCPDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.scpDataMovement,resultHandler);
+      public void start(I iface, addLocalDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addLocalDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.localDataMovement,resultHandler);
       }
     }
 
-    public static class updateSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSCPDataMovementDetails_args, java.lang.Boolean> {
-      public updateSCPDataMovementDetails() {
-        super("updateSCPDataMovementDetails");
+    public static class updateLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalDataMovementDetails_args, java.lang.Boolean> {
+      public updateLocalDataMovementDetails() {
+        super("updateLocalDataMovementDetails");
       }
 
-      public updateSCPDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateSCPDataMovementDetails_args();
+      public updateLocalDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateLocalDataMovementDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_result();
+            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -24556,7 +24662,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_result();
+            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24588,25 +24694,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateSCPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateSCPDataMovementDetails(args.dataMovementInterfaceId, args.scpDataMovement,resultHandler);
+      public void start(I iface, updateLocalDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateLocalDataMovementDetails(args.dataMovementInterfaceId, args.localDataMovement,resultHandler);
       }
     }
 
-    public static class getSCPDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSCPDataMovement_args, org.apache.airavata.model.data.movement.SCPDataMovement> {
-      public getSCPDataMovement() {
-        super("getSCPDataMovement");
+    public static class getLocalDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalDataMovement_args, org.apache.airavata.model.data.movement.LOCALDataMovement> {
+      public getLocalDataMovement() {
+        super("getLocalDataMovement");
       }
 
-      public getSCPDataMovement_args getEmptyArgsInstance() {
-        return new getSCPDataMovement_args();
+      public getLocalDataMovement_args getEmptyArgsInstance() {
+        return new getLocalDataMovement_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement> 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.data.movement.SCPDataMovement>() { 
-          public void onComplete(org.apache.airavata.model.data.movement.SCPDataMovement o) {
-            getSCPDataMovement_result result = new getSCPDataMovement_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement>() { 
+          public void onComplete(org.apache.airavata.model.data.movement.LOCALDataMovement o) {
+            getLocalDataMovement_result result = new getLocalDataMovement_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24621,7 +24727,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getSCPDataMovement_result result = new getSCPDataMovement_result();
+            getLocalDataMovement_result result = new getLocalDataMovement_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24653,25 +24759,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getSCPDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement> resultHandler) throws org.apache.thrift.TException {
-        iface.getSCPDataMovement(args.dataMovementId,resultHandler);
+      public void start(I iface, getLocalDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement> resultHandler) throws org.apache.thrift.TException {
+        iface.getLocalDataMovement(args.dataMovementId,resultHandler);
       }
     }
 
-    public static class addUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUnicoreDataMovementDetails_args, java.lang.String> {
-      public addUnicoreDataMovementDetails() {
-        super("addUnicoreDataMovementDetails");
+    public static class addSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSCPDataMovementDetails_args, java.lang.String> {
+      public addSCPDataMovementDetails() {
+        super("addSCPDataMovementDetails");
       }
 
-      public addUnicoreDataMovementDetails_args getEmptyArgsInstance() {
-        return new addUnicoreDataMovementDetails_args();
+      public addSCPDataMovementDetails_args getEmptyArgsInstance() {
+        return new addSCPDataMovementDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
+            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24686,7 +24792,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
+            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24718,25 +24824,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addUnicoreDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addUnicoreDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.unicoreDataMovement,resultHandler);
+      public void start(I iface, addSCPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addSCPDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.scpDataMovement,resultHandler);
       }
     }
 
-    public static class updateUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreDataMovementDetails_args, java.lang.Boolean> {
-      public updateUnicoreDataMovementDetails() {
-        super("updateUnicoreDataMovementDetails");
+    public static class updateSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSCPDataMovementDetails_args, java.lang.Boolean> {
+      public updateSCPDataMovementDetails() {
+        super("updateSCPDataMovementDetails");
       }
 
-      public updateUnicoreDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateUnicoreDataMovementDetails_args();
+      public updateSCPDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateSCPDataMovementDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_result();
+            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -24752,7 +24858,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_result();
+            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24784,25 +24890,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUnicoreDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUnicoreDataMovementDetails(args.dataMovementInterfaceId, args.unicoreDataMovement,resultHandler);
+      public void start(I iface, updateSCPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateSCPDataMovementDetails(args.dataMovementInterfaceId, args.scpDataMovement,resultHandler);
       }
     }
 
-    public static class getUnicoreDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUnicoreDataMovement_args, org.apache.airavata.model.data.movement.UnicoreDataMovement> {
-      public getUnicoreDataMovement() {
-        super("getUnicoreDataMovement");
+    public static class getSCPDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSCPDataMovement_args, org.apache.airavata.model.data.movement.SCPDataMovement> {
+      public getSCPDataMovement() {
+        super("getSCPDataMovement");
       }
 
-      public getUnicoreDataMovement_args getEmptyArgsInstance() {
-        return new getUnicoreDataMovement_args();
+      public getSCPDataMovement_args getEmptyArgsInstance() {
+        return new getSCPDataMovement_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement> 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.data.movement.UnicoreDataMovement>() { 
-          public void onComplete(org.apache.airavata.model.data.movement.UnicoreDataMovement o) {
-            getUnicoreDataMovement_result result = new getUnicoreDataMovement_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement>() { 
+          public void onComplete(org.apache.airavata.model.data.movement.SCPDataMovement o) {
+            getSCPDataMovement_result result = new getSCPDataMovement_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24817,7 +24923,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUnicoreDataMovement_result result = new getUnicoreDataMovement_result();
+            getSCPDataMovement_result result = new getSCPDataMovement_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24849,25 +24955,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUnicoreDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement> resultHandler) throws org.apache.thrift.TException {
-        iface.getUnicoreDataMovement(args.dataMovementId,resultHandler);
+      public void start(I iface, getSCPDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement> resultHandler) throws org.apache.thrift.TException {
+        iface.getSCPDataMovement(args.dataMovementId,resultHandler);
       }
     }
 
-    public static class addGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGridFTPDataMovementDetails_args, java.lang.String> {
-      public addGridFTPDataMovementDetails() {
-        super("addGridFTPDataMovementDetails");
+    public static class addUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUnicoreDataMovementDetails_args, java.lang.String> {
+      public addUnicoreDataMovementDetails() {
+        super("addUnicoreDataMovementDetails");
       }
 
-      public addGridFTPDataMovementDetails_args getEmptyArgsInstance() {
-        return new addGridFTPDataMovementDetails_args();
+      public addUnicoreDataMovementDetails_args getEmptyArgsInstance() {
+        return new addUnicoreDataMovementDetails_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addGridFTPDataMovementDetails_result result = new addGridFTPDataMovementDetails_result();
+            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24882,7 +24988,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addGridFTPDataMovementDetails_result result = new addGridFTPDataMovementDetails_result();
+            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24914,25 +25020,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addGridFTPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addGridFTPDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.gridFTPDataMovement,resultHandler);
+      public void start(I iface, addUnicoreDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addUnicoreDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.unicoreDataMovement,resultHandler);
       }
     }
 
-    public static class updateGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGridFTPDataMovementDetails_args, java.lang.Boolean> {
-      public updateGridFTPDataMovementDetails() {
-        super("updateGridFTPDataMovementDetails");
+    public static class updateUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreDataMovementDetails_args, java.lang.Boolean> {
+      public updateUnicoreDataMovementDetails() {
+        super("updateUnicoreDataMovementDetails");
       }
 
-      public updateGridFTPDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateGridFTPDataMovementDetails_args();
+      public updateUnicoreDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateUnicoreDataMovementDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_result();
+            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -24948,7 +25054,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_result();
+            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24980,25 +25086,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGridFTPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGridFTPDataMovementDetails(args.dataMovementInterfaceId, args.gridFTPDataMovement,resultHandler);
+      public void start(I iface, updateUnicoreDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUnicoreDataMovementDetails(args.dataMovementInterfaceId, args.unicoreDataMovement,resultHandler);
       }
     }
 
-    public static class getGridFTPDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGridFTPDataMovement_args, org.apache.airavata.model.data.movement.GridFTPDataMovement> {
-      public getGridFTPDataMovement() {
-        super("getGridFTPDataMovement");
+    public static class getUnicoreDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUnicoreDataMovement_args, org.apache.airavata.model.data.movement.UnicoreDataMovement> {
+      public getUnicoreDataMovement() {
+        super("getUnicoreDataMovement");
       }
 
-      public getGridFTPDataMovement_args getEmptyArgsInstance() {
-        return new getGridFTPDataMovement_args();
+      public getUnicoreDataMovement_args getEmptyArgsInstance() {
+        return new getUnicoreDataMovement_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.GridFTPDataMovement> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement> 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.data.movement.GridFTPDataMovement>() { 
-          public void onComplete(org.apache.airavata.model.data.movement.GridFTPDataMovement o) {
-            getGridFTPDataMovement_result result = new getGridFTPDataMovement_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement>() { 
+          public void onComplete(org.apache.airavata.model.data.movement.UnicoreDataMovement o) {
+            getUnicoreDataMovement_result result = new getUnicoreDataMovement_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25013,7 +25119,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGridFTPDataMovement_result result = new getGridFTPDataMovement_result();
+            getUnicoreDataMovement_result result = new getUnicoreDataMovement_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25045,27 +25151,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGridFTPDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.GridFTPDataMovement> resultHandler) throws org.apache.thrift.TException {
-        iface.getGridFTPDataMovement(args.dataMovementId,resultHandler);
+      public void start(I iface, getUnicoreDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement> resultHandler) throws org.apache.thrift.TException {
+        iface.getUnicoreDataMovement(args.dataMovementId,resultHandler);
       }
     }
 
-    public static class changeJobSubmissionPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriority_args, java.lang.Boolean> {
-      public changeJobSubmissionPriority() {
-        super("changeJobSubmissionPriority");
+    public static class addGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGridFTPDataMovementDetails_args, java.lang.String> {
+      public addGridFTPDataMovementDetails() {
+        super("addGridFTPDataMovementDetails");
       }
 
-      public changeJobSubmissionPriority_args getEmptyArgsInstance() {
-        return new changeJobSubmissionPriority_args();
+      public addGridFTPDataMovementDetails_args getEmptyArgsInstance() {
+        return new addGridFTPDataMovementDetails_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addGridFTPDataMovementDetails_result result = new addGridFTPDataMovementDetails_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) {
@@ -25079,7 +25184,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
+            addGridFTPDataMovementDetails_result result = new addGridFTPDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25111,25 +25216,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, changeJobSubmissionPriority_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.changeJobSubmissionPriority(args.jobSubmissionInterfaceId, args.newPriorityOrder,resultHandler);
+      public void start(I iface, addGridFTPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addGridFTPDataMovementDetails(args.productUri, args.dataMoveType, args.priorityOrder, args.gridFTPDataMovement,resultHandler);
       }
     }
 
-    public static class changeDataMovementPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriority_args, java.lang.Boolean> {
-      public changeDataMovementPriority() {
-        super("changeDataMovementPriority");
+    public static class updateGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGridFTPDataMovementDetails_args, java.lang.Boolean> {
+      public updateGridFTPDataMovementDetails() {
+        super("updateGridFTPDataMovementDetails");
       }
 
-      public changeDataMovementPriority_args getEmptyArgsInstance() {
-        return new changeDataMovementPriority_args();
+      public updateGridFTPDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateGridFTPDataMovementDetails_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            changeDataMovementPriority_result result = new changeDataMovementPriority_result();
+            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25145,7 +25250,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            changeDataMovementPriority_result result = new changeDataMovementPriority_result();
+            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25177,27 +25282,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, changeDataMovementPriority_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.changeDataMovementPriority(args.dataMovementInterfaceId, args.newPriorityOrder,resultHandler);
+      public void start(I iface, updateGridFTPDataMovementDetails_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGridFTPDataMovementDetails(args.dataMovementInterfaceId, args.gridFTPDataMovement,resultHandler);
       }
     }
 
-    public static class changeJobSubmissionPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriorities_args, java.lang.Boolean> {
-      public changeJobSubmissionPriorities() {
-        super("changeJobSubmissionPriorities");
+    public static class getGridFTPDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGridFTPDataMovement_args, org.apache.airavata.model.data.movement.GridFTPDataMovement> {
+      public getGridFTPDataMovement() {
+        super("getGridFTPDataMovement");
       }
 
-      public changeJobSubmissionPriorities_args getEmptyArgsInstance() {
-        return new changeJobSubmissionPriorities_args();
+      public getGridFTPDataMovement_args getEmptyArgsInstance() {
+        return new getGridFTPDataMovement_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.data.movement.GridFTPDataMovement> 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) {
-            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.GridFTPDataMovement>() { 
+          public void onComplete(org.apache.airavata.model.data.movement.GridFTPDataMovement o) {
+            getGridFTPDataMovement_result result = new getGridFTPDataMovement_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) {
@@ -25211,7 +25315,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_result();
+            getGridFTPDataMovement_result result = new getGridFTPDataMovement_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25243,25 +25347,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, changeJobSubmissionPriorities_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.changeJobSubmissionPriorities(args.jobSubmissionPriorityMap,resultHandler);
+      public void start(I iface, getGridFTPDataMovement_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.GridFTPDataMovement> resultHandler) throws org.apache.thrift.TException {
+        iface.getGridFTPDataMovement(args.dataMovementId,resultHandler);
       }
     }
 
-    public static class changeDataMovementPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriorities_args, java.lang.Boolean> {
-      public changeDataMovementPriorities() {
-        super("changeDataMovementPriorities");
+    public static class changeJobSubmissionPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriority_args, java.lang.Boolean> {
+      public changeJobSubmissionPriority() {
+        super("changeJobSubmissionPriority");
       }
 
-      public changeDataMovementPriorities_args getEmptyArgsInstance() {
-        return new changeDataMovementPriorities_args();
+      public changeJobSubmissionPriority_args getEmptyArgsInstance() {
+        return new changeJobSubmissionPriority_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            changeDataMovementPriorities_result result = new changeDataMovementPriorities_result();
+            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25277,7 +25381,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            changeDataMovementPriorities_result result = new changeDataMovementPriorities_result();
+            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25309,25 +25413,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, changeDataMovementPriorities_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.changeDataMovementPriorities(args.dataMovementPriorityMap,resultHandler);
+      public void start(I iface, changeJobSubmissionPriority_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.changeJobSubmissionPriority(args.jobSubmissionInterfaceId, args.newPriorityOrder,resultHandler);
       }
     }
 
-    public static class deleteJobSubmissionInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteJobSubmissionInterface_args, java.lang.Boolean> {
-      public deleteJobSubmissionInterface() {
-        super("deleteJobSubmissionInterface");
+    public static class changeDataMovementPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriority_args, java.lang.Boolean> {
+      public changeDataMovementPriority() {
+        super("changeDataMovementPriority");
       }
 
-      public deleteJobSubmissionInterface_args getEmptyArgsInstance() {
-        return new deleteJobSubmissionInterface_args();
+      public changeDataMovementPriority_args getEmptyArgsInstance() {
+        return new changeDataMovementPriority_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_result();
+            changeDataMovementPriority_result result = new changeDataMovementPriority_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25343,7 +25447,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_result();
+            changeDataMovementPriority_result result = new changeDataMovementPriority_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25375,25 +25479,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteJobSubmissionInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteJobSubmissionInterface(args.computeResourceId, args.jobSubmissionInterfaceId,resultHandler);
+      public void start(I iface, changeDataMovementPriority_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.changeDataMovementPriority(args.dataMovementInterfaceId, args.newPriorityOrder,resultHandler);
       }
     }
 
-    public static class deleteDataMovementInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteDataMovementInterface_args, java.lang.Boolean> {
-      public deleteDataMovementInterface() {
-        super("deleteDataMovementInterface");
+    public static class changeJobSubmissionPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriorities_args, java.lang.Boolean> {
+      public changeJobSubmissionPriorities() {
+        super("changeJobSubmissionPriorities");
       }
 
-      public deleteDataMovementInterface_args getEmptyArgsInstance() {
-        return new deleteDataMovementInterface_args();
+      public changeJobSubmissionPriorities_args getEmptyArgsInstance() {
+        return new changeJobSubmissionPriorities_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteDataMovementInterface_result result = new deleteDataMovementInterface_result();
+            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25409,7 +25513,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteDataMovementInterface_result result = new deleteDataMovementInterface_result();
+            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25441,26 +25545,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteDataMovementInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteDataMovementInterface(args.productUri, args.dataMovementInterfaceId, args.dataMoveType,resultHandler);
+      public void start(I iface, changeJobSubmissionPriorities_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.changeJobSubmissionPriorities(args.jobSubmissionPriorityMap,resultHandler);
       }
     }
 
-    public static class registerResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerResourceJobManager_args, java.lang.String> {
-      public registerResourceJobManager() {
-        super("registerResourceJobManager");
+    public static class changeDataMovementPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriorities_args, java.lang.Boolean> {
+      public changeDataMovementPriorities() {
+        super("changeDataMovementPriorities");
       }
 
-      public registerResourceJobManager_args getEmptyArgsInstance() {
-        return new registerResourceJobManager_args();
+      public changeDataMovementPriorities_args getEmptyArgsInstance() {
+        return new changeDataMovementPriorities_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<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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerResourceJobManager_result result = new registerResourceJobManager_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            changeDataMovementPriorities_result result = new changeDataMovementPriorities_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) {
@@ -25474,7 +25579,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerResourceJobManager_result result = new registerResourceJobManager_result();
+            changeDataMovementPriorities_result result = new changeDataMovementPriorities_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25506,25 +25611,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerResourceJobManager(args.resourceJobManager,resultHandler);
+      public void start(I iface, changeDataMovementPriorities_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.changeDataMovementPriorities(args.dataMovementPriorityMap,resultHandler);
       }
     }
 
-    public static class updateResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateResourceJobManager_args, java.lang.Boolean> {
-      public updateResourceJobManager() {
-        super("updateResourceJobManager");
+    public static class deleteJobSubmissionInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteJobSubmissionInterface_args, java.lang.Boolean> {
+      public deleteJobSubmissionInterface() {
+        super("deleteJobSubmissionInterface");
       }
 
-      public updateResourceJobManager_args getEmptyArgsInstance() {
-        return new updateResourceJobManager_args();
+      public deleteJobSubmissionInterface_args getEmptyArgsInstance() {
+        return new deleteJobSubmissionInterface_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateResourceJobManager_result result = new updateResourceJobManager_result();
+            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25540,7 +25645,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateResourceJobManager_result result = new updateResourceJobManager_result();
+            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25572,26 +25677,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateResourceJobManager(args.resourceJobManagerId, args.updatedResourceJobManager,resultHandler);
+      public void start(I iface, deleteJobSubmissionInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteJobSubmissionInterface(args.computeResourceId, args.jobSubmissionInterfaceId,resultHandler);
       }
     }
 
-    public static class getResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getResourceJobManager_args, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> {
-      public getResourceJobManager() {
-        super("getResourceJobManager");
+    public static class deleteDataMovementInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteDataMovementInterface_args, java.lang.Boolean> {
+      public deleteDataMovementInterface() {
+        super("deleteDataMovementInterface");
       }
 
-      public getResourceJobManager_args getEmptyArgsInstance() {
-        return new getResourceJobManager_args();
+      public deleteDataMovementInterface_args getEmptyArgsInstance() {
+        return new deleteDataMovementInterface_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> 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<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager o) {
-            getResourceJobManager_result result = new getResourceJobManager_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteDataMovementInterface_result result = new deleteDataMovementInterface_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) {
@@ -25605,7 +25711,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getResourceJobManager_result result = new getResourceJobManager_result();
+            deleteDataMovementInterface_result result = new deleteDataMovementInterface_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25637,27 +25743,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> resultHandler) throws org.apache.thrift.TException {
-        iface.getResourceJobManager(args.resourceJobManagerId,resultHandler);
+      public void start(I iface, deleteDataMovementInterface_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteDataMovementInterface(args.productUri, args.dataMovementInterfaceId, args.dataMoveType,resultHandler);
       }
     }
 
-    public static class deleteResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteResourceJobManager_args, java.lang.Boolean> {
-      public deleteResourceJobManager() {
-        super("deleteResourceJobManager");
+    public static class registerResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerResourceJobManager_args, java.lang.String> {
+      public registerResourceJobManager() {
+        super("registerResourceJobManager");
       }
 
-      public deleteResourceJobManager_args getEmptyArgsInstance() {
-        return new deleteResourceJobManager_args();
+      public registerResourceJobManager_args getEmptyArgsInstance() {
+        return new registerResourceJobManager_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteResourceJobManager_result result = new deleteResourceJobManager_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerResourceJobManager_result result = new registerResourceJobManager_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) {
@@ -25671,7 +25776,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteResourceJobManager_result result = new deleteResourceJobManager_result();
+            registerResourceJobManager_result result = new registerResourceJobManager_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25703,25 +25808,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteResourceJobManager(args.resourceJobManagerId,resultHandler);
+      public void start(I iface, registerResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerResourceJobManager(args.resourceJobManager,resultHandler);
       }
     }
 
-    public static class deleteBatchQueue<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteBatchQueue_args, java.lang.Boolean> {
-      public deleteBatchQueue() {
-        super("deleteBatchQueue");
+    public static class updateResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateResourceJobManager_args, java.lang.Boolean> {
+      public updateResourceJobManager() {
+        super("updateResourceJobManager");
       }
 
-      public deleteBatchQueue_args getEmptyArgsInstance() {
-        return new deleteBatchQueue_args();
+      public updateResourceJobManager_args getEmptyArgsInstance() {
+        return new updateResourceJobManager_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteBatchQueue_result result = new deleteBatchQueue_result();
+            updateResourceJobManager_result result = new updateResourceJobManager_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25737,7 +25842,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteBatchQueue_result result = new deleteBatchQueue_result();
+            updateResourceJobManager_result result = new updateResourceJobManager_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25769,25 +25874,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteBatchQueue_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteBatchQueue(args.computeResourceId, args.queueName,resultHandler);
+      public void start(I iface, updateResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateResourceJobManager(args.resourceJobManagerId, args.updatedResourceJobManager,resultHandler);
       }
     }
 
-    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, java.lang.String> {
-      public registerGatewayResourceProfile() {
-        super("registerGatewayResourceProfile");
+    public static class getResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getResourceJobManager_args, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> {
+      public getResourceJobManager() {
+        super("getResourceJobManager");
       }
 
-      public registerGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new registerGatewayResourceProfile_args();
+      public getResourceJobManager_args getEmptyArgsInstance() {
+        return new getResourceJobManager_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<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> 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) {
-            registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager o) {
+            getResourceJobManager_result result = new getResourceJobManager_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25802,7 +25907,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
+            getResourceJobManager_result result = new getResourceJobManager_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25834,26 +25939,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerGatewayResourceProfile(args.gatewayResourceProfile,resultHandler);
+      public void start(I iface, getResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> resultHandler) throws org.apache.thrift.TException {
+        iface.getResourceJobManager(args.resourceJobManagerId,resultHandler);
       }
     }
 
-    public static class getGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayResourceProfile_args, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> {
-      public getGatewayResourceProfile() {
-        super("getGatewayResourceProfile");
+    public static class deleteResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteResourceJobManager_args, java.lang.Boolean> {
+      public deleteResourceJobManager() {
+        super("deleteResourceJobManager");
       }
 
-      public getGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new getGatewayResourceProfile_args();
+      public deleteResourceJobManager_args getEmptyArgsInstance() {
+        return new deleteResourceJobManager_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> 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<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile o) {
-            getGatewayResourceProfile_result result = new getGatewayResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteResourceJobManager_result result = new deleteResourceJobManager_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) {
@@ -25867,7 +25973,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGatewayResourceProfile_result result = new getGatewayResourceProfile_result();
+            deleteResourceJobManager_result result = new deleteResourceJobManager_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25899,25 +26005,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getGatewayResourceProfile(args.gatewayID,resultHandler);
+      public void start(I iface, deleteResourceJobManager_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteResourceJobManager(args.resourceJobManagerId,resultHandler);
       }
     }
 
-    public static class updateGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayResourceProfile_args, java.lang.Boolean> {
-      public updateGatewayResourceProfile() {
-        super("updateGatewayResourceProfile");
+    public static class deleteBatchQueue<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteBatchQueue_args, java.lang.Boolean> {
+      public deleteBatchQueue() {
+        super("deleteBatchQueue");
       }
 
-      public updateGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new updateGatewayResourceProfile_args();
+      public deleteBatchQueue_args getEmptyArgsInstance() {
+        return new deleteBatchQueue_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateGatewayResourceProfile_result result = new updateGatewayResourceProfile_result();
+            deleteBatchQueue_result result = new deleteBatchQueue_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -25933,7 +26039,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGatewayResourceProfile_result result = new updateGatewayResourceProfile_result();
+            deleteBatchQueue_result result = new deleteBatchQueue_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25965,27 +26071,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGatewayResourceProfile(args.gatewayID, args.gatewayResourceProfile,resultHandler);
+      public void start(I iface, deleteBatchQueue_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteBatchQueue(args.computeResourceId, args.queueName,resultHandler);
       }
     }
 
-    public static class deleteGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayResourceProfile_args, java.lang.Boolean> {
-      public deleteGatewayResourceProfile() {
-        super("deleteGatewayResourceProfile");
+    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, java.lang.String> {
+      public registerGatewayResourceProfile() {
+        super("registerGatewayResourceProfile");
       }
 
-      public deleteGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new deleteGatewayResourceProfile_args();
+      public registerGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new registerGatewayResourceProfile_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteGatewayResourceProfile_result result = new deleteGatewayResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_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) {
@@ -25999,7 +26104,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteGatewayResourceProfile_result result = new deleteGatewayResourceProfile_result();
+            registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26031,27 +26136,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteGatewayResourceProfile(args.gatewayID,resultHandler);
+      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerGatewayResourceProfile(args.gatewayResourceProfile,resultHandler);
       }
     }
 
-    public static class addGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public addGatewayComputeResourcePreference() {
-        super("addGatewayComputeResourcePreference");
+    public static class getGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayResourceProfile_args, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> {
+      public getGatewayResourceProfile() {
+        super("getGatewayResourceProfile");
       }
 
-      public addGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new addGatewayComputeResourcePreference_args();
+      public getGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new getGatewayResourceProfile_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.appcatalog.gatewayprofile.GatewayResourceProfile> 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) {
-            addGatewayComputeResourcePreference_result result = new addGatewayComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile o) {
+            getGatewayResourceProfile_result result = new getGatewayResourceProfile_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) {
@@ -26065,7 +26169,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addGatewayComputeResourcePreference_result result = new addGatewayComputeResourcePreference_result();
+            getGatewayResourceProfile_result result = new getGatewayResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26097,25 +26201,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
+      public void start(I iface, getGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getGatewayResourceProfile(args.gatewayID,resultHandler);
       }
     }
 
-    public static class addGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayStoragePreference_args, java.lang.Boolean> {
-      public addGatewayStoragePreference() {
-        super("addGatewayStoragePreference");
+    public static class updateGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayResourceProfile_args, java.lang.Boolean> {
+      public updateGatewayResourceProfile() {
+        super("updateGatewayResourceProfile");
       }
 
-      public addGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new addGatewayStoragePreference_args();
+      public updateGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new updateGatewayResourceProfile_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            addGatewayStoragePreference_result result = new addGatewayStoragePreference_result();
+            updateGatewayResourceProfile_result result = new updateGatewayResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26131,7 +26235,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addGatewayStoragePreference_result result = new addGatewayStoragePreference_result();
+            updateGatewayResourceProfile_result result = new updateGatewayResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26163,26 +26267,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addGatewayStoragePreference(args.gatewayID, args.storageResourceId, args.storagePreference,resultHandler);
+      public void start(I iface, updateGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGatewayResourceProfile(args.gatewayID, args.gatewayResourceProfile,resultHandler);
       }
     }
 
-    public static class getGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayComputeResourcePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> {
-      public getGatewayComputeResourcePreference() {
-        super("getGatewayComputeResourcePreference");
+    public static class deleteGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayResourceProfile_args, java.lang.Boolean> {
+      public deleteGatewayResourceProfile() {
+        super("deleteGatewayResourceProfile");
       }
 
-      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGatewayComputeResourcePreference_args();
+      public deleteGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new deleteGatewayResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> 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<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference o) {
-            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteGatewayResourceProfile_result result = new deleteGatewayResourceProfile_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) {
@@ -26196,7 +26301,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
+            deleteGatewayResourceProfile_result result = new deleteGatewayResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26228,26 +26333,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId,resultHandler);
+      public void start(I iface, deleteGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteGatewayResourceProfile(args.gatewayID,resultHandler);
       }
     }
 
-    public static class getGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayStoragePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> {
-      public getGatewayStoragePreference() {
-        super("getGatewayStoragePreference");
+    public static class addGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public addGatewayComputeResourcePreference() {
+        super("addGatewayComputeResourcePreference");
       }
 
-      public getGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new getGatewayStoragePreference_args();
+      public addGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new addGatewayComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> 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<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference o) {
-            getGatewayStoragePreference_result result = new getGatewayStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addGatewayComputeResourcePreference_result result = new addGatewayComputeResourcePreference_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) {
@@ -26261,7 +26367,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGatewayStoragePreference_result result = new getGatewayStoragePreference_result();
+            addGatewayComputeResourcePreference_result result = new addGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26293,26 +26399,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getGatewayStoragePreference(args.gatewayID, args.storageResourceId,resultHandler);
+      public void start(I iface, addGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
       }
     }
 
-    public static class getAllGatewayComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> {
-      public getAllGatewayComputeResourcePreferences() {
-        super("getAllGatewayComputeResourcePreferences");
+    public static class addGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayStoragePreference_args, java.lang.Boolean> {
+      public addGatewayStoragePreference() {
+        super("addGatewayStoragePreference");
       }
 
-      public getAllGatewayComputeResourcePreferences_args getEmptyArgsInstance() {
-        return new getAllGatewayComputeResourcePreferences_args();
+      public addGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new addGatewayStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> 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.appcatalog.gatewayprofile.ComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> o) {
-            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addGatewayStoragePreference_result result = new addGatewayStoragePreference_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) {
@@ -26326,7 +26433,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
+            addGatewayStoragePreference_result result = new addGatewayStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26358,25 +26465,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllGatewayComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllGatewayComputeResourcePreferences(args.gatewayID,resultHandler);
+      public void start(I iface, addGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addGatewayStoragePreference(args.gatewayID, args.storageResourceId, args.storagePreference,resultHandler);
       }
     }
 
-    public static class getAllGatewayStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> {
-      public getAllGatewayStoragePreferences() {
-        super("getAllGatewayStoragePreferences");
+    public static class getGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayComputeResourcePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> {
+      public getGatewayComputeResourcePreference() {
+        super("getGatewayComputeResourcePreference");
       }
 
-      public getAllGatewayStoragePreferences_args getEmptyArgsInstance() {
-        return new getAllGatewayStoragePreferences_args();
+      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGatewayComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> 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.appcatalog.gatewayprofile.StoragePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> o) {
-            getAllGatewayStoragePreferences_result result = new getAllGatewayStoragePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference o) {
+            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26391,7 +26498,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllGatewayStoragePreferences_result result = new getAllGatewayStoragePreferences_result();
+            getGatewayComputeResourcePreference_result result = new getGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26423,25 +26530,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllGatewayStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllGatewayStoragePreferences(args.gatewayID,resultHandler);
+      public void start(I iface, getGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId,resultHandler);
       }
     }
 
-    public static class getAllGatewayResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> {
-      public getAllGatewayResourceProfiles() {
-        super("getAllGatewayResourceProfiles");
+    public static class getGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayStoragePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> {
+      public getGatewayStoragePreference() {
+        super("getGatewayStoragePreference");
       }
 
-      public getAllGatewayResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllGatewayResourceProfiles_args();
+      public getGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new getGatewayStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> 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.appcatalog.gatewayprofile.GatewayResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> o) {
-            getAllGatewayResourceProfiles_result result = new getAllGatewayResourceProfiles_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference o) {
+            getGatewayStoragePreference_result result = new getGatewayStoragePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26456,7 +26563,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllGatewayResourceProfiles_result result = new getAllGatewayResourceProfiles_result();
+            getGatewayStoragePreference_result result = new getGatewayStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26488,27 +26595,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllGatewayResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllGatewayResourceProfiles(resultHandler);
+      public void start(I iface, getGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getGatewayStoragePreference(args.gatewayID, args.storageResourceId,resultHandler);
       }
     }
 
-    public static class updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public updateGatewayComputeResourcePreference() {
-        super("updateGatewayComputeResourcePreference");
+    public static class getAllGatewayComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> {
+      public getAllGatewayComputeResourcePreferences() {
+        super("getAllGatewayComputeResourcePreferences");
       }
 
-      public updateGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateGatewayComputeResourcePreference_args();
+      public getAllGatewayComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllGatewayComputeResourcePreferences_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<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> 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) {
-            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> o) {
+            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_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) {
@@ -26522,7 +26628,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
+            getAllGatewayComputeResourcePreferences_result result = new getAllGatewayComputeResourcePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26554,27 +26660,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
+      public void start(I iface, getAllGatewayComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllGatewayComputeResourcePreferences(args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayStoragePreference_args, java.lang.Boolean> {
-      public updateGatewayStoragePreference() {
-        super("updateGatewayStoragePreference");
+    public static class getAllGatewayStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> {
+      public getAllGatewayStoragePreferences() {
+        super("getAllGatewayStoragePreferences");
       }
 
-      public updateGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new updateGatewayStoragePreference_args();
+      public getAllGatewayStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllGatewayStoragePreferences_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<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> 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) {
-            updateGatewayStoragePreference_result result = new updateGatewayStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> o) {
+            getAllGatewayStoragePreferences_result result = new getAllGatewayStoragePreferences_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) {
@@ -26588,7 +26693,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGatewayStoragePreference_result result = new updateGatewayStoragePreference_result();
+            getAllGatewayStoragePreferences_result result = new getAllGatewayStoragePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26620,27 +26725,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGatewayStoragePreference(args.gatewayID, args.storageId, args.storagePreference,resultHandler);
+      public void start(I iface, getAllGatewayStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllGatewayStoragePreferences(args.gatewayID,resultHandler);
       }
     }
 
-    public static class deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public deleteGatewayComputeResourcePreference() {
-        super("deleteGatewayComputeResourcePreference");
+    public static class getAllGatewayResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewayResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> {
+      public getAllGatewayResourceProfiles() {
+        super("getAllGatewayResourceProfiles");
       }
 
-      public deleteGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new deleteGatewayComputeResourcePreference_args();
+      public getAllGatewayResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllGatewayResourceProfiles_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<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> 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) {
-            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> o) {
+            getAllGatewayResourceProfiles_result result = new getAllGatewayResourceProfiles_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) {
@@ -26654,7 +26758,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
+            getAllGatewayResourceProfiles_result result = new getAllGatewayResourceProfiles_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26686,25 +26790,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId,resultHandler);
+      public void start(I iface, getAllGatewayResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllGatewayResourceProfiles(resultHandler);
       }
     }
 
-    public static class deleteGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayStoragePreference_args, java.lang.Boolean> {
-      public deleteGatewayStoragePreference() {
-        super("deleteGatewayStoragePreference");
+    public static class updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public updateGatewayComputeResourcePreference() {
+        super("updateGatewayComputeResourcePreference");
       }
 
-      public deleteGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new deleteGatewayStoragePreference_args();
+      public updateGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new updateGatewayComputeResourcePreference_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteGatewayStoragePreference_result result = new deleteGatewayStoragePreference_result();
+            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26720,72 +26824,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteGatewayStoragePreference_result result = new deleteGatewayStoragePreference_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, deleteGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteGatewayStoragePreference(args.gatewayID, args.storageId,resultHandler);
-      }
-    }
-
-    public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
-      public registerUserResourceProfile() {
-        super("registerUserResourceProfile");
-      }
-
-      public registerUserResourceProfile_args getEmptyArgsInstance() {
-        return new registerUserResourceProfile_args();
-      }
-
-      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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerUserResourceProfile_result result = new registerUserResourceProfile_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;
-            registerUserResourceProfile_result result = new registerUserResourceProfile_result();
+            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26817,26 +26856,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerUserResourceProfile(args.userResourceProfile,resultHandler);
+      public void start(I iface, updateGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId, args.computeResourcePreference,resultHandler);
       }
     }
 
-    public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
-      public getUserResourceProfile() {
-        super("getUserResourceProfile");
+    public static class updateGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayStoragePreference_args, java.lang.Boolean> {
+      public updateGatewayStoragePreference() {
+        super("updateGatewayStoragePreference");
       }
 
-      public getUserResourceProfile_args getEmptyArgsInstance() {
-        return new getUserResourceProfile_args();
+      public updateGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new updateGatewayStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> 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<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
-            getUserResourceProfile_result result = new getUserResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateGatewayStoragePreference_result result = new updateGatewayStoragePreference_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) {
@@ -26850,7 +26890,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserResourceProfile_result result = new getUserResourceProfile_result();
+            updateGatewayStoragePreference_result result = new updateGatewayStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26882,25 +26922,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserResourceProfile(args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, updateGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGatewayStoragePreference(args.gatewayID, args.storageId, args.storagePreference,resultHandler);
       }
     }
 
-    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
-      public updateUserResourceProfile() {
-        super("updateUserResourceProfile");
+    public static class deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public deleteGatewayComputeResourcePreference() {
+        super("deleteGatewayComputeResourcePreference");
       }
 
-      public updateUserResourceProfile_args getEmptyArgsInstance() {
-        return new updateUserResourceProfile_args();
+      public deleteGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayComputeResourcePreference_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26916,7 +26956,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -26948,25 +26988,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserResourceProfile(args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
+      public void start(I iface, deleteGatewayComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteGatewayComputeResourcePreference(args.gatewayID, args.computeResourceId,resultHandler);
       }
     }
 
-    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
-      public deleteUserResourceProfile() {
-        super("deleteUserResourceProfile");
+    public static class deleteGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayStoragePreference_args, java.lang.Boolean> {
+      public deleteGatewayStoragePreference() {
+        super("deleteGatewayStoragePreference");
       }
 
-      public deleteUserResourceProfile_args getEmptyArgsInstance() {
-        return new deleteUserResourceProfile_args();
+      public deleteGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayStoragePreference_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+            deleteGatewayStoragePreference_result result = new deleteGatewayStoragePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26982,7 +27022,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+            deleteGatewayStoragePreference_result result = new deleteGatewayStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27014,25 +27054,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserResourceProfile(args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, deleteGatewayStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteGatewayStoragePreference(args.gatewayID, args.storageId,resultHandler);
       }
     }
 
-    public static class addUser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUser_args, java.lang.String> {
-      public addUser() {
-        super("addUser");
+    public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
+      public registerUserResourceProfile() {
+        super("registerUserResourceProfile");
       }
 
-      public addUser_args getEmptyArgsInstance() {
-        return new addUser_args();
+      public registerUserResourceProfile_args getEmptyArgsInstance() {
+        return new registerUserResourceProfile_args();
       }
 
       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.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            addUser_result result = new addUser_result();
+            registerUserResourceProfile_result result = new registerUserResourceProfile_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27047,15 +27087,11 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUser_result result = new addUser_result();
+            registerUserResourceProfile_result result = new registerUserResourceProfile_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.airavata.model.error.DuplicateEntryException) {
-              result.dee = (org.apache.airavata.model.error.DuplicateEntryException) e;
-              result.setDeeIsSet(true);
-              msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
               _LOGGER.error("TTransportException inside handler", e);
               fb.close();
@@ -27083,27 +27119,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addUser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addUser(args.userProfile,resultHandler);
+      public void start(I iface, registerUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerUserResourceProfile(args.userResourceProfile,resultHandler);
       }
     }
 
-    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
-      public addUserComputeResourcePreference() {
-        super("addUserComputeResourcePreference");
+    public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
+      public getUserResourceProfile() {
+        super("getUserResourceProfile");
       }
 
-      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new addUserComputeResourcePreference_args();
+      public getUserResourceProfile_args getEmptyArgsInstance() {
+        return new getUserResourceProfile_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.appcatalog.userresourceprofile.UserResourceProfile> 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) {
-            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
+            getUserResourceProfile_result result = new getUserResourceProfile_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) {
@@ -27117,7 +27152,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+            getUserResourceProfile_result result = new getUserResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27149,25 +27184,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addUserComputeResourcePreference(args.userId, args.gatewayID, args.computeResourceId, args.userComputeResourcePreference,resultHandler);
+      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserResourceProfile(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
-      public addUserStoragePreference() {
-        super("addUserStoragePreference");
+    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
+      public updateUserResourceProfile() {
+        super("updateUserResourceProfile");
       }
 
-      public addUserStoragePreference_args getEmptyArgsInstance() {
-        return new addUserStoragePreference_args();
+      public updateUserResourceProfile_args getEmptyArgsInstance() {
+        return new updateUserResourceProfile_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            addUserStoragePreference_result result = new addUserStoragePreference_result();
+            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -27183,7 +27218,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUserStoragePreference_result result = new addUserStoragePreference_result();
+            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27215,26 +27250,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
+      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserResourceProfile(args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
       }
     }
 
-    public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
-      public getUserComputeResourcePreference() {
-        super("getUserComputeResourcePreference");
+    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
+      public deleteUserResourceProfile() {
+        super("deleteUserResourceProfile");
       }
 
-      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getUserComputeResourcePreference_args();
+      public deleteUserResourceProfile_args getEmptyArgsInstance() {
+        return new deleteUserResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
-            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserResourceProfile_result result = new deleteUserResourceProfile_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) {
@@ -27248,7 +27284,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27280,25 +27316,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserResourceProfile(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
-      public getUserStoragePreference() {
-        super("getUserStoragePreference");
+    public static class addUser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUser_args, java.lang.String> {
+      public addUser() {
+        super("addUser");
       }
 
-      public getUserStoragePreference_args getEmptyArgsInstance() {
-        return new getUserStoragePreference_args();
+      public addUser_args getEmptyArgsInstance() {
+        return new addUser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> 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.appcatalog.userresourceprofile.UserStoragePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
-            getUserStoragePreference_result result = new getUserStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addUser_result result = new addUser_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27313,11 +27349,15 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserStoragePreference_result result = new getUserStoragePreference_result();
+            addUser_result result = new addUser_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.airavata.model.error.DuplicateEntryException) {
+              result.dee = (org.apache.airavata.model.error.DuplicateEntryException) e;
+              result.setDeeIsSet(true);
+              msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
               _LOGGER.error("TTransportException inside handler", e);
               fb.close();
@@ -27345,26 +27385,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
+      public void start(I iface, addUser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addUser(args.userProfile,resultHandler);
       }
     }
 
-    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
-      public getAllUserComputeResourcePreferences() {
-        super("getAllUserComputeResourcePreferences");
+    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
+      public addUserComputeResourcePreference() {
+        super("addUserComputeResourcePreference");
       }
 
-      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
-        return new getAllUserComputeResourcePreferences_args();
+      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new addUserComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> 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.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
-            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_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) {
@@ -27378,7 +27419,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27410,26 +27451,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserComputeResourcePreferences(args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addUserComputeResourcePreference(args.userId, args.gatewayID, args.computeResourceId, args.userComputeResourcePreference,resultHandler);
       }
     }
 
-    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
-      public getAllUserStoragePreferences() {
-        super("getAllUserStoragePreferences");
+    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
+      public addUserStoragePreference() {
+        super("addUserStoragePreference");
       }
 
-      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
-        return new getAllUserStoragePreferences_args();
+      public addUserStoragePreference_args getEmptyArgsInstance() {
+        return new addUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> 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.appcatalog.userresourceprofile.UserStoragePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
-            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addUserStoragePreference_result result = new addUserStoragePreference_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) {
@@ -27443,7 +27485,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+            addUserStoragePreference_result result = new addUserStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27475,25 +27517,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserStoragePreferences(args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
       }
     }
 
-    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
-      public getAllUserResourceProfiles() {
-        super("getAllUserResourceProfiles");
+    public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
+      public getUserComputeResourcePreference() {
+        super("getUserComputeResourcePreference");
       }
 
-      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllUserResourceProfiles_args();
+      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getUserComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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.appcatalog.userresourceprofile.UserResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
-            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
+            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27508,7 +27550,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27540,27 +27582,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserResourceProfiles(resultHandler);
+      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
       }
     }
 
-    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
-      public updateUserComputeResourcePreference() {
-        super("updateUserComputeResourcePreference");
+    public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
+      public getUserStoragePreference() {
+        super("getUserStoragePreference");
       }
 
-      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateUserComputeResourcePreference_args();
+      public getUserStoragePreference_args getEmptyArgsInstance() {
+        return new getUserStoragePreference_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.appcatalog.userresourceprofile.UserStoragePreference> 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) {
-            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
+            getUserStoragePreference_result result = new getUserStoragePreference_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) {
@@ -27574,7 +27615,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+            getUserStoragePreference_result result = new getUserStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27606,27 +27647,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
+      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
       }
     }
 
-    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
-      public updateUserStoragePreference() {
-        super("updateUserStoragePreference");
+    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
+      public getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
       }
 
-      public updateUserStoragePreference_args getEmptyArgsInstance() {
-        return new updateUserStoragePreference_args();
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_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<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> 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) {
-            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_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) {
@@ -27640,7 +27680,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27672,27 +27712,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserStoragePreference(args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
+      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserComputeResourcePreferences(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
-      public deleteUserComputeResourcePreference() {
-        super("deleteUserComputeResourcePreference");
+    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
+      public getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
       }
 
-      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new deleteUserComputeResourcePreference_args();
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_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<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> 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) {
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
+            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_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) {
@@ -27706,7 +27745,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27738,25 +27777,90 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserStoragePreferences(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
-      public deleteUserStoragePreference() {
-        super("deleteUserStoragePreference");
+    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
+      public getAllUserResourceProfiles() {
+        super("getAllUserResourceProfiles");
       }
 
-      public deleteUserStoragePreference_args getEmptyArgsInstance() {
-        return new deleteUserStoragePreference_args();
+      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllUserResourceProfiles_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> 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.appcatalog.userresourceprofile.UserResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
+            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_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;
+            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_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, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserResourceProfiles(resultHandler);
+      }
+    }
+
+    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
+      public updateUserComputeResourcePreference() {
+        super("updateUserComputeResourcePreference");
+      }
+
+      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new updateUserComputeResourcePreference_args();
       }
 
       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.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -27772,7 +27876,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27804,26 +27908,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserStoragePreference(args.userId, args.gatewayID, args.userStorageId,resultHandler);
+      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
       }
     }
 
-    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
-      public getLatestQueueStatuses() {
-        super("getLatestQueueStatuses");
+    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
+      public updateUserStoragePreference() {
+        super("updateUserStoragePreference");
       }
 
-      public getLatestQueueStatuses_args getEmptyArgsInstance() {
-        return new getLatestQueueStatuses_args();
+      public updateUserStoragePreference_args getEmptyArgsInstance() {
+        return new updateUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> 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.status.QueueStatusModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
-            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateUserStoragePreference_result result = new updateUserStoragePreference_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) {
@@ -27837,7 +27942,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27869,25 +27974,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getLatestQueueStatuses(resultHandler);
+      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserStoragePreference(args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
       }
     }
 
-    public static class registerQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerQueueStatuses_args, Void> {
-      public registerQueueStatuses() {
-        super("registerQueueStatuses");
+    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
+      public deleteUserComputeResourcePreference() {
+        super("deleteUserComputeResourcePreference");
       }
 
-      public registerQueueStatuses_args getEmptyArgsInstance() {
-        return new registerQueueStatuses_args();
+      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteUserComputeResourcePreference_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.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<Void>() { 
-          public void onComplete(Void o) {
-            registerQueueStatuses_result result = new registerQueueStatuses_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_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) {
@@ -27901,7 +28008,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerQueueStatuses_result result = new registerQueueStatuses_result();
+            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27933,26 +28040,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.registerQueueStatuses(args.queueStatuses,resultHandler);
+      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
       }
     }
 
-    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
-      public getAllWorkflows() {
-        super("getAllWorkflows");
+    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
       }
 
-      public getAllWorkflows_args getEmptyArgsInstance() {
-        return new getAllWorkflows_args();
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_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.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<java.lang.String>>() { 
-          public void onComplete(java.util.List<java.lang.String> o) {
-            getAllWorkflows_result result = new getAllWorkflows_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserStoragePreference_result result = new deleteUserStoragePreference_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) {
@@ -27966,7 +28074,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllWorkflows_result result = new getAllWorkflows_result();
+            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -27998,25 +28106,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllWorkflows(args.gatewayId,resultHandler);
+      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserStoragePreference(args.userId, args.gatewayID, args.userStorageId,resultHandler);
       }
     }
 
-    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
-      public getWorkflow() {
-        super("getWorkflow");
+    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
+      public getLatestQueueStatuses() {
+        super("getLatestQueueStatuses");
       }
 
-      public getWorkflow_args getEmptyArgsInstance() {
-        return new getWorkflow_args();
+      public getLatestQueueStatuses_args getEmptyArgsInstance() {
+        return new getLatestQueueStatuses_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> 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.status.QueueStatusModel>> 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.WorkflowModel>() { 
-          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
-            getWorkflow_result result = new getWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
+            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -28031,7 +28139,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getWorkflow_result result = new getWorkflow_result();
+            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28063,25 +28171,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getWorkflow(args.workflowTemplateId,resultHandler);
+      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getLatestQueueStatuses(resultHandler);
       }
     }
 
-    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
-      public deleteWorkflow() {
-        super("deleteWorkflow");
+    public static class registerQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerQueueStatuses_args, Void> {
+      public registerQueueStatuses() {
+        super("registerQueueStatuses");
       }
 
-      public deleteWorkflow_args getEmptyArgsInstance() {
-        return new deleteWorkflow_args();
+      public registerQueueStatuses_args getEmptyArgsInstance() {
+        return new registerQueueStatuses_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) {
-            deleteWorkflow_result result = new deleteWorkflow_result();
+            registerQueueStatuses_result result = new registerQueueStatuses_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28095,7 +28203,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteWorkflow_result result = new deleteWorkflow_result();
+            registerQueueStatuses_result result = new registerQueueStatuses_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28127,25 +28235,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteWorkflow(args.workflowTemplateId,resultHandler);
+      public void start(I iface, registerQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.registerQueueStatuses(args.queueStatuses,resultHandler);
       }
     }
 
-    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
-      public registerWorkflow() {
-        super("registerWorkflow");
+    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
+      public getAllWorkflows() {
+        super("getAllWorkflows");
       }
 
-      public registerWorkflow_args getEmptyArgsInstance() {
-        return new registerWorkflow_args();
+      public getAllWorkflows_args getEmptyArgsInstance() {
+        return new getAllWorkflows_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<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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerWorkflow_result result = new registerWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAllWorkflows_result result = new getAllWorkflows_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -28160,7 +28268,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerWorkflow_result result = new registerWorkflow_result();
+            getAllWorkflows_result result = new getAllWorkflows_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28192,25 +28300,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerWorkflow(args.gatewayId, args.workflow,resultHandler);
+      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllWorkflows(args.gatewayId,resultHandler);
       }
     }
 
-    public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
-      public updateWorkflow() {
-        super("updateWorkflow");
+    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
+      public getWorkflow() {
+        super("getWorkflow");
       }
 
-      public updateWorkflow_args getEmptyArgsInstance() {
-        return new updateWorkflow_args();
+      public getWorkflow_args getEmptyArgsInstance() {
+        return new getWorkflow_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<org.apache.airavata.model.WorkflowModel> 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) {
-            updateWorkflow_result result = new updateWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel>() { 
+          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
+            getWorkflow_result result = new getWorkflow_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28224,7 +28333,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateWorkflow_result result = new updateWorkflow_result();
+            getWorkflow_result result = new getWorkflow_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28256,26 +28365,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateWorkflow(args.workflowTemplateId, args.workflow,resultHandler);
+      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getWorkflow(args.workflowTemplateId,resultHandler);
       }
     }
 
-    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, java.lang.String> {
-      public getWorkflowTemplateId() {
-        super("getWorkflowTemplateId");
+    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
+      public deleteWorkflow() {
+        super("deleteWorkflow");
       }
 
-      public getWorkflowTemplateId_args getEmptyArgsInstance() {
-        return new getWorkflowTemplateId_args();
+      public deleteWorkflow_args getEmptyArgsInstance() {
+        return new deleteWorkflow_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) {
-            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            deleteWorkflow_result result = new deleteWorkflow_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28289,7 +28397,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
+            deleteWorkflow_result result = new deleteWorkflow_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28321,27 +28429,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getWorkflowTemplateId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.getWorkflowTemplateId(args.workflowName,resultHandler);
+      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteWorkflow(args.workflowTemplateId,resultHandler);
       }
     }
 
-    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
-      public isWorkflowExistWithName() {
-        super("isWorkflowExistWithName");
+    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
+      public registerWorkflow() {
+        super("registerWorkflow");
       }
 
-      public isWorkflowExistWithName_args getEmptyArgsInstance() {
-        return new isWorkflowExistWithName_args();
+      public registerWorkflow_args getEmptyArgsInstance() {
+        return new registerWorkflow_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<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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerWorkflow_result result = new registerWorkflow_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) {
@@ -28355,7 +28462,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
+            registerWorkflow_result result = new registerWorkflow_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28387,26 +28494,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isWorkflowExistWithName(args.workflowName,resultHandler);
+      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerWorkflow(args.gatewayId, args.workflow,resultHandler);
       }
     }
 
-    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
-      public registerDataProduct() {
-        super("registerDataProduct");
+    public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
+      public updateWorkflow() {
+        super("updateWorkflow");
       }
 
-      public registerDataProduct_args getEmptyArgsInstance() {
-        return new registerDataProduct_args();
+      public updateWorkflow_args getEmptyArgsInstance() {
+        return new updateWorkflow_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) {
-            registerDataProduct_result result = new registerDataProduct_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateWorkflow_result result = new updateWorkflow_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28420,7 +28526,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerDataProduct_result result = new registerDataProduct_result();
+            updateWorkflow_result result = new updateWorkflow_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -28452,25 +28558,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerDataProduct(args.dataProductModel,resultHandler);
+      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateWorkflow(args.workflowTemplateId, args.workflow,resultHandler);
       }
     }
 
-    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-      public getDataProduct() {
-        super("getDataProduct");
+    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, java.lang.String> {
+      public getWorkflowTemplateId() {
+        super("getWorkflowTemplateId");
       }
 
-      public getDataProduct_args getEmptyArgsInstance() {
-        return new getDataProduct_args();
+      public getWorkflowTemplateId_args getEmptyArgsInstance() {
+        return new getWorkflowTemplateId_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> 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.data.replica.DataProductModel>() { 
-          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
-            getDataProduct_result result = new getDataProduct_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -28485,7 +28591,203 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getDataProduct_result result = new getDataProduct_result();
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_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, getWorkflowTemplateId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.getWorkflowTemplateId(args.workflowName,resultHandler);
+      }
+    }
+
+    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
+      public isWorkflowExistWithName() {
+        super("isWorkflowExistWithName");
+      }
+
+      public isWorkflowExistWithName_args getEmptyArgsInstance() {
+        return new isWorkflowExistWithName_args();
+      }
+
+      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.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            isWorkflowExistWithName_result result = new isWorkflowExistWithName_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) {
+              _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;
+            isWorkflowExistWithName_result result = new isWorkflowExistWithName_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, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isWorkflowExistWithName(args.workflowName,resultHandler);
+      }
+    }
+
+    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
+      public registerDataProduct() {
+        super("registerDataProduct");
+      }
+
+      public registerDataProduct_args getEmptyArgsInstance() {
+        return new registerDataProduct_args();
+      }
+
+      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.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerDataProduct_result result = new registerDataProduct_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;
+            registerDataProduct_result result = new registerDataProduct_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, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerDataProduct(args.dataProductModel,resultHandler);
+      }
+    }
+
+    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+      public getDataProduct() {
+        super("getDataProduct");
+      }
+
+      public getDataProduct_args getEmptyArgsInstance() {
+        return new getDataProduct_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> 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.data.replica.DataProductModel>() { 
+          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
+            getDataProduct_result result = new getDataProduct_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;
+            getDataProduct_result result = new getDataProduct_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -63244,7 +63546,1762 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addExperimentProcessOutputs_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addExperimentProcessOutputs_result(");
+      boolean first = true;
+
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        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 addExperimentProcessOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addExperimentProcessOutputs_resultStandardScheme getScheme() {
+        return new addExperimentProcessOutputs_resultStandardScheme();
+      }
+    }
+
+    private static class addExperimentProcessOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addExperimentProcessOutputs_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class addExperimentProcessOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addExperimentProcessOutputs_resultTupleScheme getScheme() {
+        return new addExperimentProcessOutputs_resultTupleScheme();
+      }
+    }
+
+    private static class addExperimentProcessOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addExperimentProcessOutputs_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, addExperimentProcessOutputs_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()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, addExperimentProcessOutputs_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);
+        if (incoming.get(0)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class addErrors_args implements org.apache.thrift.TBase<addErrors_args, addErrors_args._Fields>, java.io.Serializable, Cloneable, Comparable<addErrors_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addErrors_args");
+
+    private static final org.apache.thrift.protocol.TField ERROR_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorType", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField ERROR_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("errorModel", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    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)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addErrors_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addErrors_argsTupleSchemeFactory();
+
+    public java.lang.String errorType; // required
+    public org.apache.airavata.model.commons.ErrorModel errorModel; // 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 {
+      ERROR_TYPE((short)1, "errorType"),
+      ERROR_MODEL((short)2, "errorModel"),
+      ID((short)3, "id");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // ERROR_TYPE
+            return ERROR_TYPE;
+          case 2: // ERROR_MODEL
+            return ERROR_MODEL;
+          case 3: // ID
+            return ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    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.ERROR_TYPE, new org.apache.thrift.meta_data.FieldMetaData("errorType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.ERROR_MODEL, new org.apache.thrift.meta_data.FieldMetaData("errorModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class)));
+      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          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(addErrors_args.class, metaDataMap);
+    }
+
+    public addErrors_args() {
+    }
+
+    public addErrors_args(
+      java.lang.String errorType,
+      org.apache.airavata.model.commons.ErrorModel errorModel,
+      java.lang.String id)
+    {
+      this();
+      this.errorType = errorType;
+      this.errorModel = errorModel;
+      this.id = id;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public addErrors_args(addErrors_args other) {
+      if (other.isSetErrorType()) {
+        this.errorType = other.errorType;
+      }
+      if (other.isSetErrorModel()) {
+        this.errorModel = new org.apache.airavata.model.commons.ErrorModel(other.errorModel);
+      }
+      if (other.isSetId()) {
+        this.id = other.id;
+      }
+    }
+
+    public addErrors_args deepCopy() {
+      return new addErrors_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.errorType = null;
+      this.errorModel = null;
+      this.id = null;
+    }
+
+    public java.lang.String getErrorType() {
+      return this.errorType;
+    }
+
+    public addErrors_args setErrorType(java.lang.String errorType) {
+      this.errorType = errorType;
+      return this;
+    }
+
+    public void unsetErrorType() {
+      this.errorType = null;
+    }
+
+    /** Returns true if field errorType is set (has been assigned a value) and false otherwise */
+    public boolean isSetErrorType() {
+      return this.errorType != null;
+    }
+
+    public void setErrorTypeIsSet(boolean value) {
+      if (!value) {
+        this.errorType = null;
+      }
+    }
+
+    public org.apache.airavata.model.commons.ErrorModel getErrorModel() {
+      return this.errorModel;
+    }
+
+    public addErrors_args setErrorModel(org.apache.airavata.model.commons.ErrorModel errorModel) {
+      this.errorModel = errorModel;
+      return this;
+    }
+
+    public void unsetErrorModel() {
+      this.errorModel = null;
+    }
+
+    /** Returns true if field errorModel is set (has been assigned a value) and false otherwise */
+    public boolean isSetErrorModel() {
+      return this.errorModel != null;
+    }
+
+    public void setErrorModelIsSet(boolean value) {
+      if (!value) {
+        this.errorModel = null;
+      }
+    }
+
+    public java.lang.String getId() {
+      return this.id;
+    }
+
+    public addErrors_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 ERROR_TYPE:
+        if (value == null) {
+          unsetErrorType();
+        } else {
+          setErrorType((java.lang.String)value);
+        }
+        break;
+
+      case ERROR_MODEL:
+        if (value == null) {
+          unsetErrorModel();
+        } else {
+          setErrorModel((org.apache.airavata.model.commons.ErrorModel)value);
+        }
+        break;
+
+      case ID:
+        if (value == null) {
+          unsetId();
+        } else {
+          setId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case ERROR_TYPE:
+        return getErrorType();
+
+      case ERROR_MODEL:
+        return getErrorModel();
+
+      case ID:
+        return getId();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case ERROR_TYPE:
+        return isSetErrorType();
+      case ERROR_MODEL:
+        return isSetErrorModel();
+      case ID:
+        return isSetId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof addErrors_args)
+        return this.equals((addErrors_args)that);
+      return false;
+    }
+
+    public boolean equals(addErrors_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_errorType = true && this.isSetErrorType();
+      boolean that_present_errorType = true && that.isSetErrorType();
+      if (this_present_errorType || that_present_errorType) {
+        if (!(this_present_errorType && that_present_errorType))
+          return false;
+        if (!this.errorType.equals(that.errorType))
+          return false;
+      }
+
+      boolean this_present_errorModel = true && this.isSetErrorModel();
+      boolean that_present_errorModel = true && that.isSetErrorModel();
+      if (this_present_errorModel || that_present_errorModel) {
+        if (!(this_present_errorModel && that_present_errorModel))
+          return false;
+        if (!this.errorModel.equals(that.errorModel))
+          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))
+          return false;
+        if (!this.id.equals(that.id))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetErrorType()) ? 131071 : 524287);
+      if (isSetErrorType())
+        hashCode = hashCode * 8191 + errorType.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetErrorModel()) ? 131071 : 524287);
+      if (isSetErrorModel())
+        hashCode = hashCode * 8191 + errorModel.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetId()) ? 131071 : 524287);
+      if (isSetId())
+        hashCode = hashCode * 8191 + id.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(addErrors_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetErrorType()).compareTo(other.isSetErrorType());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetErrorType()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorType, other.errorType);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetErrorModel()).compareTo(other.isSetErrorModel());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetErrorModel()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorModel, other.errorModel);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addErrors_args(");
+      boolean first = true;
+
+      sb.append("errorType:");
+      if (this.errorType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errorType);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("errorModel:");
+      if (this.errorModel == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errorModel);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("id:");
+      if (this.id == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.id);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (errorType == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'errorType' was not present! Struct: " + toString());
+      }
+      if (errorModel == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'errorModel' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (errorModel != null) {
+        errorModel.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        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 addErrors_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addErrors_argsStandardScheme getScheme() {
+        return new addErrors_argsStandardScheme();
+      }
+    }
+
+    private static class addErrors_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addErrors_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addErrors_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // ERROR_TYPE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.errorType = iprot.readString();
+                struct.setErrorTypeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // ERROR_MODEL
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.errorModel = new org.apache.airavata.model.commons.ErrorModel();
+                struct.errorModel.read(iprot);
+                struct.setErrorModelIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.id = iprot.readString();
+                struct.setIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addErrors_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.errorType != null) {
+          oprot.writeFieldBegin(ERROR_TYPE_FIELD_DESC);
+          oprot.writeString(struct.errorType);
+          oprot.writeFieldEnd();
+        }
+        if (struct.errorModel != null) {
+          oprot.writeFieldBegin(ERROR_MODEL_FIELD_DESC);
+          struct.errorModel.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.id != null) {
+          oprot.writeFieldBegin(ID_FIELD_DESC);
+          oprot.writeString(struct.id);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class addErrors_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addErrors_argsTupleScheme getScheme() {
+        return new addErrors_argsTupleScheme();
+      }
+    }
+
+    private static class addErrors_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addErrors_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, addErrors_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        oprot.writeString(struct.errorType);
+        struct.errorModel.write(oprot);
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetId()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetId()) {
+          oprot.writeString(struct.id);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, addErrors_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.errorType = iprot.readString();
+        struct.setErrorTypeIsSet(true);
+        struct.errorModel = new org.apache.airavata.model.commons.ErrorModel();
+        struct.errorModel.read(iprot);
+        struct.setErrorModelIsSet(true);
+        java.util.BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.id = iprot.readString();
+          struct.setIdIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class addErrors_result implements org.apache.thrift.TBase<addErrors_result, addErrors_result._Fields>, java.io.Serializable, Cloneable, Comparable<addErrors_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addErrors_result");
+
+    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 addErrors_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addErrors_resultTupleSchemeFactory();
+
+    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 {
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    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.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(addErrors_result.class, metaDataMap);
+    }
+
+    public addErrors_result() {
+    }
+
+    public addErrors_result(
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public addErrors_result(addErrors_result other) {
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public addErrors_result deepCopy() {
+      return new addErrors_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.rse = null;
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public addErrors_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+      this.rse = rse;
+      return this;
+    }
+
+    public void unsetRse() {
+      this.rse = null;
+    }
+
+    /** Returns true if field rse is set (has been assigned a value) and false otherwise */
+    public boolean isSetRse() {
+      return this.rse != null;
+    }
+
+    public void setRseIsSet(boolean value) {
+      if (!value) {
+        this.rse = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case RSE:
+        if (value == null) {
+          unsetRse();
+        } else {
+          setRse((org.apache.airavata.registry.api.exception.RegistryServiceException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case RSE:
+        return getRse();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case RSE:
+        return isSetRse();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof addErrors_result)
+        return this.equals((addErrors_result)that);
+      return false;
+    }
+
+    public boolean equals(addErrors_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(addErrors_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addErrors_result(");
+      boolean first = true;
+
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        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 addErrors_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addErrors_resultStandardScheme getScheme() {
+        return new addErrors_resultStandardScheme();
+      }
+    }
+
+    private static class addErrors_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addErrors_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addErrors_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addErrors_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class addErrors_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addErrors_resultTupleScheme getScheme() {
+        return new addErrors_resultTupleScheme();
+      }
+    }
+
+    private static class addErrors_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addErrors_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, addErrors_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()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, addErrors_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);
+        if (incoming.get(0)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class addTaskStatus_args implements org.apache.thrift.TBase<addTaskStatus_args, addTaskStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<addTaskStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTaskStatus_args");
+
+    private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addTaskStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTaskStatus_argsTupleSchemeFactory();
+
+    public org.apache.airavata.model.status.TaskStatus taskStatus; // required
+    public java.lang.String taskId; // 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_STATUS((short)1, "taskStatus"),
+      TASK_ID((short)2, "taskId");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // TASK_STATUS
+            return TASK_STATUS;
+          case 2: // TASK_ID
+            return TASK_ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    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_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class)));
+      tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", 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(addTaskStatus_args.class, metaDataMap);
+    }
+
+    public addTaskStatus_args() {
+    }
+
+    public addTaskStatus_args(
+      org.apache.airavata.model.status.TaskStatus taskStatus,
+      java.lang.String taskId)
+    {
+      this();
+      this.taskStatus = taskStatus;
+      this.taskId = taskId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public addTaskStatus_args(addTaskStatus_args other) {
+      if (other.isSetTaskStatus()) {
+        this.taskStatus = new org.apache.airavata.model.status.TaskStatus(other.taskStatus);
+      }
+      if (other.isSetTaskId()) {
+        this.taskId = other.taskId;
+      }
+    }
+
+    public addTaskStatus_args deepCopy() {
+      return new addTaskStatus_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.taskStatus = null;
+      this.taskId = null;
+    }
+
+    public org.apache.airavata.model.status.TaskStatus getTaskStatus() {
+      return this.taskStatus;
+    }
+
+    public addTaskStatus_args setTaskStatus(org.apache.airavata.model.status.TaskStatus taskStatus) {
+      this.taskStatus = taskStatus;
+      return this;
+    }
+
+    public void unsetTaskStatus() {
+      this.taskStatus = null;
+    }
+
+    /** Returns true if field taskStatus is set (has been assigned a value) and false otherwise */
+    public boolean isSetTaskStatus() {
+      return this.taskStatus != null;
+    }
+
+    public void setTaskStatusIsSet(boolean value) {
+      if (!value) {
+        this.taskStatus = null;
+      }
+    }
+
+    public java.lang.String getTaskId() {
+      return this.taskId;
+    }
+
+    public addTaskStatus_args setTaskId(java.lang.String taskId) {
+      this.taskId = taskId;
+      return this;
+    }
+
+    public void unsetTaskId() {
+      this.taskId = null;
+    }
+
+    /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
+    public boolean isSetTaskId() {
+      return this.taskId != null;
+    }
+
+    public void setTaskIdIsSet(boolean value) {
+      if (!value) {
+        this.taskId = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case TASK_STATUS:
+        if (value == null) {
+          unsetTaskStatus();
+        } else {
+          setTaskStatus((org.apache.airavata.model.status.TaskStatus)value);
+        }
+        break;
+
+      case TASK_ID:
+        if (value == null) {
+          unsetTaskId();
+        } else {
+          setTaskId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case TASK_STATUS:
+        return getTaskStatus();
+
+      case TASK_ID:
+        return getTaskId();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case TASK_STATUS:
+        return isSetTaskStatus();
+      case TASK_ID:
+        return isSetTaskId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof addTaskStatus_args)
+        return this.equals((addTaskStatus_args)that);
+      return false;
+    }
+
+    public boolean equals(addTaskStatus_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_taskStatus = true && this.isSetTaskStatus();
+      boolean that_present_taskStatus = true && that.isSetTaskStatus();
+      if (this_present_taskStatus || that_present_taskStatus) {
+        if (!(this_present_taskStatus && that_present_taskStatus))
+          return false;
+        if (!this.taskStatus.equals(that.taskStatus))
+          return false;
+      }
+
+      boolean this_present_taskId = true && this.isSetTaskId();
+      boolean that_present_taskId = true && that.isSetTaskId();
+      if (this_present_taskId || that_present_taskId) {
+        if (!(this_present_taskId && that_present_taskId))
+          return false;
+        if (!this.taskId.equals(that.taskId))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetTaskStatus()) ? 131071 : 524287);
+      if (isSetTaskStatus())
+        hashCode = hashCode * 8191 + taskStatus.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetTaskId()) ? 131071 : 524287);
+      if (isSetTaskId())
+        hashCode = hashCode * 8191 + taskId.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(addTaskStatus_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetTaskStatus()).compareTo(other.isSetTaskStatus());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetTaskStatus()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskStatus, other.taskStatus);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetTaskId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTaskStatus_args(");
+      boolean first = true;
+
+      sb.append("taskStatus:");
+      if (this.taskStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.taskStatus);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("taskId:");
+      if (this.taskId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.taskId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (taskStatus == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskStatus' was not present! Struct: " + toString());
+      }
+      if (taskId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (taskStatus != null) {
+        taskStatus.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        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 addTaskStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTaskStatus_argsStandardScheme getScheme() {
+        return new addTaskStatus_argsStandardScheme();
+      }
+    }
+
+    private static class addTaskStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTaskStatus_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addTaskStatus_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // TASK_STATUS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
+                struct.taskStatus.read(iprot);
+                struct.setTaskStatusIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // TASK_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.taskId = iprot.readString();
+                struct.setTaskIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addTaskStatus_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.taskStatus != null) {
+          oprot.writeFieldBegin(TASK_STATUS_FIELD_DESC);
+          struct.taskStatus.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.taskId != null) {
+          oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
+          oprot.writeString(struct.taskId);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class addTaskStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTaskStatus_argsTupleScheme getScheme() {
+        return new addTaskStatus_argsTupleScheme();
+      }
+    }
+
+    private static class addTaskStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTaskStatus_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, addTaskStatus_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.taskStatus.write(oprot);
+        oprot.writeString(struct.taskId);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, addTaskStatus_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
+        struct.taskStatus.read(iprot);
+        struct.setTaskStatusIsSet(true);
+        struct.taskId = iprot.readString();
+        struct.setTaskIdIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class addTaskStatus_result implements org.apache.thrift.TBase<addTaskStatus_result, addTaskStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<addTaskStatus_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTaskStatus_result");
+
+    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 addTaskStatus_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTaskStatus_resultTupleSchemeFactory();
+
+    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 {
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    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.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(addTaskStatus_result.class, metaDataMap);
+    }
+
+    public addTaskStatus_result() {
+    }
+
+    public addTaskStatus_result(
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public addTaskStatus_result(addTaskStatus_result other) {
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public addTaskStatus_result deepCopy() {
+      return new addTaskStatus_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.rse = null;
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public addTaskStatus_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+      this.rse = rse;
+      return this;
+    }
+
+    public void unsetRse() {
+      this.rse = null;
+    }
+
+    /** Returns true if field rse is set (has been assigned a value) and false otherwise */
+    public boolean isSetRse() {
+      return this.rse != null;
+    }
+
+    public void setRseIsSet(boolean value) {
+      if (!value) {
+        this.rse = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case RSE:
+        if (value == null) {
+          unsetRse();
+        } else {
+          setRse((org.apache.airavata.registry.api.exception.RegistryServiceException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case RSE:
+        return getRse();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case RSE:
+        return isSetRse();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof addTaskStatus_result)
+        return this.equals((addTaskStatus_result)that);
+      return false;
+    }
+
+    public boolean equals(addTaskStatus_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(addTaskStatus_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addTaskStatus_result(");
       boolean first = true;
 
       sb.append("rse:");
@@ -63279,15 +65336,15 @@ public class RegistryService {
       }
     }
 
-    private static class addExperimentProcessOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addExperimentProcessOutputs_resultStandardScheme getScheme() {
-        return new addExperimentProcessOutputs_resultStandardScheme();
+    private static class addTaskStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTaskStatus_resultStandardScheme getScheme() {
+        return new addTaskStatus_resultStandardScheme();
       }
     }
 
-    private static class addExperimentProcessOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addExperimentProcessOutputs_result> {
+    private static class addTaskStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addTaskStatus_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addTaskStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -63317,7 +65374,7 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addTaskStatus_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -63332,16 +65389,16 @@ public class RegistryService {
 
     }
 
-    private static class addExperimentProcessOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addExperimentProcessOutputs_resultTupleScheme getScheme() {
-        return new addExperimentProcessOutputs_resultTupleScheme();
+    private static class addTaskStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addTaskStatus_resultTupleScheme getScheme() {
+        return new addTaskStatus_resultTupleScheme();
       }
     }
 
-    private static class addExperimentProcessOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addExperimentProcessOutputs_result> {
+    private static class addTaskStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addTaskStatus_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addTaskStatus_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()) {
@@ -63354,7 +65411,7 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addExperimentProcessOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addTaskStatus_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);
         if (incoming.get(0)) {
@@ -63370,25 +65427,22 @@ public class RegistryService {
     }
   }
 
-  public static class addErrors_args implements org.apache.thrift.TBase<addErrors_args, addErrors_args._Fields>, java.io.Serializable, Cloneable, Comparable<addErrors_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addErrors_args");
+  public static class addProcessStatus_args implements org.apache.thrift.TBase<addProcessStatus_args, addProcessStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<addProcessStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcessStatus_args");
 
-    private static final org.apache.thrift.protocol.TField ERROR_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorType", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField ERROR_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("errorModel", org.apache.thrift.protocol.TType.STRUCT, (short)2);
-    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)3);
+    private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatus", 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 addErrors_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addErrors_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcessStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcessStatus_argsTupleSchemeFactory();
 
-    public java.lang.String errorType; // required
-    public org.apache.airavata.model.commons.ErrorModel errorModel; // required
-    public java.lang.String id; // required
+    public org.apache.airavata.model.status.ProcessStatus processStatus; // 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 {
-      ERROR_TYPE((short)1, "errorType"),
-      ERROR_MODEL((short)2, "errorModel"),
-      ID((short)3, "id");
+      PROCESS_STATUS((short)1, "processStatus"),
+      PROCESS_ID((short)2, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -63403,12 +65457,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // ERROR_TYPE
-            return ERROR_TYPE;
-          case 2: // ERROR_MODEL
-            return ERROR_MODEL;
-          case 3: // ID
-            return ID;
+          case 1: // PROCESS_STATUS
+            return PROCESS_STATUS;
+          case 2: // PROCESS_ID
+            return PROCESS_ID;
           default:
             return null;
         }
@@ -63452,151 +65504,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.ERROR_TYPE, new org.apache.thrift.meta_data.FieldMetaData("errorType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ERROR_MODEL, new org.apache.thrift.meta_data.FieldMetaData("errorModel", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class)));
-      tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.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(addErrors_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcessStatus_args.class, metaDataMap);
     }
 
-    public addErrors_args() {
+    public addProcessStatus_args() {
     }
 
-    public addErrors_args(
-      java.lang.String errorType,
-      org.apache.airavata.model.commons.ErrorModel errorModel,
-      java.lang.String id)
+    public addProcessStatus_args(
+      org.apache.airavata.model.status.ProcessStatus processStatus,
+      java.lang.String processId)
     {
       this();
-      this.errorType = errorType;
-      this.errorModel = errorModel;
-      this.id = id;
+      this.processStatus = processStatus;
+      this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addErrors_args(addErrors_args other) {
-      if (other.isSetErrorType()) {
-        this.errorType = other.errorType;
-      }
-      if (other.isSetErrorModel()) {
-        this.errorModel = new org.apache.airavata.model.commons.ErrorModel(other.errorModel);
+    public addProcessStatus_args(addProcessStatus_args other) {
+      if (other.isSetProcessStatus()) {
+        this.processStatus = new org.apache.airavata.model.status.ProcessStatus(other.processStatus);
       }
-      if (other.isSetId()) {
-        this.id = other.id;
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
     }
 
-    public addErrors_args deepCopy() {
-      return new addErrors_args(this);
+    public addProcessStatus_args deepCopy() {
+      return new addProcessStatus_args(this);
     }
 
     @Override
     public void clear() {
-      this.errorType = null;
-      this.errorModel = null;
-      this.id = null;
-    }
-
-    public java.lang.String getErrorType() {
-      return this.errorType;
-    }
-
-    public addErrors_args setErrorType(java.lang.String errorType) {
-      this.errorType = errorType;
-      return this;
-    }
-
-    public void unsetErrorType() {
-      this.errorType = null;
-    }
-
-    /** Returns true if field errorType is set (has been assigned a value) and false otherwise */
-    public boolean isSetErrorType() {
-      return this.errorType != null;
-    }
-
-    public void setErrorTypeIsSet(boolean value) {
-      if (!value) {
-        this.errorType = null;
-      }
+      this.processStatus = null;
+      this.processId = null;
     }
 
-    public org.apache.airavata.model.commons.ErrorModel getErrorModel() {
-      return this.errorModel;
+    public org.apache.airavata.model.status.ProcessStatus getProcessStatus() {
+      return this.processStatus;
     }
 
-    public addErrors_args setErrorModel(org.apache.airavata.model.commons.ErrorModel errorModel) {
-      this.errorModel = errorModel;
+    public addProcessStatus_args setProcessStatus(org.apache.airavata.model.status.ProcessStatus processStatus) {
+      this.processStatus = processStatus;
       return this;
     }
 
-    public void unsetErrorModel() {
-      this.errorModel = null;
+    public void unsetProcessStatus() {
+      this.processStatus = null;
     }
 
-    /** Returns true if field errorModel is set (has been assigned a value) and false otherwise */
-    public boolean isSetErrorModel() {
-      return this.errorModel != null;
+    /** Returns true if field processStatus is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessStatus() {
+      return this.processStatus != null;
     }
 
-    public void setErrorModelIsSet(boolean value) {
+    public void setProcessStatusIsSet(boolean value) {
       if (!value) {
-        this.errorModel = null;
+        this.processStatus = null;
       }
     }
 
-    public java.lang.String getId() {
-      return this.id;
+    public java.lang.String getProcessId() {
+      return this.processId;
     }
 
-    public addErrors_args setId(java.lang.String id) {
-      this.id = id;
+    public addProcessStatus_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 ERROR_TYPE:
-        if (value == null) {
-          unsetErrorType();
-        } else {
-          setErrorType((java.lang.String)value);
-        }
-        break;
-
-      case ERROR_MODEL:
+      case PROCESS_STATUS:
         if (value == null) {
-          unsetErrorModel();
+          unsetProcessStatus();
         } else {
-          setErrorModel((org.apache.airavata.model.commons.ErrorModel)value);
+          setProcessStatus((org.apache.airavata.model.status.ProcessStatus)value);
         }
         break;
 
-      case ID:
+      case PROCESS_ID:
         if (value == null) {
-          unsetId();
+          unsetProcessId();
         } else {
-          setId((java.lang.String)value);
+          setProcessId((java.lang.String)value);
         }
         break;
 
@@ -63605,14 +65617,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case ERROR_TYPE:
-        return getErrorType();
-
-      case ERROR_MODEL:
-        return getErrorModel();
+      case PROCESS_STATUS:
+        return getProcessStatus();
 
-      case ID:
-        return getId();
+      case PROCESS_ID:
+        return getProcessId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -63625,12 +65634,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case ERROR_TYPE:
-        return isSetErrorType();
-      case ERROR_MODEL:
-        return isSetErrorModel();
-      case ID:
-        return isSetId();
+      case PROCESS_STATUS:
+        return isSetProcessStatus();
+      case PROCESS_ID:
+        return isSetProcessId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -63639,41 +65646,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addErrors_args)
-        return this.equals((addErrors_args)that);
+      if (that instanceof addProcessStatus_args)
+        return this.equals((addProcessStatus_args)that);
       return false;
     }
 
-    public boolean equals(addErrors_args that) {
+    public boolean equals(addProcessStatus_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_errorType = true && this.isSetErrorType();
-      boolean that_present_errorType = true && that.isSetErrorType();
-      if (this_present_errorType || that_present_errorType) {
-        if (!(this_present_errorType && that_present_errorType))
-          return false;
-        if (!this.errorType.equals(that.errorType))
-          return false;
-      }
-
-      boolean this_present_errorModel = true && this.isSetErrorModel();
-      boolean that_present_errorModel = true && that.isSetErrorModel();
-      if (this_present_errorModel || that_present_errorModel) {
-        if (!(this_present_errorModel && that_present_errorModel))
+      boolean this_present_processStatus = true && this.isSetProcessStatus();
+      boolean that_present_processStatus = true && that.isSetProcessStatus();
+      if (this_present_processStatus || that_present_processStatus) {
+        if (!(this_present_processStatus && that_present_processStatus))
           return false;
-        if (!this.errorModel.equals(that.errorModel))
+        if (!this.processStatus.equals(that.processStatus))
           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;
       }
 
@@ -63684,55 +65682,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetErrorType()) ? 131071 : 524287);
-      if (isSetErrorType())
-        hashCode = hashCode * 8191 + errorType.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetErrorModel()) ? 131071 : 524287);
-      if (isSetErrorModel())
-        hashCode = hashCode * 8191 + errorModel.hashCode();
+      hashCode = hashCode * 8191 + ((isSetProcessStatus()) ? 131071 : 524287);
+      if (isSetProcessStatus())
+        hashCode = hashCode * 8191 + processStatus.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(addErrors_args other) {
+    public int compareTo(addProcessStatus_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetErrorType()).compareTo(other.isSetErrorType());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetErrorType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorType, other.errorType);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetErrorModel()).compareTo(other.isSetErrorModel());
+      lastComparison = java.lang.Boolean.valueOf(isSetProcessStatus()).compareTo(other.isSetProcessStatus());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetErrorModel()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorModel, other.errorModel);
+      if (isSetProcessStatus()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processStatus, other.processStatus);
         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;
         }
@@ -63754,30 +65738,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addErrors_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcessStatus_args(");
       boolean first = true;
 
-      sb.append("errorType:");
-      if (this.errorType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.errorType);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("errorModel:");
-      if (this.errorModel == null) {
+      sb.append("processStatus:");
+      if (this.processStatus == null) {
         sb.append("null");
       } else {
-        sb.append(this.errorModel);
+        sb.append(this.processStatus);
       }
       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(")");
@@ -63786,15 +65762,15 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (errorType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'errorType' was not present! Struct: " + toString());
+      if (processStatus == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processStatus' was not present! Struct: " + toString());
       }
-      if (errorModel == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'errorModel' 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 (errorModel != null) {
-        errorModel.validate();
+      if (processStatus != null) {
+        processStatus.validate();
       }
     }
 
@@ -63814,15 +65790,15 @@ public class RegistryService {
       }
     }
 
-    private static class addErrors_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addErrors_argsStandardScheme getScheme() {
-        return new addErrors_argsStandardScheme();
+    private static class addProcessStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcessStatus_argsStandardScheme getScheme() {
+        return new addProcessStatus_argsStandardScheme();
       }
     }
 
-    private static class addErrors_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addErrors_args> {
+    private static class addProcessStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcessStatus_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addErrors_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -63832,27 +65808,19 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // ERROR_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.errorType = iprot.readString();
-                struct.setErrorTypeIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // ERROR_MODEL
+            case 1: // PROCESS_STATUS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.errorModel = new org.apache.airavata.model.commons.ErrorModel();
-                struct.errorModel.read(iprot);
-                struct.setErrorModelIsSet(true);
+                struct.processStatus = new org.apache.airavata.model.status.ProcessStatus();
+                struct.processStatus.read(iprot);
+                struct.setProcessStatusIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // ID
+            case 2: // 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);
               }
@@ -63868,23 +65836,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addErrors_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcessStatus_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.errorType != null) {
-          oprot.writeFieldBegin(ERROR_TYPE_FIELD_DESC);
-          oprot.writeString(struct.errorType);
-          oprot.writeFieldEnd();
-        }
-        if (struct.errorModel != null) {
-          oprot.writeFieldBegin(ERROR_MODEL_FIELD_DESC);
-          struct.errorModel.write(oprot);
+        if (struct.processStatus != null) {
+          oprot.writeFieldBegin(PROCESS_STATUS_FIELD_DESC);
+          struct.processStatus.write(oprot);
           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();
@@ -63893,42 +65856,29 @@ public class RegistryService {
 
     }
 
-    private static class addErrors_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addErrors_argsTupleScheme getScheme() {
-        return new addErrors_argsTupleScheme();
+    private static class addProcessStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcessStatus_argsTupleScheme getScheme() {
+        return new addProcessStatus_argsTupleScheme();
       }
     }
 
-    private static class addErrors_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addErrors_args> {
+    private static class addProcessStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcessStatus_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addErrors_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.errorType);
-        struct.errorModel.write(oprot);
-        java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetId()) {
-          optionals.set(0);
-        }
-        oprot.writeBitSet(optionals, 1);
-        if (struct.isSetId()) {
-          oprot.writeString(struct.id);
-        }
+        struct.processStatus.write(oprot);
+        oprot.writeString(struct.processId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addErrors_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addProcessStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.errorType = iprot.readString();
-        struct.setErrorTypeIsSet(true);
-        struct.errorModel = new org.apache.airavata.model.commons.ErrorModel();
-        struct.errorModel.read(iprot);
-        struct.setErrorModelIsSet(true);
-        java.util.BitSet incoming = iprot.readBitSet(1);
-        if (incoming.get(0)) {
-          struct.id = iprot.readString();
-          struct.setIdIsSet(true);
-        }
+        struct.processStatus = new org.apache.airavata.model.status.ProcessStatus();
+        struct.processStatus.read(iprot);
+        struct.setProcessStatusIsSet(true);
+        struct.processId = iprot.readString();
+        struct.setProcessIdIsSet(true);
       }
     }
 
@@ -63937,13 +65887,13 @@ public class RegistryService {
     }
   }
 
-  public static class addErrors_result implements org.apache.thrift.TBase<addErrors_result, addErrors_result._Fields>, java.io.Serializable, Cloneable, Comparable<addErrors_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addErrors_result");
+  public static class addProcessStatus_result implements org.apache.thrift.TBase<addProcessStatus_result, addProcessStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<addProcessStatus_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addProcessStatus_result");
 
     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 addErrors_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addErrors_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new addProcessStatus_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addProcessStatus_resultTupleSchemeFactory();
 
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
@@ -64012,13 +65962,13 @@ public class RegistryService {
       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(addErrors_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(addProcessStatus_result.class, metaDataMap);
     }
 
-    public addErrors_result() {
+    public addProcessStatus_result() {
     }
 
-    public addErrors_result(
+    public addProcessStatus_result(
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -64028,14 +65978,14 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addErrors_result(addErrors_result other) {
+    public addProcessStatus_result(addProcessStatus_result other) {
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public addErrors_result deepCopy() {
-      return new addErrors_result(this);
+    public addProcessStatus_result deepCopy() {
+      return new addProcessStatus_result(this);
     }
 
     @Override
@@ -64047,7 +65997,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public addErrors_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public addProcessStatus_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -64106,12 +66056,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addErrors_result)
-        return this.equals((addErrors_result)that);
+      if (that instanceof addProcessStatus_result)
+        return this.equals((addProcessStatus_result)that);
       return false;
     }
 
-    public boolean equals(addErrors_result that) {
+    public boolean equals(addProcessStatus_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -64141,7 +66091,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(addErrors_result other) {
+    public int compareTo(addProcessStatus_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -64175,7 +66125,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("addErrors_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("addProcessStatus_result(");
       boolean first = true;
 
       sb.append("rse:");
@@ -64210,15 +66160,15 @@ public class RegistryService {
       }
     }
 
-    private static class addErrors_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addErrors_resultStandardScheme getScheme() {
-        return new addErrors_resultStandardScheme();
+    private static class addProcessStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcessStatus_resultStandardScheme getScheme() {
+        return new addProcessStatus_resultStandardScheme();
       }
     }
 
-    private static class addErrors_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addErrors_result> {
+    private static class addProcessStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<addProcessStatus_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, addErrors_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, addProcessStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -64248,7 +66198,7 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, addErrors_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, addProcessStatus_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -64263,16 +66213,16 @@ public class RegistryService {
 
     }
 
-    private static class addErrors_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public addErrors_resultTupleScheme getScheme() {
-        return new addErrors_resultTupleScheme();
+    private static class addProcessStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public addProcessStatus_resultTupleScheme getScheme() {
+        return new addProcessStatus_resultTupleScheme();
       }
     }
 
-    private static class addErrors_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addErrors_result> {
+    private static class addProcessStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<addProcessStatus_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, addErrors_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, addProcessStatus_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()) {
@@ -64285,7 +66235,7 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, addErrors_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, addProcessStatus_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);
         if (incoming.get(0)) {
@@ -64301,22 +66251,22 @@ public class RegistryService {
     }
   }
 
-  public static class addTaskStatus_args implements org.apache.thrift.TBase<addTaskStatus_args, addTaskStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<addTaskStatus_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("addTaskStatus_args");
+  public static class updateProcessStatus_args implements org.apache.thrift.TBase<updateProcessStatus_args, updateProcessStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateProcessStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateProcessStatus_args");
 
-    private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatus", 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 addTaskStatus_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new addTaskStatus_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateProcessStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateProcessStatus_argsTupleSchemeFactory();
 
-    public org.apache.airavata.model.status.TaskStatus taskStatus; // required
-    public java.lang.String taskId; // required
+    public org.apache.airavata.model.status.ProcessStatus processStatus; // 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 {
-      TASK_STATUS((short)1, "taskStatus"),
-      TASK_ID((short)2, "taskId");
+      PROCESS_STATUS((short)1, "processStatus"),
+      PROCESS_ID((short)2, "processId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -64331,10 +66281,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // TASK_STATUS
-            return TASK_STATUS;
-          case 2: // TASK_ID
-            return TASK_ID;
+          case 1: // PROCESS_STATUS
+            return PROCESS_STATUS;
+          case 2: // PROCESS_ID
+            return PROCESS_ID;
           default:
             return null;
         }
@@ -64378,111 +66328,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_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class)));
-      tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.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(addTaskStatus_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateProcessStatus_args.class, metaDataMap);
     }
 
-    public addTaskStatus_args() {
+    public updateProcessStatus_args() {
     }
 
-    public addTaskStatus_args(
-      org.apache.airavata.model.status.TaskStatus taskStatus,
-      java.lang.String taskId)
+    public updateProcessStatus_args(
+      org.apache.airavata.model.status.ProcessStatus processStatus,
+      java.lang.String processId)
     {
       this();
-      this.taskStatus = taskStatus;
-      this.taskId = taskId;
+      this.processStatus = processStatus;
+      this.processId = processId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public addTaskStatus_args(addTaskStatus_args other) {
-      if (other.isSetTaskStatus()) {
-        this.taskStatus = new org.apache.airavata.model.status.TaskStatus(other.taskStatus);
+    public updateProcessStatus_args(updateProcessStatus_args other) {
+      if (other.isSetProcessStatus()) {
+        this.processStatus = new org.apache.airavata.model.status.ProcessStatus(other.processStatus);
       }
-      if (other.isSetTaskId()) {
-        this.taskId = other.taskId;
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
     }
 
-    public addTaskStatus_args deepCopy() {
-      return new addTaskStatus_args(this);
+    public updateProcessStatus_args deepCopy() {
+      return new updateProcessStatus_args(this);
     }
 
     @Override
     public void clear() {
-      this.taskStatus = null;
-      this.taskId = null;
+      this.processStatus = null;
+      this.processId = null;
     }
 
-    public org.apache.airavata.model.status.TaskStatus getTaskStatus() {
-      return this.taskStatus;
+    public org.apache.airavata.model.status.ProcessStatus getProcessStatus() {
+      return this.processStatus;
     }
 
-    public addTaskStatus_args setTaskStatus(org.apache.airavata.model.status.TaskStatus taskStatus) {
-      this.taskStatus = taskStatus;
+    public updateProcessStatus_args setProcessStatus(org.apache.airavata.model.status.ProcessStatus processStatus) {
+      this.processStatus = processStatus;
       return this;
     }
 
-    public void unsetTaskStatus() {
-      this.taskStatus = null;
+    public void unsetProcessStatus() {
+      this.processStatus = null;
     }
 
-    /** Returns true if field taskStatus is set (has been assigned a value) and false otherwise */
-    public boolean isSetTaskStatus() {
-      return this.taskStatus != null;
+    /** Returns true if field processStatus is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessStatus() {
+      return this.processStatus != null;
     }
 
-    public void setTaskStatusIsSet(boolean value) {
+    public void setProcessStatusIsSet(boolean value) {
       if (!value) {
-        this.taskStatus = null;
+        this.processStatus = null;
       }
     }
 
-    public java.lang.String getTaskId() {
-      return this.taskId;
+    public java.lang.String getProcessId() {
+      return this.processId;
     }
 
-    public addTaskStatus_args setTaskId(java.lang.String taskId) {
-      this.taskId = taskId;
+    public updateProcessStatus_args setProcessId(java.lang.String processId) {
+      this.processId = processId;
       return this;
     }
 
-    public void unsetTaskId() {
-      this.taskId = null;
+    public void unsetProcessId() {
+      this.processId = null;
     }
 
-    /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
-    public boolean isSetTaskId() {
-      return this.taskId != 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 setTaskIdIsSet(boolean value) {
+    public void setProcessIdIsSet(boolean value) {
       if (!value) {
-        this.taskId = null;
+        this.processId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case TASK_STATUS:
+      case PROCESS_STATUS:
         if (value == null) {
-          unsetTaskStatus();
+          unsetProcessStatus();
         } else {
-          setTaskStatus((org.apache.airavata.model.status.TaskStatus)value);
+          setProcessStatus((org.apache.airavata.model.status.ProcessStatus)value);
         }
         break;
 
-      case TASK_ID:
+      case PROCESS_ID:
         if (value == null) {
-          unsetTaskId();
+          unsetProcessId();
         } else {
-          setTaskId((java.lang.String)value);
+          setProcessId((java.lang.String)value);
         }
         break;
 
@@ -64491,11 +66441,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case TASK_STATUS:
-        return getTaskStatus();
+      case PROCESS_STATUS:
+        return getProcessStatus();
 
-      case TASK_ID:
-        return getTaskId();
+      case PROCESS_ID:
+        return getProcessId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -64508,10 +66458,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case TASK_STATUS:
-        return isSetTaskStatus();
-      case TASK_ID:
-        return isSetTaskId();
+      case PROCESS_STATUS:
+        return isSetProcessStatus();
+      case PROCESS_ID:
+        return isSetProcessId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -64520,32 +66470,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof addTaskStatus_args)
-        return this.equals((addTaskStatus_args)that);
+      if (that instanceof updateProcessStatus_args)
+        return this.equals((updateProcessStatus_args)that);
       return false;
     }
 
-    public boolean equals(addTaskStatus_args that) {
+    public boolean equals(updateProcessStatus_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
... 12944 lines suppressed ...