You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2020/06/01 23:03:13 UTC

[airavata] branch param-sweep updated: Updating parser framework to have output versions for job indexes

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

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


The following commit(s) were added to refs/heads/param-sweep by this push:
     new cd57078  Updating parser framework to have output versions for job indexes
cd57078 is described below

commit cd57078f91a4cc82b8c9305e73ac1856e2a6b4b8
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Mon Jun 1 19:02:56 2020 -0400

    Updating parser framework to have output versions for job indexes
---
 .../application/io/OutputDataValueObjectType.java  |   351 +-
 modules/airavata-helix/helix-spectator/pom.xml     |     6 +-
 .../airavata/helix/impl/task/AiravataTask.java     |    18 +-
 .../helix/impl/task/parsing/DataParsingTask.java   |   187 +-
 .../impl/task/parsing/ParsingTriggeringTask.java   |    13 +
 .../task/parsing/ProcessCompletionMessage.java     |     9 +
 .../ProcessCompletionMessageDeserializer.java      |     1 +
 .../kafka/ProcessCompletionMessageSerializer.java  |     2 +-
 .../impl/task/staging/OutputDataStagingTask.java   |     6 +-
 .../staging/SweepingOutputDataStagingTask.java     |     2 +-
 .../helix/impl/workflow/ParserWorkflowManager.java |    23 +-
 .../helix/impl/workflow/PostWorkflowManager.java   |     6 +-
 modules/ide-integration/pom.xml                    |    22 +
 .../airavata/ide/integration/JobEngineStarter.java |     5 +
 .../src/main/resources/airavata-server.properties  |    13 +-
 .../init/05-parameter-sweep-migration.sql          |     4 +-
 .../expcatalog/ExperimentOutputRepository.java     |     6 +
 .../api/service/handler/RegistryServerHandler.java |    29 +-
 .../airavata/registry/api/RegistryService.java     | 10349 +++++++++++--------
 .../airavata/sharing/registry/models/Domain.java   |    32 +-
 .../registry/models/DuplicateEntryException.java   |    12 +-
 .../airavata/sharing/registry/models/Entity.java   |    70 +-
 .../sharing/registry/models/EntityType.java        |    32 +-
 .../sharing/registry/models/GroupAdmin.java        |    17 +-
 .../sharing/registry/models/GroupMembership.java   |    36 +-
 .../sharing/registry/models/PermissionType.java    |    32 +-
 .../sharing/registry/models/SearchCriteria.java    |    25 +-
 .../airavata/sharing/registry/models/Sharing.java  |    46 +-
 .../registry/models/SharingRegistryException.java  |    12 +-
 .../airavata/sharing/registry/models/User.java     |    50 +-
 .../sharing/registry/models/UserGroup.java         |    60 +-
 .../component-cpis/registry-api.thrift             |    21 +
 32 files changed, 6333 insertions(+), 5164 deletions(-)

diff --git a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCriteria.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataValueObjectType.java
similarity index 52%
copy from modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCriteria.java
copy to airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataValueObjectType.java
index 0a605a9..ff0a48a 100644
--- a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCriteria.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataValueObjectType.java
@@ -21,52 +21,26 @@
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
  */
-package org.apache.airavata.sharing.registry.models;
+package org.apache.airavata.model.application.io;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-/**
- * <p>Container object for search criteria</p>
- * <li><b>searchField</b> : Entity search field</li>
- * <li><b>value</b> : Search value</li>
- * <li><b>searchCondition</b> : EQUAL, LIKE etc..</li>
- * 
- */
 @javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
-public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, SearchCriteria._Fields>, java.io.Serializable, Cloneable, Comparable<SearchCriteria> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SearchCriteria");
+public class OutputDataValueObjectType implements org.apache.thrift.TBase<OutputDataValueObjectType, OutputDataValueObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataValueObjectType> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataValueObjectType");
 
-  private static final org.apache.thrift.protocol.TField SEARCH_FIELD_FIELD_DESC = new org.apache.thrift.protocol.TField("searchField", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField SEARCH_CONDITION_FIELD_DESC = new org.apache.thrift.protocol.TField("searchCondition", org.apache.thrift.protocol.TType.I32, (short)3);
 
-  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new SearchCriteriaStandardSchemeFactory();
-  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new SearchCriteriaTupleSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new OutputDataValueObjectTypeStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new OutputDataValueObjectTypeTupleSchemeFactory();
 
-  /**
-   * 
-   * @see EntitySearchField
-   */
-  public EntitySearchField searchField; // optional
-  public java.lang.String value; // optional
-  /**
-   * 
-   * @see SearchCondition
-   */
-  public SearchCondition searchCondition; // optional
+  private java.lang.String name; // required
+  private java.lang.String value; // 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 {
-    /**
-     * 
-     * @see EntitySearchField
-     */
-    SEARCH_FIELD((short)1, "searchField"),
-    VALUE((short)2, "value"),
-    /**
-     * 
-     * @see SearchCondition
-     */
-    SEARCH_CONDITION((short)3, "searchCondition");
+    NAME((short)1, "name"),
+    VALUE((short)2, "value");
 
     private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -81,12 +55,10 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
      */
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
-        case 1: // SEARCH_FIELD
-          return SEARCH_FIELD;
+        case 1: // NAME
+          return NAME;
         case 2: // VALUE
           return VALUE;
-        case 3: // SEARCH_CONDITION
-          return SEARCH_CONDITION;
         default:
           return null;
       }
@@ -127,78 +99,70 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
   }
 
   // isset id assignments
-  private static final _Fields optionals[] = {_Fields.SEARCH_FIELD,_Fields.VALUE,_Fields.SEARCH_CONDITION};
+  private static final _Fields optionals[] = {_Fields.VALUE};
   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.SEARCH_FIELD, new org.apache.thrift.meta_data.FieldMetaData("searchField", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, EntitySearchField.class)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SEARCH_CONDITION, new org.apache.thrift.meta_data.FieldMetaData("searchCondition", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SearchCondition.class)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SearchCriteria.class, metaDataMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(OutputDataValueObjectType.class, metaDataMap);
   }
 
-  public SearchCriteria() {
+  public OutputDataValueObjectType() {
+  }
+
+  public OutputDataValueObjectType(
+    java.lang.String name)
+  {
+    this();
+    this.name = name;
   }
 
   /**
    * Performs a deep copy on <i>other</i>.
    */
-  public SearchCriteria(SearchCriteria other) {
-    if (other.isSetSearchField()) {
-      this.searchField = other.searchField;
+  public OutputDataValueObjectType(OutputDataValueObjectType other) {
+    if (other.isSetName()) {
+      this.name = other.name;
     }
     if (other.isSetValue()) {
       this.value = other.value;
     }
-    if (other.isSetSearchCondition()) {
-      this.searchCondition = other.searchCondition;
-    }
   }
 
-  public SearchCriteria deepCopy() {
-    return new SearchCriteria(this);
+  public OutputDataValueObjectType deepCopy() {
+    return new OutputDataValueObjectType(this);
   }
 
   @Override
   public void clear() {
-    this.searchField = null;
+    this.name = null;
     this.value = null;
-    this.searchCondition = null;
   }
 
-  /**
-   * 
-   * @see EntitySearchField
-   */
-  public EntitySearchField getSearchField() {
-    return this.searchField;
+  public java.lang.String getName() {
+    return this.name;
   }
 
-  /**
-   * 
-   * @see EntitySearchField
-   */
-  public SearchCriteria setSearchField(EntitySearchField searchField) {
-    this.searchField = searchField;
-    return this;
+  public void setName(java.lang.String name) {
+    this.name = name;
   }
 
-  public void unsetSearchField() {
-    this.searchField = null;
+  public void unsetName() {
+    this.name = null;
   }
 
-  /** Returns true if field searchField is set (has been assigned a value) and false otherwise */
-  public boolean isSetSearchField() {
-    return this.searchField != null;
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
   }
 
-  public void setSearchFieldIsSet(boolean value) {
+  public void setNameIsSet(boolean value) {
     if (!value) {
-      this.searchField = null;
+      this.name = null;
     }
   }
 
@@ -206,9 +170,8 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
     return this.value;
   }
 
-  public SearchCriteria setValue(java.lang.String value) {
+  public void setValue(java.lang.String value) {
     this.value = value;
-    return this;
   }
 
   public void unsetValue() {
@@ -226,45 +189,13 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
     }
   }
 
-  /**
-   * 
-   * @see SearchCondition
-   */
-  public SearchCondition getSearchCondition() {
-    return this.searchCondition;
-  }
-
-  /**
-   * 
-   * @see SearchCondition
-   */
-  public SearchCriteria setSearchCondition(SearchCondition searchCondition) {
-    this.searchCondition = searchCondition;
-    return this;
-  }
-
-  public void unsetSearchCondition() {
-    this.searchCondition = null;
-  }
-
-  /** Returns true if field searchCondition is set (has been assigned a value) and false otherwise */
-  public boolean isSetSearchCondition() {
-    return this.searchCondition != null;
-  }
-
-  public void setSearchConditionIsSet(boolean value) {
-    if (!value) {
-      this.searchCondition = null;
-    }
-  }
-
   public void setFieldValue(_Fields field, java.lang.Object value) {
     switch (field) {
-    case SEARCH_FIELD:
+    case NAME:
       if (value == null) {
-        unsetSearchField();
+        unsetName();
       } else {
-        setSearchField((EntitySearchField)value);
+        setName((java.lang.String)value);
       }
       break;
 
@@ -276,28 +207,17 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
       }
       break;
 
-    case SEARCH_CONDITION:
-      if (value == null) {
-        unsetSearchCondition();
-      } else {
-        setSearchCondition((SearchCondition)value);
-      }
-      break;
-
     }
   }
 
   public java.lang.Object getFieldValue(_Fields field) {
     switch (field) {
-    case SEARCH_FIELD:
-      return getSearchField();
+    case NAME:
+      return getName();
 
     case VALUE:
       return getValue();
 
-    case SEARCH_CONDITION:
-      return getSearchCondition();
-
     }
     throw new java.lang.IllegalStateException();
   }
@@ -309,12 +229,10 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
     }
 
     switch (field) {
-    case SEARCH_FIELD:
-      return isSetSearchField();
+    case NAME:
+      return isSetName();
     case VALUE:
       return isSetValue();
-    case SEARCH_CONDITION:
-      return isSetSearchCondition();
     }
     throw new java.lang.IllegalStateException();
   }
@@ -323,23 +241,23 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
   public boolean equals(java.lang.Object that) {
     if (that == null)
       return false;
-    if (that instanceof SearchCriteria)
-      return this.equals((SearchCriteria)that);
+    if (that instanceof OutputDataValueObjectType)
+      return this.equals((OutputDataValueObjectType)that);
     return false;
   }
 
-  public boolean equals(SearchCriteria that) {
+  public boolean equals(OutputDataValueObjectType that) {
     if (that == null)
       return false;
     if (this == that)
       return true;
 
-    boolean this_present_searchField = true && this.isSetSearchField();
-    boolean that_present_searchField = true && that.isSetSearchField();
-    if (this_present_searchField || that_present_searchField) {
-      if (!(this_present_searchField && that_present_searchField))
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
         return false;
-      if (!this.searchField.equals(that.searchField))
+      if (!this.name.equals(that.name))
         return false;
     }
 
@@ -352,15 +270,6 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
         return false;
     }
 
-    boolean this_present_searchCondition = true && this.isSetSearchCondition();
-    boolean that_present_searchCondition = true && that.isSetSearchCondition();
-    if (this_present_searchCondition || that_present_searchCondition) {
-      if (!(this_present_searchCondition && that_present_searchCondition))
-        return false;
-      if (!this.searchCondition.equals(that.searchCondition))
-        return false;
-    }
-
     return true;
   }
 
@@ -368,35 +277,31 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
   public int hashCode() {
     int hashCode = 1;
 
-    hashCode = hashCode * 8191 + ((isSetSearchField()) ? 131071 : 524287);
-    if (isSetSearchField())
-      hashCode = hashCode * 8191 + searchField.getValue();
+    hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
+    if (isSetName())
+      hashCode = hashCode * 8191 + name.hashCode();
 
     hashCode = hashCode * 8191 + ((isSetValue()) ? 131071 : 524287);
     if (isSetValue())
       hashCode = hashCode * 8191 + value.hashCode();
 
-    hashCode = hashCode * 8191 + ((isSetSearchCondition()) ? 131071 : 524287);
-    if (isSetSearchCondition())
-      hashCode = hashCode * 8191 + searchCondition.getValue();
-
     return hashCode;
   }
 
   @Override
-  public int compareTo(SearchCriteria other) {
+  public int compareTo(OutputDataValueObjectType other) {
     if (!getClass().equals(other.getClass())) {
       return getClass().getName().compareTo(other.getClass().getName());
     }
 
     int lastComparison = 0;
 
-    lastComparison = java.lang.Boolean.valueOf(isSetSearchField()).compareTo(other.isSetSearchField());
+    lastComparison = java.lang.Boolean.valueOf(isSetName()).compareTo(other.isSetName());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetSearchField()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.searchField, other.searchField);
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -411,16 +316,6 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
         return lastComparison;
       }
     }
-    lastComparison = java.lang.Boolean.valueOf(isSetSearchCondition()).compareTo(other.isSetSearchCondition());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSearchCondition()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.searchCondition, other.searchCondition);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     return 0;
   }
 
@@ -438,18 +333,16 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
 
   @Override
   public java.lang.String toString() {
-    java.lang.StringBuilder sb = new java.lang.StringBuilder("SearchCriteria(");
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("OutputDataValueObjectType(");
     boolean first = true;
 
-    if (isSetSearchField()) {
-      sb.append("searchField:");
-      if (this.searchField == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.searchField);
-      }
-      first = false;
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
     }
+    first = false;
     if (isSetValue()) {
       if (!first) sb.append(", ");
       sb.append("value:");
@@ -460,22 +353,16 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
       }
       first = false;
     }
-    if (isSetSearchCondition()) {
-      if (!first) sb.append(", ");
-      sb.append("searchCondition:");
-      if (this.searchCondition == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.searchCondition);
-      }
-      first = false;
-    }
     sb.append(")");
     return sb.toString();
   }
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
+    if (!isSetName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' is unset! Struct:" + toString());
+    }
+
     // check for sub-struct validity
   }
 
@@ -495,15 +382,15 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
     }
   }
 
-  private static class SearchCriteriaStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public SearchCriteriaStandardScheme getScheme() {
-      return new SearchCriteriaStandardScheme();
+  private static class OutputDataValueObjectTypeStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public OutputDataValueObjectTypeStandardScheme getScheme() {
+      return new OutputDataValueObjectTypeStandardScheme();
     }
   }
 
-  private static class SearchCriteriaStandardScheme extends org.apache.thrift.scheme.StandardScheme<SearchCriteria> {
+  private static class OutputDataValueObjectTypeStandardScheme extends org.apache.thrift.scheme.StandardScheme<OutputDataValueObjectType> {
 
-    public void read(org.apache.thrift.protocol.TProtocol iprot, SearchCriteria struct) throws org.apache.thrift.TException {
+    public void read(org.apache.thrift.protocol.TProtocol iprot, OutputDataValueObjectType struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TField schemeField;
       iprot.readStructBegin();
       while (true)
@@ -513,10 +400,10 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
           break;
         }
         switch (schemeField.id) {
-          case 1: // SEARCH_FIELD
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.searchField = org.apache.airavata.sharing.registry.models.EntitySearchField.findByValue(iprot.readI32());
-              struct.setSearchFieldIsSet(true);
+          case 1: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -529,35 +416,23 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 3: // SEARCH_CONDITION
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.searchCondition = org.apache.airavata.sharing.registry.models.SearchCondition.findByValue(iprot.readI32());
-              struct.setSearchConditionIsSet(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, SearchCriteria struct) throws org.apache.thrift.TException {
+    public void write(org.apache.thrift.protocol.TProtocol oprot, OutputDataValueObjectType struct) throws org.apache.thrift.TException {
       struct.validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.searchField != null) {
-        if (struct.isSetSearchField()) {
-          oprot.writeFieldBegin(SEARCH_FIELD_FIELD_DESC);
-          oprot.writeI32(struct.searchField.getValue());
-          oprot.writeFieldEnd();
-        }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
       }
       if (struct.value != null) {
         if (struct.isSetValue()) {
@@ -566,68 +441,44 @@ public class SearchCriteria implements org.apache.thrift.TBase<SearchCriteria, S
           oprot.writeFieldEnd();
         }
       }
-      if (struct.searchCondition != null) {
-        if (struct.isSetSearchCondition()) {
-          oprot.writeFieldBegin(SEARCH_CONDITION_FIELD_DESC);
-          oprot.writeI32(struct.searchCondition.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
 
   }
 
-  private static class SearchCriteriaTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public SearchCriteriaTupleScheme getScheme() {
-      return new SearchCriteriaTupleScheme();
+  private static class OutputDataValueObjectTypeTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public OutputDataValueObjectTypeTupleScheme getScheme() {
+      return new OutputDataValueObjectTypeTupleScheme();
     }
   }
 
-  private static class SearchCriteriaTupleScheme extends org.apache.thrift.scheme.TupleScheme<SearchCriteria> {
+  private static class OutputDataValueObjectTypeTupleScheme extends org.apache.thrift.scheme.TupleScheme<OutputDataValueObjectType> {
 
     @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, SearchCriteria struct) throws org.apache.thrift.TException {
+    public void write(org.apache.thrift.protocol.TProtocol prot, OutputDataValueObjectType struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      oprot.writeString(struct.name);
       java.util.BitSet optionals = new java.util.BitSet();
-      if (struct.isSetSearchField()) {
-        optionals.set(0);
-      }
       if (struct.isSetValue()) {
-        optionals.set(1);
-      }
-      if (struct.isSetSearchCondition()) {
-        optionals.set(2);
-      }
-      oprot.writeBitSet(optionals, 3);
-      if (struct.isSetSearchField()) {
-        oprot.writeI32(struct.searchField.getValue());
+        optionals.set(0);
       }
+      oprot.writeBitSet(optionals, 1);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
-      if (struct.isSetSearchCondition()) {
-        oprot.writeI32(struct.searchCondition.getValue());
-      }
     }
 
     @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, SearchCriteria struct) throws org.apache.thrift.TException {
+    public void read(org.apache.thrift.protocol.TProtocol prot, OutputDataValueObjectType struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet incoming = iprot.readBitSet(3);
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      java.util.BitSet incoming = iprot.readBitSet(1);
       if (incoming.get(0)) {
-        struct.searchField = org.apache.airavata.sharing.registry.models.EntitySearchField.findByValue(iprot.readI32());
-        struct.setSearchFieldIsSet(true);
-      }
-      if (incoming.get(1)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
       }
-      if (incoming.get(2)) {
-        struct.searchCondition = org.apache.airavata.sharing.registry.models.SearchCondition.findByValue(iprot.readI32());
-        struct.setSearchConditionIsSet(true);
-      }
     }
   }
 
diff --git a/modules/airavata-helix/helix-spectator/pom.xml b/modules/airavata-helix/helix-spectator/pom.xml
index 7de7cc0..945ade1 100644
--- a/modules/airavata-helix/helix-spectator/pom.xml
+++ b/modules/airavata-helix/helix-spectator/pom.xml
@@ -120,9 +120,9 @@
             <version>5.0</version>
         </dependency>
         <dependency>
-            <groupId>com.github.docker-java</groupId>
-            <artifactId>docker-java</artifactId>
-            <version>3.0.14</version>
+            <groupId>com.spotify</groupId>
+            <artifactId>docker-client</artifactId>
+            <version>8.16.0</version>
         </dependency>
     </dependencies>
 </project>
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
index 1379307..bb47a9b 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
@@ -60,10 +60,7 @@ import org.slf4j.MDC;
 import java.io.File;
 import java.io.IOException;
 import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 public abstract class AiravataTask extends AbstractTask {
 
@@ -259,14 +256,14 @@ public abstract class AiravataTask extends AbstractTask {
         }
     }
 
-    public void saveExperimentOutput(String outputName, String outputVal) throws TaskOnFailException {
+    public void saveExperimentOutput(String outputName, String outputVal, int outputVersion) throws TaskOnFailException {
         try {
             ExperimentModel experiment = getRegistryServiceClient().getExperiment(experimentId);
             List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
             if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
                 for (OutputDataObjectType expOutput : experimentOutputs) {
                     if (expOutput.getName().equals(outputName)) {
-                        String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData());
+                        String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData(), outputVersion);
                         expOutput.setValue(productUri);
                         getRegistryServiceClient().addExperimentProcessOutputs("EXPERIMENT_OUTPUT",
                                 Collections.singletonList(expOutput), experimentId);
@@ -279,7 +276,7 @@ public abstract class AiravataTask extends AbstractTask {
             throw new TaskOnFailException(msg, true, e);
         }
     }
-    public void saveExperimentOutputCollection(String outputName, List<String> outputVals) throws TaskOnFailException {
+    public void saveExperimentOutputCollection(String outputName, List<String> outputVals, int outputVersion) throws TaskOnFailException {
         try {
             ExperimentModel experiment = getRegistryServiceClient().getExperiment(experimentId);
             List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
@@ -288,7 +285,7 @@ public abstract class AiravataTask extends AbstractTask {
                     if (expOutput.getName().equals(outputName)) {
                         List<String> productUris = new ArrayList<String>();
                         for (String outputVal : outputVals) {
-                            String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData());
+                            String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData(), outputVersion);
                             productUris.add(productUri);
                         }
                         expOutput.setValue(String.join(",", productUris));
@@ -304,13 +301,16 @@ public abstract class AiravataTask extends AbstractTask {
         }
     }
 
-    private String saveDataProduct(String outputName, String outputVal, String outputMetadata) throws TException {
+    private String saveDataProduct(String outputName, String outputVal, String outputMetadata, int productVersion) throws TException {
 
         DataProductModel dataProductModel = new DataProductModel();
         dataProductModel.setGatewayId(getGatewayId());
         dataProductModel.setOwnerName(getProcessModel().getUserName());
         dataProductModel.setProductName(outputName);
         dataProductModel.setDataProductType(DataProductType.FILE);
+        Map<String, String> metadata = new HashMap<>();
+        metadata.put("version", productVersion + "");
+        dataProductModel.setProductMetadata(metadata);
         // Copy experiment output's file-metadata to data product's metadata
         if (outputMetadata != null) {
             try {
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
index b290f16..5b4e2fd 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/DataParsingTask.java
@@ -19,16 +19,11 @@
  */
 package org.apache.airavata.helix.impl.task.parsing;
 
-import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.command.CreateContainerResponse;
-import com.github.dockerjava.api.command.LogContainerCmd;
-import com.github.dockerjava.api.model.Bind;
-import com.github.dockerjava.api.model.Frame;
-import com.github.dockerjava.core.DefaultDockerClientConfig;
-import com.github.dockerjava.core.DockerClientBuilder;
-import com.github.dockerjava.core.command.LogContainerResultCallback;
-import com.github.dockerjava.core.command.PullImageResultCallback;
-import com.github.dockerjava.core.command.WaitContainerResultCallback;
+import com.spotify.docker.client.DefaultDockerClient;
+import com.spotify.docker.client.LogStream;
+import com.spotify.docker.client.exceptions.DockerCertificateException;
+import com.spotify.docker.client.exceptions.DockerException;
+import com.spotify.docker.client.messages.*;
 import org.apache.airavata.agents.api.AgentException;
 import org.apache.airavata.agents.api.StorageResourceAdaptor;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
@@ -58,6 +53,7 @@ import org.apache.airavata.model.data.replica.DataProductType;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
 import org.apache.airavata.model.data.replica.ReplicaLocationCategory;
 import org.apache.airavata.model.data.replica.ReplicaPersistentType;
+import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.registry.api.RegistryService;
 import org.apache.airavata.registry.api.client.RegistryServiceClientFactory;
 import org.apache.airavata.registry.api.exception.RegistryServiceException;
@@ -70,10 +66,8 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.nio.file.Paths;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -104,6 +98,12 @@ public class DataParsingTask extends AbstractTask {
     @TaskParam(name = "Local data dir")
     private String localDataDir;
 
+    @TaskParam(name = "Process Id")
+    private String processId;
+
+    @TaskParam(name = "DP Output Version")
+    private Integer outputVersion;
+
     @Override
     public TaskResult onRun(TaskHelper helper) {
         logger.info("Starting data parsing task " + getTaskId());
@@ -115,7 +115,7 @@ public class DataParsingTask extends AbstractTask {
             containerId = containerId.replace(" ", "-");
 
             String localInputDir = createLocalInputDir(containerId);
-            String localOutDir= createLocalOutputDir(containerId);
+            String localOutDir = createLocalOutputDir(containerId);
             logger.info("Created local input and ouput directories : " + localInputDir + ", " + localOutDir);
 
             logger.info("Downloading input files to local input directory");
@@ -175,8 +175,8 @@ public class DataParsingTask extends AbstractTask {
                 }
             }
 
-            logger.info("Running container with id " + containerId + " local input dir " + localInputDir + " local output dir " + localOutDir);
-            runContainer(parser, containerId, localInputDir, localOutDir, properties);
+            logger.info("Running container with local input dir " + localInputDir + " local output dir " + localOutDir);
+            runContainer(parser, localInputDir, localOutDir, properties);
 
             for (ParserOutput parserOutput : parser.getOutputFiles()) {
 
@@ -186,8 +186,8 @@ public class DataParsingTask extends AbstractTask {
                 if (filteredOutputOptional.isPresent()) {
 
                     ParsingTaskOutput parsingTaskOutput = filteredOutputOptional.get();
-                    String localFilePath = localOutDir + (localOutDir.endsWith(File.separator) ? "" : File.separator) + parserOutput.getName();
-                    String remoteFilePath = "parsers" + File.separator + getTaskId() + File.separator + "outputs" + File.separator + parserOutput.getName();
+                    String localFilePath = Paths.get(localOutDir, parserOutput.getName()).toString();
+                    String remoteFilePath = Paths.get("parseout", parserId, outputVersion + "", parserOutput.getName()).toString();
 
                     if (new File(localFilePath).exists()) {
                         uploadFileToStorageResource(parsingTaskOutput, remoteFilePath, localFilePath, helper.getAdaptorSupport());
@@ -229,71 +229,97 @@ public class DataParsingTask extends AbstractTask {
 
     }
 
-    private void runContainer(Parser parser, String containerId, String localInputDir, String localOutputDir, Map<String, String> properties) throws ApplicationSettingsException {
-        DefaultDockerClientConfig.Builder config = DefaultDockerClientConfig.createDefaultConfigBuilder();
+    public static void main(String args[]) throws DockerCertificateException, DockerException, InterruptedException {
+        final com.spotify.docker.client.DockerClient docker = DefaultDockerClient.fromEnv().build();
+        docker.pull("dimuthuupe/gamess-rna-parser:1.0");
+        HostConfig hostConfig = HostConfig.builder().build();
 
-        DockerClient dockerClient = DockerClientBuilder.getInstance(config).build();
+        ContainerConfig containerConfig = ContainerConfig.builder()
+                .hostConfig(hostConfig)
+                .image("dimuthuupe/gamess-rna-parser:1.0")
+                .cmd("sh", "-c", "while :; do sleep 1; done")
+                .build();
 
-        logger.info("Pulling image " + parser.getImageName());
-        dockerClient.pullImageCmd(parser.getImageName().split(":")[0])
-                .withTag(parser.getImageName().split(":")[1])
-                .exec(new PullImageResultCallback()).awaitSuccess();
+        ContainerCreation creation = docker.createContainer(containerConfig);
+        String id = creation.id();
+
+        ContainerInfo info = docker.inspectContainer(id);
+
+        docker.startContainer(id);
+
+        String[] command = {"sh", "-c", "l"};
+        ExecCreation execCreation = docker.execCreate(
+                id, command, com.spotify.docker.client.DockerClient.ExecCreateParam.attachStdout(),
+                com.spotify.docker.client.DockerClient.ExecCreateParam.attachStderr());
+        LogStream output = docker.execStart(execCreation.id());
+        String execOutput = output.readFully();
+
+        docker.killContainer(id);
+
+        docker.removeContainer(id);
+        docker.close();
 
+        System.out.println(execOutput);
+    }
+
+    private void runContainer(Parser parser, String localInputDir, String localOutputDir, Map<String, String> properties)
+            throws ApplicationSettingsException, DockerCertificateException, DockerException, InterruptedException {
+
+        final com.spotify.docker.client.DockerClient docker = DefaultDockerClient.fromEnv().build();
+        logger.info("Pulling image " + parser.getImageName());
+        docker.pull(parser.getImageName());
         logger.info("Successfully pulled image " + parser.getImageName());
 
-        String commands[] = parser.getExecutionCommand().split(" ");
-        CreateContainerResponse containerResponse = dockerClient.createContainerCmd(parser.getImageName()).withCmd(commands).withName(containerId)
-                .withBinds(Bind.parse(localInputDir + ":" + parser.getInputDirPath()),
-                        Bind.parse(localOutputDir + ":" + parser.getOutputDirPath()))
-                .withTty(true)
-                .withAttachStdin(true)
-                .withAttachStdout(true).withEnv(properties.entrySet()
+        HostConfig hostConfig = HostConfig.builder().binds(
+                HostConfig.Bind.builder().from(localInputDir).to(parser.getInputDirPath()).build(),
+                HostConfig.Bind.builder().from(localOutputDir).to(parser.getOutputDirPath()).build()
+                ).build();
+
+        ContainerConfig containerConfig = ContainerConfig.builder()
+                .hostConfig(hostConfig)
+                .cmd("sh", "-c", "while :; do sleep 1; done")
+                .image(parser.getImageName())
+                .env(properties.entrySet()
                         .stream()
                         .map(entry -> entry.getKey() + "=" + entry.getValue())
                         .collect(Collectors.toList()))
-                .exec();
+                .build();
 
-        logger.info("Created the container with id " + containerResponse.getId());
+        ContainerCreation creation = docker.createContainer(containerConfig);
+        String id = creation.id();
 
-        final StringBuilder dockerLogs = new StringBuilder();
+        logger.info("Created the container with id " + id);
 
-        if (containerResponse.getWarnings() != null && containerResponse.getWarnings().length > 0) {
-            StringBuilder warningStr = new StringBuilder();
-            for (String w : containerResponse.getWarnings()) {
-                warningStr.append(w).append(",");
-            }
-            logger.warn("Container " + containerResponse.getId() + " warnings : " + warningStr);
-        } else {
-            logger.info("Starting container with id " + containerResponse.getId());
-            dockerClient.startContainerCmd(containerResponse.getId()).exec();
-            LogContainerCmd logContainerCmd = dockerClient.logContainerCmd(containerResponse.getId()).withStdOut(true).withStdErr(true);
-
-
-            try {
-                logContainerCmd.exec(new LogContainerResultCallback() {
-                    @Override
-                    public void onNext(Frame item) {
-                        dockerLogs.append(item.toString());
-                        dockerLogs.append("\n");
-                    }
-                }).awaitCompletion();
-            } catch (InterruptedException e) {
-                logger.error("Interrupted while reading container log" + e.getMessage());
-            }
+        ContainerInfo info = docker.inspectContainer(id);
 
-            logger.info("Waiting for the container to stop");
-            Integer statusCode = dockerClient.waitContainerCmd(containerResponse.getId()).exec(new WaitContainerResultCallback()).awaitStatusCode();
-            logger.info("Container " + containerResponse.getId() + " exited with status code " + statusCode);
+        docker.startContainer(id);
 
-            logger.info("Container logs " + dockerLogs.toString());
-        }
+        String command[] = parser.getExecutionCommand().split(" ");
 
-        if (ServerSettings.isSettingDefined("data.parser.delete.container") &&
-                Boolean.parseBoolean(ServerSettings.getSetting("data.parser.delete.container"))) {
-            dockerClient.removeContainerCmd(containerResponse.getId()).exec();
-            logger.info("Successfully removed container with id " + containerResponse.getId());
-        }
+        logger.info("Starting container with id " + id);
+
+        ExecCreation execCreation = docker.execCreate(
+                id, command, com.spotify.docker.client.DockerClient.ExecCreateParam.attachStdout(),
+                com.spotify.docker.client.DockerClient.ExecCreateParam.attachStderr());
+        LogStream output = docker.execStart(execCreation.id());
+        String execOutput = output.readFully();
+
+        logger.info("Container output " + execOutput);
 
+        String commandVerif[] = {"sh", "-c", "ls /opt/outputs"};
+        execCreation = docker.execCreate(
+                id, commandVerif, com.spotify.docker.client.DockerClient.ExecCreateParam.attachStdout(),
+                com.spotify.docker.client.DockerClient.ExecCreateParam.attachStderr());
+        output = docker.execStart(execCreation.id());
+        execOutput = output.readFully();
+
+        logger.info("Verification output " + execOutput);
+
+        logger.info("Waiting for the container to stop");
+        docker.killContainer(id);
+        docker.removeContainer(id);
+        docker.close();
+        logger.info("Container {} successfully removed", id);
     }
 
     private StorageResourceAdaptor getStorageResourceAdaptor(String storageResourceId, AdaptorSupport adaptorSupport) throws TaskOnFailException, TException, AgentException {
@@ -336,8 +362,11 @@ public class DataParsingTask extends AbstractTask {
             StoragePreference gatewayStoragePreference = getRegistryServiceClient().getGatewayStoragePreference(gatewayId, parsingTaskOutput.getStorageResourceId());
             StorageResourceDescription storageResource = getRegistryServiceClient().getStorageResource(parsingTaskOutput.getStorageResourceId());
 
-            String remoteFileRoot = gatewayStoragePreference.getFileSystemRootLocation();
-            remoteFilePath = remoteFileRoot + (remoteFileRoot.endsWith(File.separator) ? "" : File.separator) + remoteFilePath;
+            ProcessModel processModel = getRegistryServiceClient().getProcess(processId);
+
+            String remoteFileRoot = processModel.getExperimentDataDir();
+            remoteFilePath = Paths.get(remoteFileRoot, remoteFilePath).toString();
+
             StorageResourceAdaptor storageResourceAdaptor = getStorageResourceAdaptor(parsingTaskOutput.getStorageResourceId(), adaptorSupport);
             storageResourceAdaptor.createDirectory(new File(remoteFilePath).getParent(), true);
             storageResourceAdaptor.uploadFile(localFilePath, remoteFilePath);
@@ -467,4 +496,20 @@ public class DataParsingTask extends AbstractTask {
     public void setLocalDataDir(String localDataDir) {
         this.localDataDir = localDataDir;
     }
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+    public Integer getOutputVersion() {
+        return outputVersion;
+    }
+
+    public void setOutputVersion(Integer outputVersion) {
+        this.outputVersion = outputVersion;
+    }
 }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ParsingTriggeringTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ParsingTriggeringTask.java
index dc1f157..4c012d5 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ParsingTriggeringTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ParsingTriggeringTask.java
@@ -6,6 +6,7 @@ import org.apache.airavata.helix.impl.task.AiravataTask;
 import org.apache.airavata.helix.impl.task.TaskContext;
 import org.apache.airavata.helix.task.api.TaskHelper;
 import org.apache.airavata.helix.task.api.annotation.TaskDef;
+import org.apache.airavata.helix.task.api.annotation.TaskParam;
 import org.apache.helix.task.TaskResult;
 import org.apache.kafka.clients.producer.*;
 import org.apache.kafka.common.serialization.StringSerializer;
@@ -23,6 +24,9 @@ public class ParsingTriggeringTask extends AiravataTask {
 
     private static Producer<String, ProcessCompletionMessage> producer;
 
+    @TaskParam(name = "Output Version")
+    private Integer outputVersion;
+
     private void createProducer() throws ApplicationSettingsException {
 
         if (producer == null) {
@@ -55,6 +59,7 @@ public class ParsingTriggeringTask extends AiravataTask {
         completionMessage.setExperimentId(getExperimentId());
         completionMessage.setProcessId(getProcessId());
         completionMessage.setGatewayId(getGatewayId());
+        completionMessage.setOutputVersion(outputVersion);
 
         try {
             createProducer();
@@ -69,4 +74,12 @@ public class ParsingTriggeringTask extends AiravataTask {
     public void onCancel(TaskContext taskContext) {
 
     }
+
+    public Integer getOutputVersion() {
+        return outputVersion;
+    }
+
+    public void setOutputVersion(Integer outputVersion) {
+        this.outputVersion = outputVersion;
+    }
 }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ProcessCompletionMessage.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ProcessCompletionMessage.java
index f53e33c..ff7c8d5 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ProcessCompletionMessage.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/ProcessCompletionMessage.java
@@ -4,6 +4,7 @@ public class ProcessCompletionMessage {
     private String processId;
     private String experimentId;
     private String gatewayId;
+    private int outputVersion; // This is for multiple outs in sweeping jobs
 
     public String getProcessId() {
         return processId;
@@ -28,4 +29,12 @@ public class ProcessCompletionMessage {
     public void setGatewayId(String gatewayId) {
         this.gatewayId = gatewayId;
     }
+
+    public int getOutputVersion() {
+        return outputVersion;
+    }
+
+    public void setOutputVersion(int outputVersion) {
+        this.outputVersion = outputVersion;
+    }
 }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageDeserializer.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageDeserializer.java
index bb317c6..19d4130 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageDeserializer.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageDeserializer.java
@@ -19,6 +19,7 @@ public class ProcessCompletionMessageDeserializer implements Deserializer<Proces
         message.setProcessId(parts[0]);
         message.setExperimentId(parts[1]);
         message.setGatewayId(parts[2]);
+        message.setOutputVersion(Integer.parseInt(parts[3]));
         return message;
     }
 
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageSerializer.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageSerializer.java
index 8204f65..ad49b74 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageSerializer.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/parsing/kafka/ProcessCompletionMessageSerializer.java
@@ -14,7 +14,7 @@ public class ProcessCompletionMessageSerializer implements Serializer<ProcessCom
 
     @Override
     public byte[] serialize(String topic, ProcessCompletionMessage data) {
-        String serialized = data.getProcessId() + ";" + data.getExperimentId() + ";" + data.getGatewayId();
+        String serialized = data.getProcessId() + ";" + data.getExperimentId() + ";" + data.getGatewayId() + ";" + data.getOutputVersion();
         return serialized.getBytes();
     }
 
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
index a5d9d74..4a28bf9 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java
@@ -166,9 +166,9 @@ public class OutputDataStagingTask extends DataStagingTask {
                 }
                 if (!destinationURIs.isEmpty()) {
                     if (processOutput.getType() == DataType.URI) {
-                        saveExperimentOutput(processOutput.getName(), destinationURIs.get(0).toString());
+                        saveExperimentOutput(processOutput.getName(), destinationURIs.get(0).toString(), 0);
                     } else if (processOutput.getType() == DataType.URI_COLLECTION) {
-                        saveExperimentOutputCollection(processOutput.getName(), destinationURIs.stream().map(URI::toString).collect(Collectors.toList()));
+                        saveExperimentOutputCollection(processOutput.getName(), destinationURIs.stream().map(URI::toString).collect(Collectors.toList()), 0);
                     }
                 }
                 return onSuccess("Output data staging task " + getTaskId() + " successfully completed");
@@ -178,7 +178,7 @@ public class OutputDataStagingTask extends DataStagingTask {
                 assert processOutput != null;
                 boolean transferred = transferFileToStorage(sourceURI.getPath(), destinationURI.getPath(), sourceFileName, adaptor, storageResourceAdaptor);
                 if (transferred) {
-                    saveExperimentOutput(processOutput.getName(), destinationURI.toString());
+                    saveExperimentOutput(processOutput.getName(), destinationURI.toString(), 0);
                 } else {
                     logger.warn("File " + sourceFileName + " did not transfer");
                 }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/SweepingOutputDataStagingTask.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/SweepingOutputDataStagingTask.java
index 4f2b000..69cb89b 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/SweepingOutputDataStagingTask.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/SweepingOutputDataStagingTask.java
@@ -71,7 +71,7 @@ public class SweepingOutputDataStagingTask extends DataStagingTask {
             URI destinationURI = new URI("file", getTaskContext().getStorageResourceLoginUserName(),
                     storageResource.getHostName(), 22, destPath, null, null);
             if (transferred) {
-                saveExperimentOutput(processOutput.getName(), destinationURI.toString());
+                saveExperimentOutput(processOutput.getName(), destinationURI.toString(), getJobIndex());
             } else {
                 logger.warn("File " + sourcePath + " did not transfer");
             }
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/ParserWorkflowManager.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/ParserWorkflowManager.java
index 772206c..0afd08c 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/ParserWorkflowManager.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/ParserWorkflowManager.java
@@ -64,8 +64,18 @@ public class ParserWorkflowManager extends WorkflowManager {
 
     public static void main(String[] args) throws Exception {
         ParserWorkflowManager manager = new ParserWorkflowManager();
-        manager.init();
-        manager.runConsumer();
+        manager.startServer();
+    }
+
+    public void startServer() throws Exception {
+        init();
+        new Thread(() -> {
+            try {
+                runConsumer();
+            } catch (Exception e) {
+                logger.error("Server exited with error ", e);
+            }
+        }).start();
     }
 
     private void init() throws Exception {
@@ -184,6 +194,8 @@ public class ParserWorkflowManager extends WorkflowManager {
         parsingTask.setGatewayId(completionMessage.getGatewayId());
         parsingTask.setParserId(parserInfo.getId());
         parsingTask.setLocalDataDir("/tmp");
+        parsingTask.setProcessId(completionMessage.getProcessId());
+        parsingTask.setOutputVersion(completionMessage.getOutputVersion());
         try {
             parsingTask.setGroupResourceProfileId(registryClient.getProcess(completionMessage.getProcessId()).getGroupResourceProfileId());
         } catch (TException e) {
@@ -212,12 +224,13 @@ public class ParserWorkflowManager extends WorkflowManager {
                 String applicationOutputName = templateInput.getApplicationOutputName();
                 try {
                     ExperimentModel experiment = registryClient.getExperiment(completionMessage.getExperimentId());
+                    List<OutputDataObjectType> experimentOutputsForJob = registryClient.getExperimentOutputsForJob(completionMessage.getExperimentId(), completionMessage.getOutputVersion());
                     Optional<OutputDataObjectType> expOutputData;
                     if (applicationOutputName.contains("*")) {
-                        expOutputData = experiment.getExperimentOutputs().stream()
+                        expOutputData = experimentOutputsForJob.stream()
                                 .filter(outputDataObjectType -> isWildcardMatch(outputDataObjectType.getName(),applicationOutputName)).findFirst();
                     } else {
-                        expOutputData = experiment.getExperimentOutputs().stream()
+                        expOutputData = experimentOutputsForJob.stream()
                                 .filter(outputDataObjectType -> outputDataObjectType.getName().equals(applicationOutputName)).findFirst();
                     }
                     if (expOutputData.isPresent()) {
@@ -318,6 +331,8 @@ public class ParserWorkflowManager extends WorkflowManager {
                 parsingTask.setGatewayId(completionMessage.getGatewayId());
                 parsingTask.setParserId(childParserInfo.getId());
                 parsingTask.setLocalDataDir("/tmp");
+                parentTask.setProcessId(completionMessage.getProcessId());
+                parentTask.setOutputVersion(completionMessage.getOutputVersion());
                 try {
                     parsingTask.setGroupResourceProfileId(registryClient.getProcess(completionMessage.getProcessId()).getGroupResourceProfileId());
                 } catch (TException e) {
diff --git a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
index ed70de9..5146372 100644
--- a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
+++ b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PostWorkflowManager.java
@@ -127,12 +127,14 @@ public class PostWorkflowManager extends WorkflowManager {
 
                 logger.info("Last known state of job " + jobModel.getJobId() + " is " + currentJobStatus.name());
 
+                /*
                 if (!JobStateValidator.isValid(currentJobStatus, jobStatusResult.getState())) {
                     logger.warn("Job state of " + jobStatusResult.getJobId() + " is not valid. Previous state " +
                             currentJobStatus + ", new state " + jobStatusResult.getState());
                     return true;
                 }
 
+                 */
                 String gateway = experimentModel.getGatewayId();
                 String processId = processModel.getProcessId();
                 String experimentId = experimentModel.getExperimentId();
@@ -173,7 +175,7 @@ public class PostWorkflowManager extends WorkflowManager {
 
                         logger.info("Job " + jobStatusResult.getJobId() + " was completed");
 
-                        if (experimentModel.getSweepCount() == 0) {
+                        if (experimentModel.getSweepCount() == 1) {
                             executePostWorkflow(processId, gateway, false, 0, false, false);
                         } else {
 
@@ -325,6 +327,8 @@ public class PostWorkflowManager extends WorkflowManager {
         parsingTriggeringTask.setProcessId(processModel.getProcessId());
         parsingTriggeringTask.setTaskId("Parsing-Triggering-Task");
         parsingTriggeringTask.setSkipTaskStatusPublish(true);
+        parsingTriggeringTask.setOutputVersion(jobIndex);
+
         if (allTasks.size() > 0) {
             allTasks.get(allTasks.size() - 1).setNextTask(new OutPort(parsingTriggeringTask.getTaskId(), parsingTriggeringTask));
         }
diff --git a/modules/ide-integration/pom.xml b/modules/ide-integration/pom.xml
index ed040f7..7fd92b7 100644
--- a/modules/ide-integration/pom.xml
+++ b/modules/ide-integration/pom.xml
@@ -57,6 +57,28 @@
             <groupId>org.apache.airavata</groupId>
             <artifactId>profile-service-server</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-databind</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-annotations</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jboss.resteasy</groupId>
+                    <artifactId>resteasy-client</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jboss.resteasy</groupId>
+                    <artifactId>resteasy-jackson2-provider</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
diff --git a/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobEngineStarter.java b/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobEngineStarter.java
index cc15a11..5c4cd91 100644
--- a/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobEngineStarter.java
+++ b/modules/ide-integration/src/main/java/org/apache/airavata/ide/integration/JobEngineStarter.java
@@ -5,6 +5,7 @@ import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.helix.core.AbstractTask;
 import org.apache.airavata.helix.impl.controller.HelixController;
 import org.apache.airavata.helix.impl.participant.GlobalParticipant;
+import org.apache.airavata.helix.impl.workflow.ParserWorkflowManager;
 import org.apache.airavata.helix.impl.workflow.PostWorkflowManager;
 import org.apache.airavata.helix.impl.workflow.PreWorkflowManager;
 import org.apache.airavata.monitor.email.EmailBasedMonitor;
@@ -41,6 +42,10 @@ public class JobEngineStarter {
         GlobalParticipant participant = new GlobalParticipant(taskClasses, null);
         participant.startServer();
 
+        System.out.println("Starting Parser Workflow Manager .......");
+        ParserWorkflowManager parserWorkflowManager = new ParserWorkflowManager();
+        parserWorkflowManager.startServer();
+
         System.out.println("Starting Pre Workflow Manager .......");
 
         PreWorkflowManager preWorkflowManager = new PreWorkflowManager();
diff --git a/modules/ide-integration/src/main/resources/airavata-server.properties b/modules/ide-integration/src/main/resources/airavata-server.properties
index c0d3e56..be864c8 100644
--- a/modules/ide-integration/src/main/resources/airavata-server.properties
+++ b/modules/ide-integration/src/main/resources/airavata-server.properties
@@ -266,7 +266,7 @@ kafka.broker.topic=monitoring-data
 ###########################################################################
 # Job Monitor related properties
 ###########################################################################
-enable.realtime.monitor=False
+enable.realtime.monitor=True
 job.monitor.broker.publisher.id=AiravataMonitorPublisher
 job.monitor.broker.topic=monitoring-data
 email.based.monitor.host=imap.gmail.com
@@ -290,3 +290,14 @@ thrift.client.pool.abandoned.removal.enabled=true
 pre.workflow.manager.loadbalance.clusters=false
 post.workflow.manager.loadbalance.clusters=false
 
+realtime.monitor.broker.url=localhost:9092
+realtime.monitor.broker.consumer.group=sweepingjobsgrp
+realtime.monitor.broker.topic=sweepingjobs
+job.status.publish.endpoint=http://localhost:8082/topics/sweepingjobs
+
+kafka.parsing.broker.url=airavata.host:9092
+kafka.parser.topic=parser
+kafka.parsing.broker.publisher.id=parserpub
+kafka.parser.broker.consumer.group=parserconsumers
+parser.workflow.manager.name=parser-wm
+parser.storage.resource.id=airavata.host_77116e91-f042-4d3a-ab9c-3e7b4ebcd5bd
\ No newline at end of file
diff --git a/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql b/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
index 8e7d25e..2fc8278 100644
--- a/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
+++ b/modules/ide-integration/src/main/resources/database_scripts/init/05-parameter-sweep-migration.sql
@@ -1,3 +1,5 @@
+use experiment_catalog;
+
 ALTER TABLE EXPERIMENT ADD COLUMN SWEEP_COUNT INT DEFAULT 1;
 ALTER TABLE EXPERIMENT ADD COLUMN EXECUTION_TYPE VARCHAR(50) DEFAULT 'one_pass';
 
@@ -27,4 +29,4 @@ CREATE TABLE CHILD_JOB_STATUS (
         REASON LONGTEXT,
         PRIMARY KEY (STATUS_ID, CHILD_JOB_ID),
         FOREIGN KEY (CHILD_JOB_ID) REFERENCES CHILD_JOB(CHILD_JOB_ID) ON DELETE CASCADE
-)ENGINE=InnoDB DEFAULT CHARSET=latin1;
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentOutputRepository.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentOutputRepository.java
index 702e02d..c83f294 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentOutputRepository.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentOutputRepository.java
@@ -70,4 +70,10 @@ public class ExperimentOutputRepository extends ExpCatAbstractRepository<OutputD
         return experimentModel.getExperimentOutputs();
     }
 
+    public List<OutputDataObjectType> getExperimentOutputsForJob(String experimentId, int jobIndex) throws RegistryException {
+        ExperimentRepository experimentRepository = new ExperimentRepository();
+        ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
+        return experimentModel.getExperimentOutputs();
+    }
+
 }
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 6860432..880301f 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
@@ -91,12 +91,7 @@ import org.apache.airavata.registry.core.repositories.replicacatalog.DataProduct
 import org.apache.airavata.registry.core.repositories.replicacatalog.DataReplicaLocationRepository;
 import org.apache.airavata.registry.core.repositories.workflowcatalog.WorkflowRepository;
 import org.apache.airavata.registry.core.utils.DBConstants;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.registry.cpi.ComputeResource;
-import org.apache.airavata.registry.cpi.ExpCatChildDataType;
-import org.apache.airavata.registry.cpi.ExperimentCatalogException;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.apache.airavata.registry.cpi.ResultOrderType;
+import org.apache.airavata.registry.cpi.*;
 import org.apache.airavata.registry.cpi.utils.Constants;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
@@ -732,6 +727,28 @@ public class RegistryServerHandler implements RegistryService.Iface {
         }
     }
 
+    @Override
+    public List<OutputDataObjectType> getExperimentOutputsForJob(String airavataExperimentId, int jobIndex) throws RegistryServiceException, ExperimentNotFoundException, TException {
+        List<OutputDataObjectType> experimentOutputs = getExperimentOutputs(airavataExperimentId);
+        for (OutputDataObjectType out: experimentOutputs) {
+            String[] outValues = out.getValue().split(",");
+            List<String> filteredValues = new ArrayList<>();
+            for (String outDP : outValues) {
+                try {
+                    DataProductModel dataProduct = dataProductRepository.getDataProduct(outDP);
+                    Map<String, String> productMetadata = dataProduct.getProductMetadata();
+                    if (productMetadata.containsKey("version") && Integer.parseInt(productMetadata.get("version")) == jobIndex) {
+                        filteredValues.add(outDP);
+                    }
+                } catch (ReplicaCatalogException e) {
+                    throw new RegistryServiceException("Failed to fetch data product with uri " + outDP);
+                }
+            }
+            out.setValue(String.join(",", filteredValues));
+        }
+        return experimentOutputs;
+    }
+
     /**
      * Get Intermediate Experiment Outputs
      * This method to be used when need to obtain intermediate outputs of a certain Experiment
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 7278827..0c32b1e 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
@@ -647,6 +647,29 @@ public class RegistryService {
 
     /**
      * 
+     * Get Experiment Outputs for a specific job index
+     * This method to be used when need to obtain final outputs of a certain job index of an experiment
+     * 
+     * @param authzToken
+     * 
+     * @param airavataExperimentId
+     *     Experiment ID of the experimnet you need the outputs.
+     * 
+     * @param jobIndex
+     *     Index of the required job
+     * 
+     * @return list
+     *     List of experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment.
+     * 
+     * 
+     * 
+     * @param airavataExperimentId
+     * @param jobIndex
+     */
+    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputsForJob(java.lang.String airavataExperimentId, int jobIndex) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.thrift.TException;
+
+    /**
+     * 
      * Get Intermediate Experiment Outputs
      * This method to be used when need to obtain intermediate outputs of a certain Experiment
      * 
@@ -2684,6 +2707,8 @@ public class RegistryService {
 
     public void getExperimentOutputs(java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 
+    public void getExperimentOutputsForJob(java.lang.String airavataExperimentId, int jobIndex, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
+
     public void getIntermediateOutputs(java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 
     public void getJobStatuses(java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> resultHandler) throws org.apache.thrift.TException;
@@ -3924,6 +3949,36 @@ public class RegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getExperimentOutputs failed: unknown result");
     }
 
+    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputsForJob(java.lang.String airavataExperimentId, int jobIndex) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.thrift.TException
+    {
+      send_getExperimentOutputsForJob(airavataExperimentId, jobIndex);
+      return recv_getExperimentOutputsForJob();
+    }
+
+    public void send_getExperimentOutputsForJob(java.lang.String airavataExperimentId, int jobIndex) throws org.apache.thrift.TException
+    {
+      getExperimentOutputsForJob_args args = new getExperimentOutputsForJob_args();
+      args.setAiravataExperimentId(airavataExperimentId);
+      args.setJobIndex(jobIndex);
+      sendBase("getExperimentOutputsForJob", args);
+    }
+
+    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> recv_getExperimentOutputsForJob() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.thrift.TException
+    {
+      getExperimentOutputsForJob_result result = new getExperimentOutputsForJob_result();
+      receiveBase(result, "getExperimentOutputsForJob");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      if (result.enf != null) {
+        throw result.enf;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getExperimentOutputsForJob failed: unknown result");
+    }
+
     public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getIntermediateOutputs(java.lang.String airavataExperimentId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.thrift.TException
     {
       send_getIntermediateOutputs(airavataExperimentId);
@@ -9491,6 +9546,41 @@ public class RegistryService {
       }
     }
 
+    public void getExperimentOutputsForJob(java.lang.String airavataExperimentId, int jobIndex, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getExperimentOutputsForJob_call method_call = new getExperimentOutputsForJob_call(airavataExperimentId, jobIndex, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getExperimentOutputsForJob_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      private java.lang.String airavataExperimentId;
+      private int jobIndex;
+      public getExperimentOutputsForJob_call(java.lang.String airavataExperimentId, int jobIndex, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> 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.airavataExperimentId = airavataExperimentId;
+        this.jobIndex = jobIndex;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getExperimentOutputsForJob", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getExperimentOutputsForJob_args args = new getExperimentOutputsForJob_args();
+        args.setAiravataExperimentId(airavataExperimentId);
+        args.setJobIndex(jobIndex);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.ExperimentNotFoundException, 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_getExperimentOutputsForJob();
+      }
+    }
+
     public void getIntermediateOutputs(java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getIntermediateOutputs_call method_call = new getIntermediateOutputs_call(airavataExperimentId, resultHandler, this, ___protocolFactory, ___transport);
@@ -15240,6 +15330,7 @@ public class RegistryService {
       processMap.put("updateResourceScheduleing", new updateResourceScheduleing());
       processMap.put("getExperimentStatus", new getExperimentStatus());
       processMap.put("getExperimentOutputs", new getExperimentOutputs());
+      processMap.put("getExperimentOutputsForJob", new getExperimentOutputsForJob());
       processMap.put("getIntermediateOutputs", new getIntermediateOutputs());
       processMap.put("getJobStatuses", new getJobStatuses());
       processMap.put("addExperimentProcessOutputs", new addExperimentProcessOutputs());
@@ -16206,6 +16297,32 @@ public class RegistryService {
       }
     }
 
+    public static class getExperimentOutputsForJob<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getExperimentOutputsForJob_args> {
+      public getExperimentOutputsForJob() {
+        super("getExperimentOutputsForJob");
+      }
+
+      public getExperimentOutputsForJob_args getEmptyArgsInstance() {
+        return new getExperimentOutputsForJob_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getExperimentOutputsForJob_result getResult(I iface, getExperimentOutputsForJob_args args) throws org.apache.thrift.TException {
+        getExperimentOutputsForJob_result result = new getExperimentOutputsForJob_result();
+        try {
+          result.success = iface.getExperimentOutputsForJob(args.airavataExperimentId, args.jobIndex);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        } catch (org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+          result.enf = enf;
+        }
+        return result;
+      }
+    }
+
     public static class getIntermediateOutputs<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getIntermediateOutputs_args> {
       public getIntermediateOutputs() {
         super("getIntermediateOutputs");
@@ -20319,6 +20436,7 @@ public class RegistryService {
       processMap.put("updateResourceScheduleing", new updateResourceScheduleing());
       processMap.put("getExperimentStatus", new getExperimentStatus());
       processMap.put("getExperimentOutputs", new getExperimentOutputs());
+      processMap.put("getExperimentOutputsForJob", new getExperimentOutputsForJob());
       processMap.put("getIntermediateOutputs", new getIntermediateOutputs());
       processMap.put("getJobStatuses", new getJobStatuses());
       processMap.put("addExperimentProcessOutputs", new addExperimentProcessOutputs());
@@ -22613,20 +22731,20 @@ public class RegistryService {
       }
     }
 
-    public static class getIntermediateOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getIntermediateOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
-      public getIntermediateOutputs() {
-        super("getIntermediateOutputs");
+    public static class getExperimentOutputsForJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentOutputsForJob_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      public getExperimentOutputsForJob() {
+        super("getExperimentOutputsForJob");
       }
 
-      public getIntermediateOutputs_args getEmptyArgsInstance() {
-        return new getIntermediateOutputs_args();
+      public getExperimentOutputsForJob_args getEmptyArgsInstance() {
+        return new getExperimentOutputsForJob_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
           public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
-            getIntermediateOutputs_result result = new getIntermediateOutputs_result();
+            getExperimentOutputsForJob_result result = new getExperimentOutputsForJob_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22641,7 +22759,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getIntermediateOutputs_result result = new getIntermediateOutputs_result();
+            getExperimentOutputsForJob_result result = new getExperimentOutputsForJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22677,25 +22795,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getIntermediateOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
-        iface.getIntermediateOutputs(args.airavataExperimentId,resultHandler);
+      public void start(I iface, getExperimentOutputsForJob_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getExperimentOutputsForJob(args.airavataExperimentId, args.jobIndex,resultHandler);
       }
     }
 
-    public static class getJobStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobStatuses_args, java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> {
-      public getJobStatuses() {
-        super("getJobStatuses");
+    public static class getIntermediateOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getIntermediateOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      public getIntermediateOutputs() {
+        super("getIntermediateOutputs");
       }
 
-      public getJobStatuses_args getEmptyArgsInstance() {
-        return new getJobStatuses_args();
+      public getIntermediateOutputs_args getEmptyArgsInstance() {
+        return new getIntermediateOutputs_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> 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<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>>() { 
-          public void onComplete(java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> o) {
-            getJobStatuses_result result = new getJobStatuses_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) {
+            getIntermediateOutputs_result result = new getIntermediateOutputs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22710,7 +22828,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJobStatuses_result result = new getJobStatuses_result();
+            getIntermediateOutputs_result result = new getIntermediateOutputs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -22746,281 +22864,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJobStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> resultHandler) throws org.apache.thrift.TException {
-        iface.getJobStatuses(args.airavataExperimentId,resultHandler);
-      }
-    }
-
-    public static class addExperimentProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addExperimentProcessOutputs_args, Void> {
-      public addExperimentProcessOutputs() {
-        super("addExperimentProcessOutputs");
-      }
-
-      public addExperimentProcessOutputs_args getEmptyArgsInstance() {
-        return new addExperimentProcessOutputs_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) {
-            addExperimentProcessOutputs_result result = new addExperimentProcessOutputs_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            addExperimentProcessOutputs_result result = new addExperimentProcessOutputs_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, addExperimentProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addExperimentProcessOutputs(args.outputType, args.outputs, args.id,resultHandler);
-      }
-    }
-
-    public static class addErrors<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addErrors_args, Void> {
-      public addErrors() {
-        super("addErrors");
-      }
-
-      public addErrors_args getEmptyArgsInstance() {
-        return new addErrors_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) {
-            addErrors_result result = new addErrors_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            addErrors_result result = new addErrors_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, addErrors_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addErrors(args.errorType, args.errorModel, args.id,resultHandler);
-      }
-    }
-
-    public static class addTaskStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTaskStatus_args, Void> {
-      public addTaskStatus() {
-        super("addTaskStatus");
-      }
-
-      public addTaskStatus_args getEmptyArgsInstance() {
-        return new addTaskStatus_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) {
-            addTaskStatus_result result = new addTaskStatus_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            addTaskStatus_result result = new addTaskStatus_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, addTaskStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addTaskStatus(args.taskStatus, args.taskId,resultHandler);
-      }
-    }
-
-    public static class addProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessStatus_args, Void> {
-      public addProcessStatus() {
-        super("addProcessStatus");
-      }
-
-      public addProcessStatus_args getEmptyArgsInstance() {
-        return new addProcessStatus_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) {
-            addProcessStatus_result result = new addProcessStatus_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            addProcessStatus_result result = new addProcessStatus_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, addProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addProcessStatus(args.processStatus, args.processId,resultHandler);
+      public void start(I iface, getIntermediateOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getIntermediateOutputs(args.airavataExperimentId,resultHandler);
       }
     }
 
-    public static class updateProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcessStatus_args, Void> {
-      public updateProcessStatus() {
-        super("updateProcessStatus");
+    public static class getJobStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobStatuses_args, java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> {
+      public getJobStatuses() {
+        super("getJobStatuses");
       }
 
-      public updateProcessStatus_args getEmptyArgsInstance() {
-        return new updateProcessStatus_args();
+      public getJobStatuses_args getEmptyArgsInstance() {
+        return new getJobStatuses_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> 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) {
-            updateProcessStatus_result result = new updateProcessStatus_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>>() { 
+          public void onComplete(java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> o) {
+            getJobStatuses_result result = new getJobStatuses_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23034,74 +22897,14 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateProcessStatus_result result = new updateProcessStatus_result();
+            getJobStatuses_result result = new getJobStatuses_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, updateProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateProcessStatus(args.processStatus, args.processId,resultHandler);
-      }
-    }
-
-    public static class updateExperimentStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateExperimentStatus_args, Void> {
-      public updateExperimentStatus() {
-        super("updateExperimentStatus");
-      }
-
-      public updateExperimentStatus_args getEmptyArgsInstance() {
-        return new updateExperimentStatus_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) {
-            updateExperimentStatus_result result = new updateExperimentStatus_result();
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            updateExperimentStatus_result result = new updateExperimentStatus_result();
-            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
-              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
-              result.setRseIsSet(true);
+            } 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);
@@ -23130,25 +22933,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateExperimentStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateExperimentStatus(args.experimentStatus, args.experimentId,resultHandler);
+      public void start(I iface, getJobStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> resultHandler) throws org.apache.thrift.TException {
+        iface.getJobStatuses(args.airavataExperimentId,resultHandler);
       }
     }
 
-    public static class addJobStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addJobStatus_args, Void> {
-      public addJobStatus() {
-        super("addJobStatus");
+    public static class addExperimentProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addExperimentProcessOutputs_args, Void> {
+      public addExperimentProcessOutputs() {
+        super("addExperimentProcessOutputs");
       }
 
-      public addJobStatus_args getEmptyArgsInstance() {
-        return new addJobStatus_args();
+      public addExperimentProcessOutputs_args getEmptyArgsInstance() {
+        return new addExperimentProcessOutputs_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) {
-            addJobStatus_result result = new addJobStatus_result();
+            addExperimentProcessOutputs_result result = new addExperimentProcessOutputs_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23162,7 +22965,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addJobStatus_result result = new addJobStatus_result();
+            addExperimentProcessOutputs_result result = new addExperimentProcessOutputs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23194,25 +22997,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addJobStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addJobStatus(args.jobStatus, args.taskId, args.jobId,resultHandler);
+      public void start(I iface, addExperimentProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addExperimentProcessOutputs(args.outputType, args.outputs, args.id,resultHandler);
       }
     }
 
-    public static class addJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addJob_args, Void> {
-      public addJob() {
-        super("addJob");
+    public static class addErrors<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addErrors_args, Void> {
+      public addErrors() {
+        super("addErrors");
       }
 
-      public addJob_args getEmptyArgsInstance() {
-        return new addJob_args();
+      public addErrors_args getEmptyArgsInstance() {
+        return new addErrors_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) {
-            addJob_result result = new addJob_result();
+            addErrors_result result = new addErrors_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23226,7 +23029,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addJob_result result = new addJob_result();
+            addErrors_result result = new addErrors_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23258,25 +23061,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addJob_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addJob(args.jobModel, args.processId,resultHandler);
+      public void start(I iface, addErrors_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addErrors(args.errorType, args.errorModel, args.id,resultHandler);
       }
     }
 
-    public static class addChildJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJob_args, Void> {
-      public addChildJob() {
-        super("addChildJob");
+    public static class addTaskStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTaskStatus_args, Void> {
+      public addTaskStatus() {
+        super("addTaskStatus");
       }
 
-      public addChildJob_args getEmptyArgsInstance() {
-        return new addChildJob_args();
+      public addTaskStatus_args getEmptyArgsInstance() {
+        return new addTaskStatus_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) {
-            addChildJob_result result = new addChildJob_result();
+            addTaskStatus_result result = new addTaskStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23290,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;
-            addChildJob_result result = new addChildJob_result();
+            addTaskStatus_result result = new addTaskStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23322,26 +23125,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addChildJob_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addChildJob(args.jobModel,resultHandler);
+      public void start(I iface, addTaskStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addTaskStatus(args.taskStatus, args.taskId,resultHandler);
       }
     }
 
-    public static class getChildJobsOfJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildJobsOfJob_args, java.util.List<org.apache.airavata.model.job.ChildJobModel>> {
-      public getChildJobsOfJob() {
-        super("getChildJobsOfJob");
+    public static class addProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessStatus_args, Void> {
+      public addProcessStatus() {
+        super("addProcessStatus");
       }
 
-      public getChildJobsOfJob_args getEmptyArgsInstance() {
-        return new getChildJobsOfJob_args();
+      public addProcessStatus_args getEmptyArgsInstance() {
+        return new addProcessStatus_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      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.ChildJobModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.job.ChildJobModel> o) {
-            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addProcessStatus_result result = new addProcessStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23355,7 +23157,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
+            addProcessStatus_result result = new addProcessStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23387,25 +23189,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getChildJobsOfJob_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getChildJobsOfJob(args.parentJobId, args.parentTaskId,resultHandler);
+      public void start(I iface, addProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addProcessStatus(args.processStatus, args.processId,resultHandler);
       }
     }
 
-    public static class addChildJobStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJobStatus_args, Void> {
-      public addChildJobStatus() {
-        super("addChildJobStatus");
+    public static class updateProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcessStatus_args, Void> {
+      public updateProcessStatus() {
+        super("updateProcessStatus");
       }
 
-      public addChildJobStatus_args getEmptyArgsInstance() {
-        return new addChildJobStatus_args();
+      public updateProcessStatus_args getEmptyArgsInstance() {
+        return new updateProcessStatus_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) {
-            addChildJobStatus_result result = new addChildJobStatus_result();
+            updateProcessStatus_result result = new updateProcessStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23419,7 +23221,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addChildJobStatus_result result = new addChildJobStatus_result();
+            updateProcessStatus_result result = new updateProcessStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23451,26 +23253,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addChildJobStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addChildJobStatus(args.jobStatus, args.childJobId,resultHandler);
+      public void start(I iface, updateProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateProcessStatus(args.processStatus, args.processId,resultHandler);
       }
     }
 
-    public static class addProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcess_args, java.lang.String> {
-      public addProcess() {
-        super("addProcess");
+    public static class updateExperimentStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateExperimentStatus_args, Void> {
+      public updateExperimentStatus() {
+        super("updateExperimentStatus");
       }
 
-      public addProcess_args getEmptyArgsInstance() {
-        return new addProcess_args();
+      public updateExperimentStatus_args getEmptyArgsInstance() {
+        return new updateExperimentStatus_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addProcess_result result = new addProcess_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateExperimentStatus_result result = new updateExperimentStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23484,7 +23285,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addProcess_result result = new addProcess_result();
+            updateExperimentStatus_result result = new updateExperimentStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23516,25 +23317,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addProcess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addProcess(args.processModel, args.experimentId,resultHandler);
+      public void start(I iface, updateExperimentStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateExperimentStatus(args.experimentStatus, args.experimentId,resultHandler);
       }
     }
 
-    public static class updateProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcess_args, Void> {
-      public updateProcess() {
-        super("updateProcess");
+    public static class addJobStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addJobStatus_args, Void> {
+      public addJobStatus() {
+        super("addJobStatus");
       }
 
-      public updateProcess_args getEmptyArgsInstance() {
-        return new updateProcess_args();
+      public addJobStatus_args getEmptyArgsInstance() {
+        return new addJobStatus_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) {
-            updateProcess_result result = new updateProcess_result();
+            addJobStatus_result result = new addJobStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23548,7 +23349,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateProcess_result result = new updateProcess_result();
+            addJobStatus_result result = new addJobStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23580,26 +23381,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateProcess_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateProcess(args.processModel, args.processId,resultHandler);
+      public void start(I iface, addJobStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addJobStatus(args.jobStatus, args.taskId, args.jobId,resultHandler);
       }
     }
 
-    public static class addTask<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTask_args, java.lang.String> {
-      public addTask() {
-        super("addTask");
+    public static class addJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addJob_args, Void> {
+      public addJob() {
+        super("addJob");
       }
 
-      public addTask_args getEmptyArgsInstance() {
-        return new addTask_args();
+      public addJob_args getEmptyArgsInstance() {
+        return new addJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            addTask_result result = new addTask_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addJob_result result = new addJob_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23613,7 +23413,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addTask_result result = new addTask_result();
+            addJob_result result = new addJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23645,26 +23445,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addTask_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.addTask(args.taskModel, args.processId,resultHandler);
+      public void start(I iface, addJob_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addJob(args.jobModel, args.processId,resultHandler);
       }
     }
 
-    public static class getUserConfigurationData<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserConfigurationData_args, org.apache.airavata.model.experiment.UserConfigurationDataModel> {
-      public getUserConfigurationData() {
-        super("getUserConfigurationData");
+    public static class addChildJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJob_args, Void> {
+      public addChildJob() {
+        super("addChildJob");
       }
 
-      public getUserConfigurationData_args getEmptyArgsInstance() {
-        return new getUserConfigurationData_args();
+      public addChildJob_args getEmptyArgsInstance() {
+        return new addChildJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel>() { 
-          public void onComplete(org.apache.airavata.model.experiment.UserConfigurationDataModel o) {
-            getUserConfigurationData_result result = new getUserConfigurationData_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addChildJob_result result = new addChildJob_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23678,7 +23477,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserConfigurationData_result result = new getUserConfigurationData_result();
+            addChildJob_result result = new addChildJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23710,25 +23509,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getUserConfigurationData_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserConfigurationData(args.experimentId,resultHandler);
+      public void start(I iface, addChildJob_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addChildJob(args.jobModel,resultHandler);
       }
     }
 
-    public static class getProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcess_args, org.apache.airavata.model.process.ProcessModel> {
-      public getProcess() {
-        super("getProcess");
+    public static class getChildJobsOfJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildJobsOfJob_args, java.util.List<org.apache.airavata.model.job.ChildJobModel>> {
+      public getChildJobsOfJob() {
+        super("getChildJobsOfJob");
       }
 
-      public getProcess_args getEmptyArgsInstance() {
-        return new getProcess_args();
+      public getChildJobsOfJob_args getEmptyArgsInstance() {
+        return new getChildJobsOfJob_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel>() { 
-          public void onComplete(org.apache.airavata.model.process.ProcessModel o) {
-            getProcess_result result = new getProcess_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.job.ChildJobModel> o) {
+            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23743,7 +23542,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcess_result result = new getProcess_result();
+            getChildJobsOfJob_result result = new getChildJobsOfJob_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23775,26 +23574,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcess_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcess(args.processId,resultHandler);
+      public void start(I iface, getChildJobsOfJob_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.ChildJobModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getChildJobsOfJob(args.parentJobId, args.parentTaskId,resultHandler);
       }
     }
 
-    public static class getProcessList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessList_args, java.util.List<org.apache.airavata.model.process.ProcessModel>> {
-      public getProcessList() {
-        super("getProcessList");
+    public static class addChildJobStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addChildJobStatus_args, Void> {
+      public addChildJobStatus() {
+        super("addChildJobStatus");
       }
 
-      public getProcessList_args getEmptyArgsInstance() {
-        return new getProcessList_args();
+      public addChildJobStatus_args getEmptyArgsInstance() {
+        return new addChildJobStatus_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<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.process.ProcessModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessModel> o) {
-            getProcessList_result result = new getProcessList_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            addChildJobStatus_result result = new addChildJobStatus_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23808,7 +23606,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessList_result result = new getProcessList_result();
+            addChildJobStatus_result result = new addChildJobStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23840,25 +23638,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessList(args.experimentId,resultHandler);
+      public void start(I iface, addChildJobStatus_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addChildJobStatus(args.jobStatus, args.childJobId,resultHandler);
       }
     }
 
-    public static class getProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessStatus_args, org.apache.airavata.model.status.ProcessStatus> {
-      public getProcessStatus() {
-        super("getProcessStatus");
+    public static class addProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcess_args, java.lang.String> {
+      public addProcess() {
+        super("addProcess");
       }
 
-      public getProcessStatus_args getEmptyArgsInstance() {
-        return new getProcessStatus_args();
+      public addProcess_args getEmptyArgsInstance() {
+        return new addProcess_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<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.status.ProcessStatus>() { 
-          public void onComplete(org.apache.airavata.model.status.ProcessStatus o) {
-            getProcessStatus_result result = new getProcessStatus_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addProcess_result result = new addProcess_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23873,7 +23671,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessStatus_result result = new getProcessStatus_result();
+            addProcess_result result = new addProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23905,27 +23703,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessStatus(args.processId,resultHandler);
+      public void start(I iface, addProcess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addProcess(args.processModel, args.experimentId,resultHandler);
       }
     }
 
-    public static class isJobExist<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isJobExist_args, java.lang.Boolean> {
-      public isJobExist() {
-        super("isJobExist");
+    public static class updateProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProcess_args, Void> {
+      public updateProcess() {
+        super("updateProcess");
       }
 
-      public isJobExist_args getEmptyArgsInstance() {
-        return new isJobExist_args();
+      public updateProcess_args getEmptyArgsInstance() {
+        return new updateProcess_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<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.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            isJobExist_result result = new isJobExist_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateProcess_result result = new updateProcess_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -23939,7 +23735,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isJobExist_result result = new isJobExist_result();
+            updateProcess_result result = new updateProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -23971,25 +23767,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, isJobExist_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isJobExist(args.queryType, args.id,resultHandler);
+      public void start(I iface, updateProcess_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateProcess(args.processModel, args.processId,resultHandler);
       }
     }
 
-    public static class getJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJob_args, org.apache.airavata.model.job.JobModel> {
-      public getJob() {
-        super("getJob");
+    public static class addTask<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addTask_args, java.lang.String> {
+      public addTask() {
+        super("addTask");
       }
 
-      public getJob_args getEmptyArgsInstance() {
-        return new getJob_args();
+      public addTask_args getEmptyArgsInstance() {
+        return new addTask_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.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.job.JobModel>() { 
-          public void onComplete(org.apache.airavata.model.job.JobModel o) {
-            getJob_result result = new getJob_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addTask_result result = new addTask_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24004,7 +23800,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJob_result result = new getJob_result();
+            addTask_result result = new addTask_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24036,25 +23832,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJob_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getJob(args.queryType, args.id,resultHandler);
+      public void start(I iface, addTask_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.addTask(args.taskModel, args.processId,resultHandler);
       }
     }
 
-    public static class getJobs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobs_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
-      public getJobs() {
-        super("getJobs");
+    public static class getUserConfigurationData<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserConfigurationData_args, org.apache.airavata.model.experiment.UserConfigurationDataModel> {
+      public getUserConfigurationData() {
+        super("getUserConfigurationData");
       }
 
-      public getJobs_args getEmptyArgsInstance() {
-        return new getJobs_args();
+      public getUserConfigurationData_args getEmptyArgsInstance() {
+        return new getUserConfigurationData_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.job.JobModel> o) {
-            getJobs_result result = new getJobs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel>() { 
+          public void onComplete(org.apache.airavata.model.experiment.UserConfigurationDataModel o) {
+            getUserConfigurationData_result result = new getUserConfigurationData_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24069,7 +23865,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getJobs_result result = new getJobs_result();
+            getUserConfigurationData_result result = new getUserConfigurationData_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24101,25 +23897,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getJobs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getJobs(args.queryType, args.id,resultHandler);
+      public void start(I iface, getUserConfigurationData_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.UserConfigurationDataModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserConfigurationData(args.experimentId,resultHandler);
       }
     }
 
-    public static class getProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
-      public getProcessOutputs() {
-        super("getProcessOutputs");
+    public static class getProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcess_args, org.apache.airavata.model.process.ProcessModel> {
+      public getProcess() {
+        super("getProcess");
       }
 
-      public getProcessOutputs_args getEmptyArgsInstance() {
-        return new getProcessOutputs_args();
+      public getProcess_args getEmptyArgsInstance() {
+        return new getProcess_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<org.apache.airavata.model.process.ProcessModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
-            getProcessOutputs_result result = new getProcessOutputs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel>() { 
+          public void onComplete(org.apache.airavata.model.process.ProcessModel o) {
+            getProcess_result result = new getProcess_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24134,7 +23930,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessOutputs_result result = new getProcessOutputs_result();
+            getProcess_result result = new getProcess_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24166,25 +23962,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessOutputs(args.processId,resultHandler);
+      public void start(I iface, getProcess_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.process.ProcessModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcess(args.processId,resultHandler);
       }
     }
 
-    public static class getProcessWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessWorkflows_args, java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> {
-      public getProcessWorkflows() {
-        super("getProcessWorkflows");
+    public static class getProcessList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessList_args, java.util.List<org.apache.airavata.model.process.ProcessModel>> {
+      public getProcessList() {
+        super("getProcessList");
       }
 
-      public getProcessWorkflows_args getEmptyArgsInstance() {
-        return new getProcessWorkflows_args();
+      public getProcessList_args getEmptyArgsInstance() {
+        return new getProcessList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessWorkflow> o) {
-            getProcessWorkflows_result result = new getProcessWorkflows_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.process.ProcessModel> o) {
+            getProcessList_result result = new getProcessList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24199,7 +23995,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getProcessWorkflows_result result = new getProcessWorkflows_result();
+            getProcessList_result result = new getProcessList_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24231,25 +24027,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getProcessWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessWorkflow>> resultHandler) throws org.apache.thrift.TException {
-        iface.getProcessWorkflows(args.processId,resultHandler);
+      public void start(I iface, getProcessList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.process.ProcessModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessList(args.experimentId,resultHandler);
       }
     }
 
-    public static class addProcessWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessWorkflow_args, Void> {
-      public addProcessWorkflow() {
-        super("addProcessWorkflow");
+    public static class getProcessStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessStatus_args, org.apache.airavata.model.status.ProcessStatus> {
+      public getProcessStatus() {
+        super("getProcessStatus");
       }
 
-      public addProcessWorkflow_args getEmptyArgsInstance() {
-        return new addProcessWorkflow_args();
+      public getProcessStatus_args getEmptyArgsInstance() {
+        return new getProcessStatus_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.status.ProcessStatus> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            addProcessWorkflow_result result = new addProcessWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus>() { 
+          public void onComplete(org.apache.airavata.model.status.ProcessStatus o) {
+            getProcessStatus_result result = new getProcessStatus_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -24263,7 +24060,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addProcessWorkflow_result result = new addProcessWorkflow_result();
+            getProcessStatus_result result = new getProcessStatus_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24295,26 +24092,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, addProcessWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.addProcessWorkflow(args.processWorkflow,resultHandler);
+      public void start(I iface, getProcessStatus_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ProcessStatus> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessStatus(args.processId,resultHandler);
       }
     }
 
-    public static class 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 isJobExist<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isJobExist_args, java.lang.Boolean> {
+      public isJobExist() {
+        super("isJobExist");
       }
 
-      public getProcessIds_args getEmptyArgsInstance() {
-        return new getProcessIds_args();
+      public isJobExist_args getEmptyArgsInstance() {
+        return new isJobExist_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) {
-            getProcessIds_result result = new getProcessIds_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            isJobExist_result result = new isJobExist_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -24328,7 +24126,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();
+            isJobExist_result result = new isJobExist_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24360,25 +24158,90 @@ 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, isJobExist_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isJobExist(args.queryType, args.id,resultHandler);
       }
     }
 
-    public static class 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 getJob<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJob_args, org.apache.airavata.model.job.JobModel> {
+      public getJob() {
+        super("getJob");
       }
 
-      public getJobDetails_args getEmptyArgsInstance() {
-        return new getJobDetails_args();
+      public getJob_args getEmptyArgsInstance() {
+        return new getJob_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel>() { 
+          public void onComplete(org.apache.airavata.model.job.JobModel o) {
+            getJob_result result = new getJob_result();
+            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;
+            getJob_result result = new getJob_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+              result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+              result.setRseIsSet(true);
+              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, getJob_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.job.JobModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getJob(args.queryType, args.id,resultHandler);
+      }
+    }
+
+    public static class getJobs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getJobs_args, java.util.List<org.apache.airavata.model.job.JobModel>> {
+      public getJobs() {
+        super("getJobs");
+      }
+
+      public getJobs_args getEmptyArgsInstance() {
+        return new getJobs_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) {
         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();
+            getJobs_result result = new getJobs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24393,15 +24256,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();
+            getJobs_result result = new getJobs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
               msg = result;
-            } else if (e instanceof org.apache.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();
@@ -24429,25 +24288,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, getJobs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getJobs(args.queryType, args.id,resultHandler);
       }
     }
 
-    public static class registerApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationModule_args, java.lang.String> {
-      public registerApplicationModule() {
-        super("registerApplicationModule");
+    public static class getProcessOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessOutputs_args, java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> {
+      public getProcessOutputs() {
+        super("getProcessOutputs");
       }
 
-      public registerApplicationModule_args getEmptyArgsInstance() {
-        return new registerApplicationModule_args();
+      public getProcessOutputs_args getEmptyArgsInstance() {
+        return new getProcessOutputs_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.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.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<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
+            getProcessOutputs_result result = new getProcessOutputs_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -24462,7 +24321,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();
+            getProcessOutputs_result result = new getProcessOutputs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -24494,25 +24353,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, getProcessOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException {
+        iface.getProcessOutputs(args.processId,resultHandler);
       }
     }
 
-    public static class 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 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 getApplicationModule_args getEmptyArgsInstance() {
-        return new getApplicationModule_args();
+      public getProcessWorkflows_args getEmptyArgsInstance() {
+        return new getProcessWorkflows_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.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<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.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);
@@ -24527,7 +24386,7 @@ 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();
+            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);
@@ -24559,27 +24418,25 @@ 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, 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 updateApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationModule_args, java.lang.Boolean> {
-      public updateApplicationModule() {
-        super("updateApplicationModule");
+    public static class addProcessWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addProcessWorkflow_args, Void> {
+      public addProcessWorkflow() {
+        super("addProcessWorkflow");
       }
 
-      public updateApplicationModule_args getEmptyArgsInstance() {
-        return new updateApplicationModule_args();
+      public addProcessWorkflow_args getEmptyArgsInstance() {
+        return new addProcessWorkflow_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<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.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateApplicationModule_result result = new updateApplicationModule_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        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) {
@@ -24593,7 +24450,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();
+            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);
@@ -24625,25 +24482,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, addProcessWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.addProcessWorkflow(args.processWorkflow,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 getProcessIds<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProcessIds_args, java.util.List<java.lang.String>> {
+      public getProcessIds() {
+        super("getProcessIds");
       }
 
-      public getAllAppModules_args getEmptyArgsInstance() {
-        return new getAllAppModules_args();
+      public getProcessIds_args getEmptyArgsInstance() {
+        return new getProcessIds_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<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<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<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);
@@ -24658,7 +24515,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();
+            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);
@@ -24690,25 +24547,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, 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 getAccessibleAppModules<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleAppModules_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> {
-      public getAccessibleAppModules() {
-        super("getAccessibleAppModules");
+    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 getAccessibleAppModules_args getEmptyArgsInstance() {
-        return new getAccessibleAppModules_args();
+      public getJobDetails_args getEmptyArgsInstance() {
+        return new getJobDetails_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<java.util.List<org.apache.airavata.model.job.JobModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> o) {
-            getAccessibleAppModules_result result = new getAccessibleAppModules_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);
@@ -24723,11 +24580,15 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAccessibleAppModules_result result = new getAccessibleAppModules_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();
@@ -24755,27 +24616,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAccessibleAppModules_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAccessibleAppModules(args.gatewayId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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 deleteApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationModule_args, java.lang.Boolean> {
-      public deleteApplicationModule() {
-        super("deleteApplicationModule");
+    public static class registerApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationModule_args, java.lang.String> {
+      public registerApplicationModule() {
+        super("registerApplicationModule");
       }
 
-      public deleteApplicationModule_args getEmptyArgsInstance() {
-        return new deleteApplicationModule_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) {
-            deleteApplicationModule_result result = new deleteApplicationModule_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) {
@@ -24789,7 +24649,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();
+            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);
@@ -24821,25 +24681,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 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 registerApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationDeployment_args, java.lang.String> {
-      public registerApplicationDeployment() {
-        super("registerApplicationDeployment");
+    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 registerApplicationDeployment_args getEmptyArgsInstance() {
-        return new registerApplicationDeployment_args();
+      public getApplicationModule_args getEmptyArgsInstance() {
+        return new getApplicationModule_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.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.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerApplicationDeployment_result result = new registerApplicationDeployment_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);
@@ -24854,7 +24714,7 @@ public class RegistryService {
           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();
+            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);
@@ -24886,26 +24746,27 @@ public class RegistryService {
         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, 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 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 updateApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationModule_args, java.lang.Boolean> {
+      public updateApplicationModule() {
+        super("updateApplicationModule");
       }
 
-      public getApplicationDeployment_args getEmptyArgsInstance() {
-        return new getApplicationDeployment_args();
+      public updateApplicationModule_args getEmptyArgsInstance() {
+        return new updateApplicationModule_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.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.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.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateApplicationModule_result result = new updateApplicationModule_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) {
@@ -24919,7 +24780,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();
+            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);
@@ -24951,27 +24812,26 @@ 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, 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 updateApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationDeployment_args, java.lang.Boolean> {
-      public updateApplicationDeployment() {
-        super("updateApplicationDeployment");
+    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 updateApplicationDeployment_args getEmptyArgsInstance() {
-        return new updateApplicationDeployment_args();
+      public getAllAppModules_args getEmptyArgsInstance() {
+        return new getAllAppModules_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.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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateApplicationDeployment_result result = new updateApplicationDeployment_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -24985,7 +24845,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();
+            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);
@@ -25017,27 +24877,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, 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 deleteApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationDeployment_args, java.lang.Boolean> {
-      public deleteApplicationDeployment() {
-        super("deleteApplicationDeployment");
+    public static class getAccessibleAppModules<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleAppModules_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> {
+      public getAccessibleAppModules() {
+        super("getAccessibleAppModules");
       }
 
-      public deleteApplicationDeployment_args getEmptyArgsInstance() {
-        return new deleteApplicationDeployment_args();
+      public getAccessibleAppModules_args getEmptyArgsInstance() {
+        return new getAccessibleAppModules_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.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.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteApplicationDeployment_result result = new deleteApplicationDeployment_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) {
+            getAccessibleAppModules_result result = new getAccessibleAppModules_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) {
@@ -25051,7 +24910,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();
+            getAccessibleAppModules_result result = new getAccessibleAppModules_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25083,26 +24942,27 @@ 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, getAccessibleAppModules_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAccessibleAppModules(args.gatewayId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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 deleteApplicationModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationModule_args, java.lang.Boolean> {
+      public deleteApplicationModule() {
+        super("deleteApplicationModule");
       }
 
-      public getAllApplicationDeployments_args getEmptyArgsInstance() {
-        return new getAllApplicationDeployments_args();
+      public deleteApplicationModule_args getEmptyArgsInstance() {
+        return new deleteApplicationModule_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) {
-            getAllApplicationDeployments_result result = new getAllApplicationDeployments_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteApplicationModule_result result = new deleteApplicationModule_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) {
@@ -25116,7 +24976,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();
+            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);
@@ -25148,25 +25008,25 @@ 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, 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 getAccessibleApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
-      public getAccessibleApplicationDeployments() {
-        super("getAccessibleApplicationDeployments");
+    public static class registerApplicationDeployment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationDeployment_args, java.lang.String> {
+      public registerApplicationDeployment() {
+        super("registerApplicationDeployment");
       }
 
-      public getAccessibleApplicationDeployments_args getEmptyArgsInstance() {
-        return new getAccessibleApplicationDeployments_args();
+      public registerApplicationDeployment_args getEmptyArgsInstance() {
+        return new registerApplicationDeployment_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.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.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
-            getAccessibleApplicationDeployments_result result = new getAccessibleApplicationDeployments_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;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25181,7 +25041,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAccessibleApplicationDeployments_result result = new getAccessibleApplicationDeployments_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);
@@ -25213,25 +25073,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAccessibleApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAccessibleApplicationDeployments(args.gatewayId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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 getAccessibleApplicationDeploymentsForAppModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleApplicationDeploymentsForAppModule_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
-      public getAccessibleApplicationDeploymentsForAppModule() {
-        super("getAccessibleApplicationDeploymentsForAppModule");
+    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 getAccessibleApplicationDeploymentsForAppModule_args getEmptyArgsInstance() {
-        return new getAccessibleApplicationDeploymentsForAppModule_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) {
-            getAccessibleApplicationDeploymentsForAppModule_result result = new getAccessibleApplicationDeploymentsForAppModule_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);
@@ -25246,7 +25106,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAccessibleApplicationDeploymentsForAppModule_result result = new getAccessibleApplicationDeploymentsForAppModule_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);
@@ -25278,26 +25138,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAccessibleApplicationDeploymentsForAppModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAccessibleApplicationDeploymentsForAppModule(args.gatewayId, args.appModuleId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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) {
@@ -25311,7 +25172,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);
@@ -25343,26 +25204,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) {
@@ -25376,7 +25238,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);
@@ -25408,25 +25270,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);
@@ -25441,7 +25303,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);
@@ -25473,25 +25335,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 getAccessibleApplicationDeployments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleApplicationDeployments_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
+      public getAccessibleApplicationDeployments() {
+        super("getAccessibleApplicationDeployments");
       }
 
-      public getApplicationInterface_args getEmptyArgsInstance() {
-        return new getApplicationInterface_args();
+      public getAccessibleApplicationDeployments_args getEmptyArgsInstance() {
+        return new getAccessibleApplicationDeployments_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<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<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<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> o) {
+            getAccessibleApplicationDeployments_result result = new getAccessibleApplicationDeployments_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25506,7 +25368,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();
+            getAccessibleApplicationDeployments_result result = new getAccessibleApplicationDeployments_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25538,27 +25400,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, getAccessibleApplicationDeployments_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAccessibleApplicationDeployments(args.gatewayId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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 getAccessibleApplicationDeploymentsForAppModule<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAccessibleApplicationDeploymentsForAppModule_args, java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> {
+      public getAccessibleApplicationDeploymentsForAppModule() {
+        super("getAccessibleApplicationDeploymentsForAppModule");
       }
 
-      public updateApplicationInterface_args getEmptyArgsInstance() {
-        return new updateApplicationInterface_args();
+      public getAccessibleApplicationDeploymentsForAppModule_args getEmptyArgsInstance() {
+        return new getAccessibleApplicationDeploymentsForAppModule_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) {
+            getAccessibleApplicationDeploymentsForAppModule_result result = new getAccessibleApplicationDeploymentsForAppModule_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) {
@@ -25572,7 +25433,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();
+            getAccessibleApplicationDeploymentsForAppModule_result result = new getAccessibleApplicationDeploymentsForAppModule_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -25604,27 +25465,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, getAccessibleApplicationDeploymentsForAppModule_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAccessibleApplicationDeploymentsForAppModule(args.gatewayId, args.appModuleId, args.accessibleAppDeploymentIds, args.accessibleComputeResourceIds,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 getAppModuleDeployedResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAppModuleDeployedResources_args, java.util.List<java.lang.String>> {
+      public getAppModuleDeployedResources() {
+        super("getAppModuleDeployedResources");
       }
 
-      public deleteApplicationInterface_args getEmptyArgsInstance() {
-        return new deleteApplicationInterface_args();
+      public getAppModuleDeployedResources_args getEmptyArgsInstance() {
+        return new getAppModuleDeployedResources_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<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.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAppModuleDeployedResources_result result = new getAppModuleDeployedResources_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) {
@@ -25638,7 +25498,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();
+            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);
@@ -25670,25 +25530,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, 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 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 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 getAllApplicationInterfaceNames_args getEmptyArgsInstance() {
-        return new getAllApplicationInterfaceNames_args();
+      public getApplicationDeployments_args getEmptyArgsInstance() {
+        return new getApplicationDeployments_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.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.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<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;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25703,7 +25563,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();
+            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);
@@ -25735,25 +25595,25 @@ 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, 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 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 registerApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerApplicationInterface_args, java.lang.String> {
+      public registerApplicationInterface() {
+        super("registerApplicationInterface");
       }
 
-      public getAllApplicationInterfaces_args getEmptyArgsInstance() {
-        return new getAllApplicationInterfaces_args();
+      public registerApplicationInterface_args getEmptyArgsInstance() {
+        return new registerApplicationInterface_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.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.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.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerApplicationInterface_result result = new registerApplicationInterface_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -25768,7 +25628,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();
+            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);
@@ -25800,25 +25660,25 @@ 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, 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 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 getApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getApplicationInterface_args, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> {
+      public getApplicationInterface() {
+        super("getApplicationInterface");
       }
 
-      public getApplicationInputs_args getEmptyArgsInstance() {
-        return new getApplicationInputs_args();
+      public getApplicationInterface_args getEmptyArgsInstance() {
+        return new getApplicationInterface_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<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.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<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);
@@ -25833,7 +25693,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();
+            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);
@@ -25865,26 +25725,27 @@ 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, 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 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 updateApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateApplicationInterface_args, java.lang.Boolean> {
+      public updateApplicationInterface() {
+        super("updateApplicationInterface");
       }
 
-      public getApplicationOutputs_args getEmptyArgsInstance() {
-        return new getApplicationOutputs_args();
+      public updateApplicationInterface_args getEmptyArgsInstance() {
+        return new updateApplicationInterface_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> o) {
-            getApplicationOutputs_result result = new getApplicationOutputs_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) {
@@ -25898,7 +25759,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();
+            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);
@@ -25930,26 +25791,27 @@ 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, 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 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 deleteApplicationInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteApplicationInterface_args, java.lang.Boolean> {
+      public deleteApplicationInterface() {
+        super("deleteApplicationInterface");
       }
 
-      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
-        return new getAvailableAppInterfaceComputeResources_args();
+      public deleteApplicationInterface_args getEmptyArgsInstance() {
+        return new deleteApplicationInterface_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) {
-            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_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) {
@@ -25963,7 +25825,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();
+            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);
@@ -25995,25 +25857,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, 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 registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, java.lang.String> {
-      public registerComputeResource() {
-        super("registerComputeResource");
+    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 registerComputeResource_args getEmptyArgsInstance() {
-        return new registerComputeResource_args();
+      public getAllApplicationInterfaceNames_args getEmptyArgsInstance() {
+        return new getAllApplicationInterfaceNames_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) {
-            registerComputeResource_result result = new registerComputeResource_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);
@@ -26028,7 +25890,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();
+            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);
@@ -26060,25 +25922,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, 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 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 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 getComputeResource_args getEmptyArgsInstance() {
-        return new getComputeResource_args();
+      public getAllApplicationInterfaces_args getEmptyArgsInstance() {
+        return new getAllApplicationInterfaces_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.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<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.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);
@@ -26093,7 +25955,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();
+            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);
@@ -26125,25 +25987,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, 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 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 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 getAllComputeResourceNames_args getEmptyArgsInstance() {
-        return new getAllComputeResourceNames_args();
+      public getApplicationInputs_args getEmptyArgsInstance() {
+        return new getApplicationInputs_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.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.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();
+        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);
@@ -26158,7 +26020,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();
+            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);
@@ -26190,27 +26052,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, 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 updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, java.lang.Boolean> {
-      public updateComputeResource() {
-        super("updateComputeResource");
+    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 updateComputeResource_args getEmptyArgsInstance() {
-        return new updateComputeResource_args();
+      public getApplicationOutputs_args getEmptyArgsInstance() {
+        return new getApplicationOutputs_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.application.io.OutputDataObjectType>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateComputeResource_result result = new updateComputeResource_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -26224,7 +26085,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();
+            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);
@@ -26256,27 +26117,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, 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 deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, java.lang.Boolean> {
-      public deleteComputeResource() {
-        super("deleteComputeResource");
+    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 deleteComputeResource_args getEmptyArgsInstance() {
-        return new deleteComputeResource_args();
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_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.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.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteComputeResource_result result = new deleteComputeResource_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) {
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_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) {
@@ -26290,7 +26150,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();
+            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);
@@ -26322,25 +26182,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, 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 registerStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerStorageResource_args, java.lang.String> {
-      public registerStorageResource() {
-        super("registerStorageResource");
+    public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, java.lang.String> {
+      public registerComputeResource() {
+        super("registerComputeResource");
       }
 
-      public registerStorageResource_args getEmptyArgsInstance() {
-        return new registerStorageResource_args();
+      public registerComputeResource_args getEmptyArgsInstance() {
+        return new registerComputeResource_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) {
-            registerStorageResource_result result = new registerStorageResource_result();
+            registerComputeResource_result result = new registerComputeResource_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26355,7 +26215,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();
+            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);
@@ -26387,25 +26247,25 @@ 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, 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 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 getComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getComputeResource_args, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> {
+      public getComputeResource() {
+        super("getComputeResource");
       }
 
-      public getStorageResource_args getEmptyArgsInstance() {
-        return new getStorageResource_args();
+      public getComputeResource_args getEmptyArgsInstance() {
+        return new getComputeResource_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<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<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<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;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26420,7 +26280,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();
+            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);
@@ -26452,25 +26312,25 @@ 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, 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 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 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 getAllStorageResourceNames_args getEmptyArgsInstance() {
-        return new getAllStorageResourceNames_args();
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_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) {
-            getAllStorageResourceNames_result result = new getAllStorageResourceNames_result();
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26485,7 +26345,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();
+            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);
@@ -26517,25 +26377,25 @@ 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, 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 updateStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateStorageResource_args, java.lang.Boolean> {
-      public updateStorageResource() {
-        super("updateStorageResource");
+    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, java.lang.Boolean> {
+      public updateComputeResource() {
+        super("updateComputeResource");
       }
 
-      public updateStorageResource_args getEmptyArgsInstance() {
-        return new updateStorageResource_args();
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_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) {
-            updateStorageResource_result result = new updateStorageResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26551,7 +26411,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();
+            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);
@@ -26583,25 +26443,25 @@ 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, 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 deleteStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteStorageResource_args, java.lang.Boolean> {
-      public deleteStorageResource() {
-        super("deleteStorageResource");
+    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, java.lang.Boolean> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
       }
 
-      public deleteStorageResource_args getEmptyArgsInstance() {
-        return new deleteStorageResource_args();
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_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) {
-            deleteStorageResource_result result = new deleteStorageResource_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -26617,7 +26477,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();
+            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);
@@ -26649,25 +26509,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, 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 addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, java.lang.String> {
-      public addLocalSubmissionDetails() {
-        super("addLocalSubmissionDetails");
+    public static class registerStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerStorageResource_args, java.lang.String> {
+      public registerStorageResource() {
+        super("registerStorageResource");
       }
 
-      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new addLocalSubmissionDetails_args();
+      public registerStorageResource_args getEmptyArgsInstance() {
+        return new registerStorageResource_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) {
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            registerStorageResource_result result = new registerStorageResource_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -26682,7 +26542,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();
+            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);
@@ -26714,27 +26574,26 @@ 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, 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 updateLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalSubmissionDetails_args, java.lang.Boolean> {
-      public updateLocalSubmissionDetails() {
-        super("updateLocalSubmissionDetails");
+    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 updateLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateLocalSubmissionDetails_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) {
-            updateLocalSubmissionDetails_result result = new updateLocalSubmissionDetails_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) {
@@ -26748,7 +26607,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();
+            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);
@@ -26780,25 +26639,25 @@ 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, 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 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 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 getLocalJobSubmission_args getEmptyArgsInstance() {
-        return new getLocalJobSubmission_args();
+      public getAllStorageResourceNames_args getEmptyArgsInstance() {
+        return new getAllStorageResourceNames_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.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<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.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);
@@ -26813,7 +26672,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();
+            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);
@@ -26845,26 +26704,27 @@ 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, 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 addSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHJobSubmissionDetails_args, java.lang.String> {
-      public addSSHJobSubmissionDetails() {
-        super("addSSHJobSubmissionDetails");
+    public static class updateStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateStorageResource_args, java.lang.Boolean> {
+      public updateStorageResource() {
+        super("updateStorageResource");
       }
 
-      public addSSHJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addSSHJobSubmissionDetails_args();
+      public updateStorageResource_args getEmptyArgsInstance() {
+        return new updateStorageResource_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) {
-            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateStorageResource_result result = new updateStorageResource_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) {
@@ -26878,7 +26738,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();
+            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);
@@ -26910,26 +26770,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, 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 addSSHForkJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHForkJobSubmissionDetails_args, java.lang.String> {
-      public addSSHForkJobSubmissionDetails() {
-        super("addSSHForkJobSubmissionDetails");
+    public static class deleteStorageResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteStorageResource_args, java.lang.Boolean> {
+      public deleteStorageResource() {
+        super("deleteStorageResource");
       }
 
-      public addSSHForkJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addSSHForkJobSubmissionDetails_args();
+      public deleteStorageResource_args getEmptyArgsInstance() {
+        return new deleteStorageResource_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) {
+            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) {
@@ -26943,7 +26804,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();
+            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);
@@ -26975,25 +26836,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, 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 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 addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, java.lang.String> {
+      public addLocalSubmissionDetails() {
+        super("addLocalSubmissionDetails");
       }
 
-      public getSSHJobSubmission_args getEmptyArgsInstance() {
-        return new getSSHJobSubmission_args();
+      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
+        return new addLocalSubmissionDetails_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<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.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<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27008,7 +26869,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();
+            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);
@@ -27040,26 +26901,27 @@ 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, 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 addUNICOREJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUNICOREJobSubmissionDetails_args, java.lang.String> {
-      public addUNICOREJobSubmissionDetails() {
-        super("addUNICOREJobSubmissionDetails");
+    public static class updateLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalSubmissionDetails_args, java.lang.Boolean> {
+      public updateLocalSubmissionDetails() {
+        super("updateLocalSubmissionDetails");
       }
 
-      public addUNICOREJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addUNICOREJobSubmissionDetails_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) {
-            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_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) {
@@ -27073,7 +26935,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();
+            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);
@@ -27105,25 +26967,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, 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 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 getLocalJobSubmission<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalJobSubmission_args, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> {
+      public getLocalJobSubmission() {
+        super("getLocalJobSubmission");
       }
 
-      public getUnicoreJobSubmission_args getEmptyArgsInstance() {
-        return new getUnicoreJobSubmission_args();
+      public getLocalJobSubmission_args getEmptyArgsInstance() {
+        return new getLocalJobSubmission_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<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.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<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);
@@ -27138,7 +27000,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();
+            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);
@@ -27170,25 +27032,25 @@ 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, 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 addCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addCloudJobSubmissionDetails_args, java.lang.String> {
-      public addCloudJobSubmissionDetails() {
-        super("addCloudJobSubmissionDetails");
+    public static class addSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHJobSubmissionDetails_args, java.lang.String> {
+      public addSSHJobSubmissionDetails() {
+        super("addSSHJobSubmissionDetails");
       }
 
-      public addCloudJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new addCloudJobSubmissionDetails_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) {
-            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_result();
+            addSSHJobSubmissionDetails_result result = new addSSHJobSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27203,7 +27065,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();
+            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);
@@ -27235,25 +27097,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, 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 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 addSSHForkJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSSHForkJobSubmissionDetails_args, java.lang.String> {
+      public addSSHForkJobSubmissionDetails() {
+        super("addSSHForkJobSubmissionDetails");
       }
 
-      public getCloudJobSubmission_args getEmptyArgsInstance() {
-        return new getCloudJobSubmission_args();
+      public addSSHForkJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addSSHForkJobSubmissionDetails_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<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.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<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);
@@ -27268,7 +27130,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();
+            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);
@@ -27300,27 +27162,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, 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 updateSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSSHJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateSSHJobSubmissionDetails() {
-        super("updateSSHJobSubmissionDetails");
+    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 updateSSHJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateSSHJobSubmissionDetails_args();
+      public getSSHJobSubmission_args getEmptyArgsInstance() {
+        return new getSSHJobSubmission_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.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<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_result();
+        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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -27334,7 +27195,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();
+            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);
@@ -27366,27 +27227,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, 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 updateCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateCloudJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateCloudJobSubmissionDetails() {
-        super("updateCloudJobSubmissionDetails");
+    public static class addUNICOREJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUNICOREJobSubmissionDetails_args, java.lang.String> {
+      public addUNICOREJobSubmissionDetails() {
+        super("addUNICOREJobSubmissionDetails");
       }
 
-      public updateCloudJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateCloudJobSubmissionDetails_args();
+      public addUNICOREJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addUNICOREJobSubmissionDetails_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) {
-            updateCloudJobSubmissionDetails_result result = new updateCloudJobSubmissionDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addUNICOREJobSubmissionDetails_result result = new addUNICOREJobSubmissionDetails_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) {
@@ -27400,7 +27260,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();
+            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);
@@ -27432,27 +27292,26 @@ 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, 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 updateUnicoreJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreJobSubmissionDetails_args, java.lang.Boolean> {
-      public updateUnicoreJobSubmissionDetails() {
-        super("updateUnicoreJobSubmissionDetails");
+    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 updateUnicoreJobSubmissionDetails_args getEmptyArgsInstance() {
-        return new updateUnicoreJobSubmissionDetails_args();
+      public getUnicoreJobSubmission_args getEmptyArgsInstance() {
+        return new getUnicoreJobSubmission_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.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<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -27466,7 +27325,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();
+            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);
@@ -27498,25 +27357,25 @@ 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, 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 addLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalDataMovementDetails_args, java.lang.String> {
-      public addLocalDataMovementDetails() {
-        super("addLocalDataMovementDetails");
+    public static class addCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addCloudJobSubmissionDetails_args, java.lang.String> {
+      public addCloudJobSubmissionDetails() {
+        super("addCloudJobSubmissionDetails");
       }
 
-      public addLocalDataMovementDetails_args getEmptyArgsInstance() {
-        return new addLocalDataMovementDetails_args();
+      public addCloudJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new addCloudJobSubmissionDetails_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) {
-            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
+            addCloudJobSubmissionDetails_result result = new addCloudJobSubmissionDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27531,7 +27390,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();
+            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);
@@ -27563,27 +27422,26 @@ 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, 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 updateLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalDataMovementDetails_args, java.lang.Boolean> {
-      public updateLocalDataMovementDetails() {
-        super("updateLocalDataMovementDetails");
+    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 updateLocalDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateLocalDataMovementDetails_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) {
-            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_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) {
@@ -27597,7 +27455,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();
+            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);
@@ -27629,26 +27487,27 @@ 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 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 getLocalDataMovement<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLocalDataMovement_args, org.apache.airavata.model.data.movement.LOCALDataMovement> {
-      public getLocalDataMovement() {
-        super("getLocalDataMovement");
+    public static class updateSSHJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSSHJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateSSHJobSubmissionDetails() {
+        super("updateSSHJobSubmissionDetails");
       }
 
-      public getLocalDataMovement_args getEmptyArgsInstance() {
-        return new getLocalDataMovement_args();
+      public updateSSHJobSubmissionDetails_args getEmptyArgsInstance() {
+        return new updateSSHJobSubmissionDetails_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) {
+      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.data.movement.LOCALDataMovement>() { 
-          public void onComplete(org.apache.airavata.model.data.movement.LOCALDataMovement o) {
-            getLocalDataMovement_result result = new getLocalDataMovement_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateSSHJobSubmissionDetails_result result = new updateSSHJobSubmissionDetails_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) {
@@ -27662,7 +27521,7 @@ public class RegistryService {
           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();
+            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);
@@ -27694,26 +27553,27 @@ public class RegistryService {
         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, 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 addSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSCPDataMovementDetails_args, java.lang.String> {
-      public addSCPDataMovementDetails() {
-        super("addSCPDataMovementDetails");
+    public static class updateCloudJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateCloudJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateCloudJobSubmissionDetails() {
+        super("updateCloudJobSubmissionDetails");
       }
 
-      public addSCPDataMovementDetails_args getEmptyArgsInstance() {
-        return new addSCPDataMovementDetails_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) {
-            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_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) {
@@ -27727,7 +27587,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();
+            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);
@@ -27759,25 +27619,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, 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 updateSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSCPDataMovementDetails_args, java.lang.Boolean> {
-      public updateSCPDataMovementDetails() {
-        super("updateSCPDataMovementDetails");
+    public static class updateUnicoreJobSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreJobSubmissionDetails_args, java.lang.Boolean> {
+      public updateUnicoreJobSubmissionDetails() {
+        super("updateUnicoreJobSubmissionDetails");
       }
 
-      public updateSCPDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateSCPDataMovementDetails_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) {
-            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_result();
+            updateUnicoreJobSubmissionDetails_result result = new updateUnicoreJobSubmissionDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -27793,7 +27653,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();
+            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);
@@ -27825,25 +27685,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, 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 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 addLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalDataMovementDetails_args, java.lang.String> {
+      public addLocalDataMovementDetails() {
+        super("addLocalDataMovementDetails");
       }
 
-      public getSCPDataMovement_args getEmptyArgsInstance() {
-        return new getSCPDataMovement_args();
+      public addLocalDataMovementDetails_args getEmptyArgsInstance() {
+        return new addLocalDataMovementDetails_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<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.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<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addLocalDataMovementDetails_result result = new addLocalDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -27858,7 +27718,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();
+            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);
@@ -27890,26 +27750,27 @@ 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, 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 addUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUnicoreDataMovementDetails_args, java.lang.String> {
-      public addUnicoreDataMovementDetails() {
-        super("addUnicoreDataMovementDetails");
+    public static class updateLocalDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateLocalDataMovementDetails_args, java.lang.Boolean> {
+      public updateLocalDataMovementDetails() {
+        super("updateLocalDataMovementDetails");
       }
 
-      public addUnicoreDataMovementDetails_args getEmptyArgsInstance() {
-        return new addUnicoreDataMovementDetails_args();
+      public updateLocalDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateLocalDataMovementDetails_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) {
-            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateLocalDataMovementDetails_result result = new updateLocalDataMovementDetails_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) {
@@ -27923,7 +27784,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();
+            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);
@@ -27955,27 +27816,26 @@ 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, 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 updateUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreDataMovementDetails_args, java.lang.Boolean> {
-      public updateUnicoreDataMovementDetails() {
-        super("updateUnicoreDataMovementDetails");
+    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 updateUnicoreDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateUnicoreDataMovementDetails_args();
+      public getLocalDataMovement_args getEmptyArgsInstance() {
+        return new getLocalDataMovement_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.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<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -27989,7 +27849,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();
+            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);
@@ -28021,25 +27881,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, 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 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 addSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addSCPDataMovementDetails_args, java.lang.String> {
+      public addSCPDataMovementDetails() {
+        super("addSCPDataMovementDetails");
       }
 
-      public getUnicoreDataMovement_args getEmptyArgsInstance() {
-        return new getUnicoreDataMovement_args();
+      public addSCPDataMovementDetails_args getEmptyArgsInstance() {
+        return new addSCPDataMovementDetails_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<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.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<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addSCPDataMovementDetails_result result = new addSCPDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -28054,7 +27914,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();
+            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);
@@ -28086,26 +27946,27 @@ 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, 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 addGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGridFTPDataMovementDetails_args, java.lang.String> {
-      public addGridFTPDataMovementDetails() {
-        super("addGridFTPDataMovementDetails");
+    public static class updateSCPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateSCPDataMovementDetails_args, java.lang.Boolean> {
+      public updateSCPDataMovementDetails() {
+        super("updateSCPDataMovementDetails");
       }
 
-      public addGridFTPDataMovementDetails_args getEmptyArgsInstance() {
-        return new addGridFTPDataMovementDetails_args();
+      public updateSCPDataMovementDetails_args getEmptyArgsInstance() {
+        return new updateSCPDataMovementDetails_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) {
-            addGridFTPDataMovementDetails_result result = new addGridFTPDataMovementDetails_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateSCPDataMovementDetails_result result = new updateSCPDataMovementDetails_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) {
@@ -28119,7 +27980,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();
+            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);
@@ -28151,27 +28012,26 @@ 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, 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 updateGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGridFTPDataMovementDetails_args, java.lang.Boolean> {
-      public updateGridFTPDataMovementDetails() {
-        super("updateGridFTPDataMovementDetails");
+    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 updateGridFTPDataMovementDetails_args getEmptyArgsInstance() {
-        return new updateGridFTPDataMovementDetails_args();
+      public getSCPDataMovement_args getEmptyArgsInstance() {
+        return new getSCPDataMovement_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.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<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28185,7 +28045,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();
+            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);
@@ -28217,25 +28077,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, 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 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 addUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUnicoreDataMovementDetails_args, java.lang.String> {
+      public addUnicoreDataMovementDetails() {
+        super("addUnicoreDataMovementDetails");
       }
 
-      public getGridFTPDataMovement_args getEmptyArgsInstance() {
-        return new getGridFTPDataMovement_args();
+      public addUnicoreDataMovementDetails_args getEmptyArgsInstance() {
+        return new addUnicoreDataMovementDetails_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<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.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<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            addUnicoreDataMovementDetails_result result = new addUnicoreDataMovementDetails_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -28250,7 +28110,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();
+            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);
@@ -28282,25 +28142,25 @@ 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, 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 changeJobSubmissionPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriority_args, java.lang.Boolean> {
-      public changeJobSubmissionPriority() {
-        super("changeJobSubmissionPriority");
+    public static class updateUnicoreDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUnicoreDataMovementDetails_args, java.lang.Boolean> {
+      public updateUnicoreDataMovementDetails() {
+        super("updateUnicoreDataMovementDetails");
       }
 
-      public changeJobSubmissionPriority_args getEmptyArgsInstance() {
-        return new changeJobSubmissionPriority_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) {
-            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
+            updateUnicoreDataMovementDetails_result result = new updateUnicoreDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28316,7 +28176,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();
+            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);
@@ -28348,27 +28208,26 @@ 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, 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 changeDataMovementPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriority_args, java.lang.Boolean> {
-      public changeDataMovementPriority() {
-        super("changeDataMovementPriority");
+    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 changeDataMovementPriority_args getEmptyArgsInstance() {
-        return new changeDataMovementPriority_args();
+      public getUnicoreDataMovement_args getEmptyArgsInstance() {
+        return new getUnicoreDataMovement_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.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<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            changeDataMovementPriority_result result = new changeDataMovementPriority_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -28382,7 +28241,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();
+            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);
@@ -28414,27 +28273,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, 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 changeJobSubmissionPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriorities_args, java.lang.Boolean> {
-      public changeJobSubmissionPriorities() {
-        super("changeJobSubmissionPriorities");
+    public static class addGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGridFTPDataMovementDetails_args, java.lang.String> {
+      public addGridFTPDataMovementDetails() {
+        super("addGridFTPDataMovementDetails");
       }
 
-      public changeJobSubmissionPriorities_args getEmptyArgsInstance() {
-        return new changeJobSubmissionPriorities_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) {
-            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_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) {
@@ -28448,7 +28306,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();
+            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);
@@ -28480,25 +28338,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, 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 changeDataMovementPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriorities_args, java.lang.Boolean> {
-      public changeDataMovementPriorities() {
-        super("changeDataMovementPriorities");
+    public static class updateGridFTPDataMovementDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGridFTPDataMovementDetails_args, java.lang.Boolean> {
+      public updateGridFTPDataMovementDetails() {
+        super("updateGridFTPDataMovementDetails");
       }
 
-      public changeDataMovementPriorities_args getEmptyArgsInstance() {
-        return new changeDataMovementPriorities_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) {
-            changeDataMovementPriorities_result result = new changeDataMovementPriorities_result();
+            updateGridFTPDataMovementDetails_result result = new updateGridFTPDataMovementDetails_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28514,7 +28372,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();
+            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);
@@ -28546,25 +28404,90 @@ 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, 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 deleteJobSubmissionInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteJobSubmissionInterface_args, java.lang.Boolean> {
-      public deleteJobSubmissionInterface() {
-        super("deleteJobSubmissionInterface");
+    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 deleteJobSubmissionInterface_args getEmptyArgsInstance() {
-        return new deleteJobSubmissionInterface_args();
+      public getGridFTPDataMovement_args getEmptyArgsInstance() {
+        return new getGridFTPDataMovement_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) {
+        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();
+            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;
+            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);
+              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, 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 changeJobSubmissionPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriority_args, java.lang.Boolean> {
+      public changeJobSubmissionPriority() {
+        super("changeJobSubmissionPriority");
+      }
+
+      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) {
-            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_result();
+            changeJobSubmissionPriority_result result = new changeJobSubmissionPriority_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28580,7 +28503,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();
+            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);
@@ -28612,25 +28535,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, 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 deleteDataMovementInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteDataMovementInterface_args, java.lang.Boolean> {
-      public deleteDataMovementInterface() {
-        super("deleteDataMovementInterface");
+    public static class changeDataMovementPriority<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriority_args, java.lang.Boolean> {
+      public changeDataMovementPriority() {
+        super("changeDataMovementPriority");
       }
 
-      public deleteDataMovementInterface_args getEmptyArgsInstance() {
-        return new deleteDataMovementInterface_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) {
-            deleteDataMovementInterface_result result = new deleteDataMovementInterface_result();
+            changeDataMovementPriority_result result = new changeDataMovementPriority_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28646,7 +28569,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();
+            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);
@@ -28678,26 +28601,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, 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 registerResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerResourceJobManager_args, java.lang.String> {
-      public registerResourceJobManager() {
-        super("registerResourceJobManager");
+    public static class changeJobSubmissionPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeJobSubmissionPriorities_args, java.lang.Boolean> {
+      public changeJobSubmissionPriorities() {
+        super("changeJobSubmissionPriorities");
       }
 
-      public registerResourceJobManager_args getEmptyArgsInstance() {
-        return new registerResourceJobManager_args();
+      public changeJobSubmissionPriorities_args getEmptyArgsInstance() {
+        return new changeJobSubmissionPriorities_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) {
+            changeJobSubmissionPriorities_result result = new changeJobSubmissionPriorities_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) {
@@ -28711,7 +28635,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();
+            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);
@@ -28743,25 +28667,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, 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 updateResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateResourceJobManager_args, java.lang.Boolean> {
-      public updateResourceJobManager() {
-        super("updateResourceJobManager");
+    public static class changeDataMovementPriorities<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, changeDataMovementPriorities_args, java.lang.Boolean> {
+      public changeDataMovementPriorities() {
+        super("changeDataMovementPriorities");
       }
 
-      public updateResourceJobManager_args getEmptyArgsInstance() {
-        return new updateResourceJobManager_args();
+      public changeDataMovementPriorities_args getEmptyArgsInstance() {
+        return new changeDataMovementPriorities_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();
+            changeDataMovementPriorities_result result = new changeDataMovementPriorities_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28777,7 +28701,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();
+            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);
@@ -28809,26 +28733,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, 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 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 deleteJobSubmissionInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteJobSubmissionInterface_args, java.lang.Boolean> {
+      public deleteJobSubmissionInterface() {
+        super("deleteJobSubmissionInterface");
       }
 
-      public getResourceJobManager_args getEmptyArgsInstance() {
-        return new getResourceJobManager_args();
+      public deleteJobSubmissionInterface_args getEmptyArgsInstance() {
+        return new deleteJobSubmissionInterface_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) {
+            deleteJobSubmissionInterface_result result = new deleteJobSubmissionInterface_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) {
@@ -28842,7 +28767,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();
+            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);
@@ -28874,25 +28799,25 @@ 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, 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 deleteResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteResourceJobManager_args, java.lang.Boolean> {
-      public deleteResourceJobManager() {
-        super("deleteResourceJobManager");
+    public static class deleteDataMovementInterface<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteDataMovementInterface_args, java.lang.Boolean> {
+      public deleteDataMovementInterface() {
+        super("deleteDataMovementInterface");
       }
 
-      public deleteResourceJobManager_args getEmptyArgsInstance() {
-        return new deleteResourceJobManager_args();
+      public deleteDataMovementInterface_args getEmptyArgsInstance() {
+        return new deleteDataMovementInterface_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) {
-            deleteResourceJobManager_result result = new deleteResourceJobManager_result();
+            deleteDataMovementInterface_result result = new deleteDataMovementInterface_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -28908,7 +28833,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();
+            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);
@@ -28940,27 +28865,26 @@ 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, 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 deleteBatchQueue<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteBatchQueue_args, java.lang.Boolean> {
-      public deleteBatchQueue() {
-        super("deleteBatchQueue");
+    public static class registerResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerResourceJobManager_args, java.lang.String> {
+      public registerResourceJobManager() {
+        super("registerResourceJobManager");
       }
 
-      public deleteBatchQueue_args getEmptyArgsInstance() {
-        return new deleteBatchQueue_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) {
-            deleteBatchQueue_result result = new deleteBatchQueue_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) {
@@ -28974,7 +28898,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();
+            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);
@@ -29006,26 +28930,27 @@ 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, 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 registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, java.lang.String> {
-      public registerGatewayResourceProfile() {
-        super("registerGatewayResourceProfile");
+    public static class updateResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateResourceJobManager_args, java.lang.Boolean> {
+      public updateResourceJobManager() {
+        super("updateResourceJobManager");
       }
 
-      public registerGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new registerGatewayResourceProfile_args();
+      public updateResourceJobManager_args getEmptyArgsInstance() {
+        return new updateResourceJobManager_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) {
-            registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateResourceJobManager_result result = new updateResourceJobManager_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) {
@@ -29039,7 +28964,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();
+            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);
@@ -29071,25 +28996,25 @@ 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, 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 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 getResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getResourceJobManager_args, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> {
+      public getResourceJobManager() {
+        super("getResourceJobManager");
       }
 
-      public getGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new getGatewayResourceProfile_args();
+      public getResourceJobManager_args getEmptyArgsInstance() {
+        return new getResourceJobManager_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<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<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<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);
@@ -29104,7 +29029,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();
+            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);
@@ -29136,25 +29061,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, 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 updateGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayResourceProfile_args, java.lang.Boolean> {
-      public updateGatewayResourceProfile() {
-        super("updateGatewayResourceProfile");
+    public static class deleteResourceJobManager<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteResourceJobManager_args, java.lang.Boolean> {
+      public deleteResourceJobManager() {
+        super("deleteResourceJobManager");
       }
 
-      public updateGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new updateGatewayResourceProfile_args();
+      public deleteResourceJobManager_args getEmptyArgsInstance() {
+        return new deleteResourceJobManager_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();
+            deleteResourceJobManager_result result = new deleteResourceJobManager_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -29170,7 +29095,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();
+            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);
@@ -29202,25 +29127,25 @@ 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, 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 deleteGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayResourceProfile_args, java.lang.Boolean> {
-      public deleteGatewayResourceProfile() {
-        super("deleteGatewayResourceProfile");
+    public static class deleteBatchQueue<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteBatchQueue_args, java.lang.Boolean> {
+      public deleteBatchQueue() {
+        super("deleteBatchQueue");
       }
 
-      public deleteGatewayResourceProfile_args getEmptyArgsInstance() {
-        return new deleteGatewayResourceProfile_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) {
-            deleteGatewayResourceProfile_result result = new deleteGatewayResourceProfile_result();
+            deleteBatchQueue_result result = new deleteBatchQueue_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -29236,7 +29161,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();
+            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);
@@ -29268,27 +29193,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, 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 addGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public addGatewayComputeResourcePreference() {
-        super("addGatewayComputeResourcePreference");
+    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, java.lang.String> {
+      public registerGatewayResourceProfile() {
+        super("registerGatewayResourceProfile");
       }
 
-      public addGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new addGatewayComputeResourcePreference_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) {
-            addGatewayComputeResourcePreference_result result = new addGatewayComputeResourcePreference_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) {
@@ -29302,7 +29226,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();
+            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);
@@ -29334,27 +29258,26 @@ 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, 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 addGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayStoragePreference_args, java.lang.Boolean> {
-      public addGatewayStoragePreference() {
-        super("addGatewayStoragePreference");
+    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 addGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new addGatewayStoragePreference_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) {
-            addGatewayStoragePreference_result result = new addGatewayStoragePreference_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) {
@@ -29368,7 +29291,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();
+            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);
@@ -29400,26 +29323,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, 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 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 updateGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayResourceProfile_args, java.lang.Boolean> {
+      public updateGatewayResourceProfile() {
+        super("updateGatewayResourceProfile");
       }
 
-      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGatewayComputeResourcePreference_args();
+      public updateGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new updateGatewayResourceProfile_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) {
+            updateGatewayResourceProfile_result result = new updateGatewayResourceProfile_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) {
@@ -29433,7 +29357,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();
+            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);
@@ -29465,26 +29389,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, 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 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 deleteGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayResourceProfile_args, java.lang.Boolean> {
+      public deleteGatewayResourceProfile() {
+        super("deleteGatewayResourceProfile");
       }
 
-      public getGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new getGatewayStoragePreference_args();
+      public deleteGatewayResourceProfile_args getEmptyArgsInstance() {
+        return new deleteGatewayResourceProfile_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) {
+            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) {
@@ -29498,7 +29423,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();
+            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);
@@ -29530,26 +29455,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, 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 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 addGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public addGatewayComputeResourcePreference() {
+        super("addGatewayComputeResourcePreference");
       }
 
-      public getAllGatewayComputeResourcePreferences_args getEmptyArgsInstance() {
-        return new getAllGatewayComputeResourcePreferences_args();
+      public addGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new addGatewayComputeResourcePreference_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) {
+            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) {
@@ -29563,7 +29489,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();
+            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);
@@ -29595,26 +29521,27 @@ 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, 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 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 addGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGatewayStoragePreference_args, java.lang.Boolean> {
+      public addGatewayStoragePreference() {
+        super("addGatewayStoragePreference");
       }
 
-      public getAllGatewayStoragePreferences_args getEmptyArgsInstance() {
-        return new getAllGatewayStoragePreferences_args();
+      public addGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new addGatewayStoragePreference_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<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.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<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) {
@@ -29628,7 +29555,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();
+            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);
@@ -29660,25 +29587,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, 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 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 getGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayComputeResourcePreference_args, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> {
+      public getGatewayComputeResourcePreference() {
+        super("getGatewayComputeResourcePreference");
       }
 
-      public getAllGatewayResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllGatewayResourceProfiles_args();
+      public getGatewayComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGatewayComputeResourcePreference_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.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.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.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);
@@ -29693,7 +29620,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();
+            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);
@@ -29725,27 +29652,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, 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 updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public updateGatewayComputeResourcePreference() {
-        super("updateGatewayComputeResourcePreference");
+    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 updateGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateGatewayComputeResourcePreference_args();
+      public getGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new getGatewayStoragePreference_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.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) {
-            updateGatewayComputeResourcePreference_result result = new updateGatewayComputeResourcePreference_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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -29759,7 +29685,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();
+            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);
@@ -29791,27 +29717,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, 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 updateGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayStoragePreference_args, java.lang.Boolean> {
-      public updateGatewayStoragePreference() {
-        super("updateGatewayStoragePreference");
+    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 updateGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new updateGatewayStoragePreference_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) {
-            updateGatewayStoragePreference_result result = new updateGatewayStoragePreference_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) {
@@ -29825,7 +29750,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();
+            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);
@@ -29857,27 +29782,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, 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 deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, java.lang.Boolean> {
-      public deleteGatewayComputeResourcePreference() {
-        super("deleteGatewayComputeResourcePreference");
+    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 deleteGatewayComputeResourcePreference_args getEmptyArgsInstance() {
-        return new deleteGatewayComputeResourcePreference_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) {
-            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_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) {
@@ -29891,7 +29815,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();
+            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);
@@ -29923,25 +29847,90 @@ 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, 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 deleteGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayStoragePreference_args, java.lang.Boolean> {
-      public deleteGatewayStoragePreference() {
-        super("deleteGatewayStoragePreference");
+    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 deleteGatewayStoragePreference_args getEmptyArgsInstance() {
-        return new deleteGatewayStoragePreference_args();
+      public getAllGatewayResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllGatewayResourceProfiles_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) {
+        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();
+            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;
+            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);
+              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, 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 updateGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public updateGatewayComputeResourcePreference() {
+        super("updateGatewayComputeResourcePreference");
+      }
+
+      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 {
@@ -29957,7 +29946,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();
+            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);
@@ -29989,26 +29978,27 @@ public class RegistryService {
         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 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 registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
-      public registerUserResourceProfile() {
-        super("registerUserResourceProfile");
+    public static class updateGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayStoragePreference_args, java.lang.Boolean> {
+      public updateGatewayStoragePreference() {
+        super("updateGatewayStoragePreference");
       }
 
-      public registerUserResourceProfile_args getEmptyArgsInstance() {
-        return new registerUserResourceProfile_args();
+      public updateGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new updateGatewayStoragePreference_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) {
-            registerUserResourceProfile_result result = new registerUserResourceProfile_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) {
@@ -30022,7 +30012,7 @@ public class RegistryService {
           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();
+            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);
@@ -30054,25 +30044,25 @@ 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, 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 isUserResourceProfileExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserResourceProfileExists_args, java.lang.Boolean> {
-      public isUserResourceProfileExists() {
-        super("isUserResourceProfileExists");
+    public static class deleteGatewayComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayComputeResourcePreference_args, java.lang.Boolean> {
+      public deleteGatewayComputeResourcePreference() {
+        super("deleteGatewayComputeResourcePreference");
       }
 
-      public isUserResourceProfileExists_args getEmptyArgsInstance() {
-        return new isUserResourceProfileExists_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) {
-            isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
+            deleteGatewayComputeResourcePreference_result result = new deleteGatewayComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30088,7 +30078,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isUserResourceProfileExists_result result = new isUserResourceProfileExists_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);
@@ -30120,26 +30110,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, isUserResourceProfileExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isUserResourceProfileExists(args.userId, args.gatewayID,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 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 deleteGatewayStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGatewayStoragePreference_args, java.lang.Boolean> {
+      public deleteGatewayStoragePreference() {
+        super("deleteGatewayStoragePreference");
       }
 
-      public getUserResourceProfile_args getEmptyArgsInstance() {
-        return new getUserResourceProfile_args();
+      public deleteGatewayStoragePreference_args getEmptyArgsInstance() {
+        return new deleteGatewayStoragePreference_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) {
+            deleteGatewayStoragePreference_result result = new deleteGatewayStoragePreference_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) {
@@ -30153,7 +30144,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();
+            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);
@@ -30185,27 +30176,26 @@ 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, 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 updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
-      public updateUserResourceProfile() {
-        super("updateUserResourceProfile");
+    public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
+      public registerUserResourceProfile() {
+        super("registerUserResourceProfile");
       }
 
-      public updateUserResourceProfile_args getEmptyArgsInstance() {
-        return new updateUserResourceProfile_args();
+      public registerUserResourceProfile_args getEmptyArgsInstance() {
+        return new registerUserResourceProfile_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) {
-            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+        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;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -30219,7 +30209,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();
+            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);
@@ -30251,25 +30241,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, 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 deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
-      public deleteUserResourceProfile() {
-        super("deleteUserResourceProfile");
+    public static class isUserResourceProfileExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserResourceProfileExists_args, java.lang.Boolean> {
+      public isUserResourceProfileExists() {
+        super("isUserResourceProfileExists");
       }
 
-      public deleteUserResourceProfile_args getEmptyArgsInstance() {
-        return new deleteUserResourceProfile_args();
+      public isUserResourceProfileExists_args getEmptyArgsInstance() {
+        return new isUserResourceProfileExists_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();
+            isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30285,7 +30275,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();
+            isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -30317,25 +30307,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, isUserResourceProfileExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isUserResourceProfileExists(args.userId, args.gatewayID,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 getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
+      public getUserResourceProfile() {
+        super("getUserResourceProfile");
       }
 
-      public addUser_args getEmptyArgsInstance() {
-        return new addUser_args();
+      public getUserResourceProfile_args getEmptyArgsInstance() {
+        return new getUserResourceProfile_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.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.String>() { 
-          public void onComplete(java.lang.String o) {
-            addUser_result result = new addUser_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;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -30350,15 +30340,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();
+            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);
               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();
@@ -30386,25 +30372,25 @@ 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, 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 addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
-      public addUserComputeResourcePreference() {
-        super("addUserComputeResourcePreference");
+    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
+      public updateUserResourceProfile() {
+        super("updateUserResourceProfile");
       }
 
-      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new addUserComputeResourcePreference_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) {
-            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30420,7 +30406,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();
+            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);
@@ -30452,25 +30438,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, 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 addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
-      public addUserStoragePreference() {
-        super("addUserStoragePreference");
+    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
+      public deleteUserResourceProfile() {
+        super("deleteUserResourceProfile");
       }
 
-      public addUserStoragePreference_args getEmptyArgsInstance() {
-        return new addUserStoragePreference_args();
+      public deleteUserResourceProfile_args getEmptyArgsInstance() {
+        return new deleteUserResourceProfile_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();
+            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30486,7 +30472,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();
+            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);
@@ -30518,25 +30504,25 @@ 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, 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 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 addUser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUser_args, java.lang.String> {
+      public addUser() {
+        super("addUser");
       }
 
-      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getUserComputeResourcePreference_args();
+      public addUser_args getEmptyArgsInstance() {
+        return new addUser_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.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.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.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);
@@ -30551,75 +30537,14 @@ 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();
+            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.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, 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 getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
-      public getUserStoragePreference() {
-        super("getUserStoragePreference");
-      }
-
-      public getUserStoragePreference_args getEmptyArgsInstance() {
-        return new getUserStoragePreference_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) {
-        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();
-            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;
-            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);
+            } 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);
@@ -30648,26 +30573,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) {
@@ -30681,7 +30607,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);
@@ -30713,26 +30639,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) {
@@ -30746,7 +30673,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);
@@ -30778,25 +30705,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);
@@ -30811,7 +30738,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);
@@ -30843,27 +30770,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) {
@@ -30877,7 +30803,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);
@@ -30909,27 +30835,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) {
@@ -30943,7 +30868,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);
@@ -30975,27 +30900,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) {
@@ -31009,7 +30933,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);
@@ -31041,25 +30965,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 {
@@ -31075,7 +31064,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);
@@ -31107,26 +31096,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) {
@@ -31140,7 +31130,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);
@@ -31172,25 +31162,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) {
@@ -31204,7 +31196,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);
@@ -31236,26 +31228,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 registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
-      public registerDataProduct() {
-        super("registerDataProduct");
+    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
       }
 
-      public registerDataProduct_args getEmptyArgsInstance() {
-        return new registerDataProduct_args();
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_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) {
-            registerDataProduct_result result = new registerDataProduct_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) {
@@ -31269,7 +31262,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();
+            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);
@@ -31301,25 +31294,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, 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 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 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 getDataProduct_args getEmptyArgsInstance() {
-        return new getDataProduct_args();
+      public getLatestQueueStatuses_args getEmptyArgsInstance() {
+        return new getLatestQueueStatuses_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.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.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.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);
@@ -31334,7 +31327,7 @@ 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();
+            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);
@@ -31366,26 +31359,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getDataProduct(args.dataProductUri,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 registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
-      public registerReplicaLocation() {
-        super("registerReplicaLocation");
+    public static class registerQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerQueueStatuses_args, Void> {
+      public registerQueueStatuses() {
+        super("registerQueueStatuses");
       }
 
-      public registerReplicaLocation_args getEmptyArgsInstance() {
-        return new registerReplicaLocation_args();
+      public registerQueueStatuses_args getEmptyArgsInstance() {
+        return new registerQueueStatuses_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) {
-            registerReplicaLocation_result result = new registerReplicaLocation_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            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) {
@@ -31399,7 +31391,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerReplicaLocation_result result = new registerReplicaLocation_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);
@@ -31431,25 +31423,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerReplicaLocation(args.replicaLocationModel,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 getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-      public getParentDataProduct() {
-        super("getParentDataProduct");
+    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
+      public registerDataProduct() {
+        super("registerDataProduct");
       }
 
-      public getParentDataProduct_args getEmptyArgsInstance() {
-        return new getParentDataProduct_args();
+      public registerDataProduct_args getEmptyArgsInstance() {
+        return new registerDataProduct_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) {
-            getParentDataProduct_result result = new getParentDataProduct_result();
+        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);
@@ -31464,7 +31456,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParentDataProduct_result result = new getParentDataProduct_result();
+            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);
@@ -31496,25 +31488,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getParentDataProduct(args.productUri,resultHandler);
+      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 getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
-      public getChildDataProducts() {
-        super("getChildDataProducts");
+    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 getChildDataProducts_args getEmptyArgsInstance() {
-        return new getChildDataProducts_args();
+      public getDataProduct_args getEmptyArgsInstance() {
+        return new getDataProduct_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<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<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<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
-            getChildDataProducts_result result = new getChildDataProducts_result();
+        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);
@@ -31529,7 +31521,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getChildDataProducts_result result = new getChildDataProducts_result();
+            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);
@@ -31561,25 +31553,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getChildDataProducts(args.productUri,resultHandler);
+      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getDataProduct(args.dataProductUri,resultHandler);
       }
     }
 
-    public static class searchDataProductsByName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchDataProductsByName_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
-      public searchDataProductsByName() {
-        super("searchDataProductsByName");
+    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
+      public registerReplicaLocation() {
+        super("registerReplicaLocation");
       }
 
-      public searchDataProductsByName_args getEmptyArgsInstance() {
-        return new searchDataProductsByName_args();
+      public registerReplicaLocation_args getEmptyArgsInstance() {
+        return new registerReplicaLocation_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<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<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
-            searchDataProductsByName_result result = new searchDataProductsByName_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerReplicaLocation_result result = new registerReplicaLocation_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31594,7 +31586,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            searchDataProductsByName_result result = new searchDataProductsByName_result();
+            registerReplicaLocation_result result = new registerReplicaLocation_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31626,25 +31618,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, searchDataProductsByName_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.searchDataProductsByName(args.gatewayId, args.userId, args.productName, args.limit, args.offset,resultHandler);
+      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerReplicaLocation(args.replicaLocationModel,resultHandler);
       }
     }
 
-    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
-      public createGroupResourceProfile() {
-        super("createGroupResourceProfile");
+    public static class getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+      public getParentDataProduct() {
+        super("getParentDataProduct");
       }
 
-      public createGroupResourceProfile_args getEmptyArgsInstance() {
-        return new createGroupResourceProfile_args();
+      public getParentDataProduct_args getEmptyArgsInstance() {
+        return new getParentDataProduct_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.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<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+        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) {
+            getParentDataProduct_result result = new getParentDataProduct_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31659,7 +31651,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+            getParentDataProduct_result result = new getParentDataProduct_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31691,25 +31683,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.createGroupResourceProfile(args.groupResourceProfile,resultHandler);
+      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getParentDataProduct(args.productUri,resultHandler);
       }
     }
 
-    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
-      public updateGroupResourceProfile() {
-        super("updateGroupResourceProfile");
+    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
+      public getChildDataProducts() {
+        super("getChildDataProducts");
       }
 
-      public updateGroupResourceProfile_args getEmptyArgsInstance() {
-        return new updateGroupResourceProfile_args();
+      public getChildDataProducts_args getEmptyArgsInstance() {
+        return new getChildDataProducts_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.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<Void>() { 
-          public void onComplete(Void o) {
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
+            getChildDataProducts_result result = new getChildDataProducts_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -31723,7 +31716,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+            getChildDataProducts_result result = new getChildDataProducts_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31755,25 +31748,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGroupResourceProfile(args.groupResourceProfile,resultHandler);
+      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getChildDataProducts(args.productUri,resultHandler);
       }
     }
 
-    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
-      public getGroupResourceProfile() {
-        super("getGroupResourceProfile");
+    public static class searchDataProductsByName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchDataProductsByName_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
+      public searchDataProductsByName() {
+        super("searchDataProductsByName");
       }
 
-      public getGroupResourceProfile_args getEmptyArgsInstance() {
-        return new getGroupResourceProfile_args();
+      public searchDataProductsByName_args getEmptyArgsInstance() {
+        return new searchDataProductsByName_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> 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.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.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
+            searchDataProductsByName_result result = new searchDataProductsByName_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31788,7 +31781,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+            searchDataProductsByName_result result = new searchDataProductsByName_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31820,27 +31813,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceProfile(args.groupResourceProfileId,resultHandler);
+      public void start(I iface, searchDataProductsByName_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.searchDataProductsByName(args.gatewayId, args.userId, args.productName, args.limit, args.offset,resultHandler);
       }
     }
 
-    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
-      public removeGroupResourceProfile() {
-        super("removeGroupResourceProfile");
+    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
+      public createGroupResourceProfile() {
+        super("createGroupResourceProfile");
       }
 
-      public removeGroupResourceProfile_args getEmptyArgsInstance() {
-        return new removeGroupResourceProfile_args();
+      public createGroupResourceProfile_args getEmptyArgsInstance() {
+        return new createGroupResourceProfile_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) {
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            createGroupResourceProfile_result result = new createGroupResourceProfile_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) {
@@ -31854,7 +31846,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
+            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31886,26 +31878,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupResourceProfile(args.groupResourceProfileId,resultHandler);
+      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.createGroupResourceProfile(args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
-      public getGroupResourceList() {
-        super("getGroupResourceList");
+    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
+      public updateGroupResourceProfile() {
+        super("updateGroupResourceProfile");
       }
 
-      public getGroupResourceList_args getEmptyArgsInstance() {
-        return new getGroupResourceList_args();
+      public updateGroupResourceProfile_args getEmptyArgsInstance() {
+        return new updateGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> 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.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
-            getGroupResourceList_result result = new getGroupResourceList_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -31919,7 +31910,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceList_result result = new getGroupResourceList_result();
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -31951,27 +31942,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceList(args.gatewayId, args.accessibleGroupResProfileIds,resultHandler);
+      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGroupResourceProfile(args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
-      public removeGroupComputePrefs() {
-        super("removeGroupComputePrefs");
+    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
+      public getGroupResourceProfile() {
+        super("getGroupResourceProfile");
       }
 
-      public removeGroupComputePrefs_args getEmptyArgsInstance() {
-        return new removeGroupComputePrefs_args();
+      public getGroupResourceProfile_args getEmptyArgsInstance() {
+        return new getGroupResourceProfile_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.groupresourceprofile.GroupResourceProfile> 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) {
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
+            getGroupResourceProfile_result result = new getGroupResourceProfile_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) {
@@ -31985,7 +31975,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
+            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32017,25 +32007,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputePrefs(args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceProfile(args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupComputeResourcePolicy() {
-        super("removeGroupComputeResourcePolicy");
+    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
+      public removeGroupResourceProfile() {
+        super("removeGroupResourceProfile");
       }
 
-      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupComputeResourcePolicy_args();
+      public removeGroupResourceProfile_args getEmptyArgsInstance() {
+        return new removeGroupResourceProfile_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) {
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -32051,7 +32041,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32083,27 +32073,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputeResourcePolicy(args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupResourceProfile(args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupBatchQueueResourcePolicy() {
-        super("removeGroupBatchQueueResourcePolicy");
+    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
+      public getGroupResourceList() {
+        super("getGroupResourceList");
       }
 
-      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupBatchQueueResourcePolicy_args();
+      public getGroupResourceList_args getEmptyArgsInstance() {
+        return new getGroupResourceList_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.groupresourceprofile.GroupResourceProfile>> 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) {
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
+            getGroupResourceList_result result = new getGroupResourceList_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) {
@@ -32117,7 +32106,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
+            getGroupResourceList_result result = new getGroupResourceList_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32149,26 +32138,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupBatchQueueResourcePolicy(args.resourcePolicyId,resultHandler);
+      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceList(args.gatewayId, args.accessibleGroupResProfileIds,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
-      public getGroupComputeResourcePreference() {
-        super("getGroupComputeResourcePreference");
+    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
+      public removeGroupComputePrefs() {
+        super("removeGroupComputePrefs");
       }
 
-      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePreference_args();
+      public removeGroupComputePrefs_args getEmptyArgsInstance() {
+        return new removeGroupComputePrefs_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> 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.groupresourceprofile.GroupComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_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) {
@@ -32182,7 +32172,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32214,26 +32204,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePreference(args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputePrefs(args.computeResourceId, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
-      public getGroupComputeResourcePolicy() {
-        super("getGroupComputeResourcePolicy");
+    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupComputeResourcePolicy() {
+        super("removeGroupComputeResourcePolicy");
       }
 
-      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePolicy_args();
+      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupComputeResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> 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.groupresourceprofile.ComputeResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_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) {
@@ -32247,7 +32238,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32279,26 +32270,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePolicy(args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputeResourcePolicy(args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
-      public getBatchQueueResourcePolicy() {
-        super("getBatchQueueResourcePolicy");
+    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupBatchQueueResourcePolicy() {
+        super("removeGroupBatchQueueResourcePolicy");
       }
 
-      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new getBatchQueueResourcePolicy_args();
+      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupBatchQueueResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> 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.groupresourceprofile.BatchQueueResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_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) {
@@ -32312,7 +32304,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32344,25 +32336,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getBatchQueueResourcePolicy(args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupBatchQueueResourcePolicy(args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
-      public getGroupComputeResourcePrefList() {
-        super("getGroupComputeResourcePrefList");
+    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
+      public getGroupComputeResourcePreference() {
+        super("getGroupComputeResourcePreference");
       }
 
-      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePrefList_args();
+      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> 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.groupresourceprofile.GroupComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -32377,7 +32369,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32409,25 +32401,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePrefList(args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePreference(args.computeResourceId, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
-      public getGroupBatchQueueResourcePolicyList() {
-        super("getGroupBatchQueueResourcePolicyList");
+    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
+      public getGroupComputeResourcePolicy() {
+        super("getGroupComputeResourcePolicy");
       }
 
-      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
-        return new getGroupBatchQueueResourcePolicyList_args();
+      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> 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.groupresourceprofile.BatchQueueResourcePolicy>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -32442,7 +32434,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32474,25 +32466,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupBatchQueueResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupBatchQueueResourcePolicyList(args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePolicy(args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> {
-      public getGroupComputeResourcePolicyList() {
-        super("getGroupComputeResourcePolicyList");
+    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
+      public getBatchQueueResourcePolicy() {
+        super("getBatchQueueResourcePolicy");
       }
 
-      public getGroupComputeResourcePolicyList_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePolicyList_args();
+      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new getBatchQueueResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> 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.groupresourceprofile.ComputeResourcePolicy>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> o) {
-            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -32507,7 +32499,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32539,25 +32531,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePolicyList(args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getBatchQueueResourcePolicy(args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class createGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGatewayGroups_args, Void> {
-      public createGatewayGroups() {
-        super("createGatewayGroups");
+    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
+      public getGroupComputeResourcePrefList() {
+        super("getGroupComputeResourcePrefList");
       }
 
-      public createGatewayGroups_args getEmptyArgsInstance() {
-        return new createGatewayGroups_args();
+      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePrefList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> 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) {
-            createGatewayGroups_result result = new createGatewayGroups_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -32571,15 +32564,11 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            createGatewayGroups_result result = new createGatewayGroups_result();
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_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();
@@ -32607,25 +32596,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, createGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.createGatewayGroups(args.gatewayGroups,resultHandler);
+      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePrefList(args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class updateGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayGroups_args, Void> {
-      public updateGatewayGroups() {
-        super("updateGatewayGroups");
+    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
+      public getGroupBatchQueueResourcePolicyList() {
+        super("getGroupBatchQueueResourcePolicyList");
       }
 
-      public updateGatewayGroups_args getEmptyArgsInstance() {
-        return new updateGatewayGroups_args();
+      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
+        return new getGroupBatchQueueResourcePolicyList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> 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) {
-            updateGatewayGroups_result result = new updateGatewayGroups_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -32639,7 +32629,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGatewayGroups_result result = new updateGatewayGroups_result();
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32671,27 +32661,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGatewayGroups(args.gatewayGroups,resultHandler);
+      public void start(I iface, getGroupBatchQueueResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupBatchQueueResourcePolicyList(args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class isGatewayGroupsExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isGatewayGroupsExists_args, java.lang.Boolean> {
-      public isGatewayGroupsExists() {
-        super("isGatewayGroupsExists");
+    public static class getGroupComputeResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> {
+      public getGroupComputeResourcePolicyList() {
+        super("getGroupComputeResourcePolicyList");
       }
 
-      public isGatewayGroupsExists_args getEmptyArgsInstance() {
-        return new isGatewayGroupsExists_args();
+      public getGroupComputeResourcePolicyList_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePolicyList_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.groupresourceprofile.ComputeResourcePolicy>> 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) {
-            isGatewayGroupsExists_result result = new isGatewayGroupsExists_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> o) {
+            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_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) {
@@ -32705,7 +32694,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isGatewayGroupsExists_result result = new isGatewayGroupsExists_result();
+            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32737,26 +32726,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, isGatewayGroupsExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isGatewayGroupsExists(args.gatewayId,resultHandler);
+      public void start(I iface, getGroupComputeResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePolicyList(args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayGroups_args, org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> {
-      public getGatewayGroups() {
-        super("getGatewayGroups");
+    public static class createGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGatewayGroups_args, Void> {
+      public createGatewayGroups() {
+        super("createGatewayGroups");
       }
 
-      public getGatewayGroups_args getEmptyArgsInstance() {
-        return new getGatewayGroups_args();
+      public createGatewayGroups_args getEmptyArgsInstance() {
+        return new createGatewayGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups o) {
-            getGatewayGroups_result result = new getGatewayGroups_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            createGatewayGroups_result result = new createGatewayGroups_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -32770,11 +32758,15 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGatewayGroups_result result = new getGatewayGroups_result();
+            createGatewayGroups_result result = new createGatewayGroups_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();
@@ -32802,26 +32794,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException {
-        iface.getGatewayGroups(args.gatewayId,resultHandler);
+      public void start(I iface, createGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.createGatewayGroups(args.gatewayGroups,resultHandler);
       }
     }
 
-    public static class getParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParser_args, org.apache.airavata.model.appcatalog.parser.Parser> {
-      public getParser() {
-        super("getParser");
+    public static class updateGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayGroups_args, Void> {
+      public updateGatewayGroups() {
+        super("updateGatewayGroups");
       }
 
-      public getParser_args getEmptyArgsInstance() {
-        return new getParser_args();
+      public updateGatewayGroups_args getEmptyArgsInstance() {
+        return new updateGatewayGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.Parser o) {
-            getParser_result result = new getParser_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateGatewayGroups_result result = new updateGatewayGroups_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -32835,7 +32826,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParser_result result = new getParser_result();
+            updateGatewayGroups_result result = new updateGatewayGroups_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32867,26 +32858,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParser_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> resultHandler) throws org.apache.thrift.TException {
-        iface.getParser(args.parserId, args.gatewayId,resultHandler);
+      public void start(I iface, updateGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGatewayGroups(args.gatewayGroups,resultHandler);
       }
     }
 
-    public static class saveParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParser_args, java.lang.String> {
-      public saveParser() {
-        super("saveParser");
+    public static class isGatewayGroupsExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isGatewayGroupsExists_args, java.lang.Boolean> {
+      public isGatewayGroupsExists() {
+        super("isGatewayGroupsExists");
       }
 
-      public saveParser_args getEmptyArgsInstance() {
-        return new saveParser_args();
+      public isGatewayGroupsExists_args getEmptyArgsInstance() {
+        return new isGatewayGroupsExists_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) {
-            saveParser_result result = new saveParser_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            isGatewayGroupsExists_result result = new isGatewayGroupsExists_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) {
@@ -32900,7 +32892,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            saveParser_result result = new saveParser_result();
+            isGatewayGroupsExists_result result = new isGatewayGroupsExists_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32932,25 +32924,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, saveParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.saveParser(args.parser,resultHandler);
+      public void start(I iface, isGatewayGroupsExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isGatewayGroupsExists(args.gatewayId,resultHandler);
       }
     }
 
-    public static class listAllParsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsers_args, java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> {
-      public listAllParsers() {
-        super("listAllParsers");
+    public static class getGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayGroups_args, org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> {
+      public getGatewayGroups() {
+        super("getGatewayGroups");
       }
 
-      public listAllParsers_args getEmptyArgsInstance() {
-        return new listAllParsers_args();
+      public getGatewayGroups_args getEmptyArgsInstance() {
+        return new getGatewayGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> 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.parser.Parser>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.Parser> o) {
-            listAllParsers_result result = new listAllParsers_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups o) {
+            getGatewayGroups_result result = new getGatewayGroups_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -32965,7 +32957,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            listAllParsers_result result = new listAllParsers_result();
+            getGatewayGroups_result result = new getGatewayGroups_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -32997,25 +32989,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, listAllParsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> resultHandler) throws org.apache.thrift.TException {
-        iface.listAllParsers(args.gatewayId,resultHandler);
+      public void start(I iface, getGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException {
+        iface.getGatewayGroups(args.gatewayId,resultHandler);
       }
     }
 
-    public static class removeParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParser_args, Void> {
-      public removeParser() {
-        super("removeParser");
+    public static class getParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParser_args, org.apache.airavata.model.appcatalog.parser.Parser> {
+      public getParser() {
+        super("getParser");
       }
 
-      public removeParser_args getEmptyArgsInstance() {
-        return new removeParser_args();
+      public getParser_args getEmptyArgsInstance() {
+        return new getParser_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.appcatalog.parser.Parser> 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) {
-            removeParser_result result = new removeParser_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.Parser o) {
+            getParser_result result = new getParser_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -33029,7 +33022,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeParser_result result = new removeParser_result();
+            getParser_result result = new getParser_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -33061,25 +33054,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, removeParser_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.removeParser(args.parserId, args.gatewayId,resultHandler);
+      public void start(I iface, getParser_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> resultHandler) throws org.apache.thrift.TException {
+        iface.getParser(args.parserId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getParserInput<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParserInput_args, org.apache.airavata.model.appcatalog.parser.ParserInput> {
-      public getParserInput() {
-        super("getParserInput");
+    public static class saveParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParser_args, java.lang.String> {
+      public saveParser() {
+        super("saveParser");
       }
 
-      public getParserInput_args getEmptyArgsInstance() {
-        return new getParserInput_args();
+      public saveParser_args getEmptyArgsInstance() {
+        return new saveParser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserInput> 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.parser.ParserInput>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParserInput o) {
-            getParserInput_result result = new getParserInput_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            saveParser_result result = new saveParser_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -33094,7 +33087,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParserInput_result result = new getParserInput_result();
+            saveParser_result result = new saveParser_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -33126,25 +33119,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParserInput_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserInput> resultHandler) throws org.apache.thrift.TException {
-        iface.getParserInput(args.parserInputId, args.gatewayId,resultHandler);
+      public void start(I iface, saveParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.saveParser(args.parser,resultHandler);
       }
     }
 
-    public static class getParserOutput<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParserOutput_args, org.apache.airavata.model.appcatalog.parser.ParserOutput> {
-      public getParserOutput() {
-        super("getParserOutput");
+    public static class listAllParsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsers_args, java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> {
+      public listAllParsers() {
+        super("listAllParsers");
       }
 
-      public getParserOutput_args getEmptyArgsInstance() {
-        return new getParserOutput_args();
+      public listAllParsers_args getEmptyArgsInstance() {
+        return new listAllParsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserOutput> 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.parser.Parser>> 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.parser.ParserOutput>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParserOutput o) {
-            getParserOutput_result result = new getParserOutput_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.Parser> o) {
+            listAllParsers_result result = new listAllParsers_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -33159,7 +33152,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParserOutput_result result = new getParserOutput_result();
+            listAllParsers_result result = new listAllParsers_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -33191,26 +33184,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParserOutput_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserOutput> resultHandler) throws org.apache.thrift.TException {
-        iface.getParserOutput(args.parserOutputId, args.gatewayId,resultHandler);
+      public void start(I iface, listAllParsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> resultHandler) throws org.apache.thrift.TException {
+        iface.listAllParsers(args.gatewayId,resultHandler);
       }
     }
 
-    public static class getParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplate_args, org.apache.airavata.model.appcatalog.parser.ParsingTemplate> {
-      public getParsingTemplate() {
-        super("getParsingTemplate");
+    public static class removeParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParser_args, Void> {
+      public removeParser() {
+        super("removeParser");
       }
 
-      public getParsingTemplate_args getEmptyArgsInstance() {
-        return new getParsingTemplate_args();
+      public removeParser_args getEmptyArgsInstance() {
+        return new removeParser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParsingTemplate o) {
-            getParsingTemplate_result result = new getParsingTemplate_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            removeParser_result result = new removeParser_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -33224,7 +33216,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParsingTemplate_result result = new getParsingTemplate_result();
+            removeParser_result result = new removeParser_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -33256,25 +33248,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> resultHandler) throws org.apache.thrift.TException {
-        iface.getParsingTemplate(args.templateId, args.gatewayId,resultHandler);
+      public void start(I iface, removeParser_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.removeParser(args.parserId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getParsingTemplatesForExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplatesForExperiment_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
-      public getParsingTemplatesForExperiment() {
-        super("getParsingTemplatesForExperiment");
+    public static class getParserInput<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParserInput_args, org.apache.airavata.model.appcatalog.parser.ParserInput> {
+      public getParserInput() {
+        super("getParserInput");
       }
 
-      public getParsingTemplatesForExperiment_args getEmptyArgsInstance() {
-        return new getParsingTemplatesForExperiment_args();
+      public getParserInput_args getEmptyArgsInstance() {
+        return new getParserInput_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserInput> 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.parser.ParsingTemplate>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> o) {
-            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserInput>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParserInput o) {
+            getParserInput_result result = new getParserInput_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -33289,7 +33281,7 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
+            getParserInput_result result = new getParserInput_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -33321,25 +33313,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getParsingTemplatesForExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> resultHandler) throws org.apache.thrift.TException {
-        iface.getParsingTemplatesForExperiment(args.experimentId, args.gatewayId,resultHandler);
+      public void start(I iface, getParserInput_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserInput> resultHandler) throws org.apache.thrift.TException {
+        iface.getParserInput(args.parserInputId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class saveParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParsingTemplate_args, java.lang.String> {
-      public saveParsingTemplate() {
-        super("saveParsingTemplate");
+    public static class getParserOutput<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParserOutput_args, org.apache.airavata.model.appcatalog.parser.ParserOutput> {
+      public getParserOutput() {
+        super("getParserOutput");
       }
 
-      public saveParsingTemplate_args getEmptyArgsInstance() {
-        return new saveParsingTemplate_args();
+      public getParserOutput_args getEmptyArgsInstance() {
+        return new getParserOutput_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.parser.ParserOutput> 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) {
-            saveParsingTemplate_result result = new saveParsingTemplate_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserOutput>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParserOutput o) {
+            getParserOutput_result result = new getParserOutput_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -33354,7 +33346,202 @@ public class RegistryService {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            saveParsingTemplate_result result = new saveParsingTemplate_result();
+            getParserOutput_result result = new getParserOutput_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, getParserOutput_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParserOutput> resultHandler) throws org.apache.thrift.TException {
+        iface.getParserOutput(args.parserOutputId, args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class getParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplate_args, org.apache.airavata.model.appcatalog.parser.ParsingTemplate> {
+      public getParsingTemplate() {
+        super("getParsingTemplate");
+      }
+
+      public getParsingTemplate_args getEmptyArgsInstance() {
+        return new getParsingTemplate_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> 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.parser.ParsingTemplate>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParsingTemplate o) {
+            getParsingTemplate_result result = new getParsingTemplate_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;
+            getParsingTemplate_result result = new getParsingTemplate_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, getParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> resultHandler) throws org.apache.thrift.TException {
+        iface.getParsingTemplate(args.templateId, args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class getParsingTemplatesForExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplatesForExperiment_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
+      public getParsingTemplatesForExperiment() {
+        super("getParsingTemplatesForExperiment");
+      }
+
+      public getParsingTemplatesForExperiment_args getEmptyArgsInstance() {
+        return new getParsingTemplatesForExperiment_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> 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.parser.ParsingTemplate>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> o) {
+            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_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;
+            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_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, getParsingTemplatesForExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> resultHandler) throws org.apache.thrift.TException {
+        iface.getParsingTemplatesForExperiment(args.experimentId, args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class saveParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParsingTemplate_args, java.lang.String> {
+      public saveParsingTemplate() {
+        super("saveParsingTemplate");
+      }
+
+      public saveParsingTemplate_args getEmptyArgsInstance() {
+        return new saveParsingTemplate_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) {
+            saveParsingTemplate_result result = new saveParsingTemplate_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;
+            saveParsingTemplate_result result = new saveParsingTemplate_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
               result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
               result.setRseIsSet(true);
@@ -56137,19 +56324,1000 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.experiment.ExperimentModel.class))));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.experiment.ExperimentModel.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(getUserExperiments_result.class, metaDataMap);
+    }
+
+    public getUserExperiments_result() {
+    }
+
+    public getUserExperiments_result(
+      java.util.List<org.apache.airavata.model.experiment.ExperimentModel> success,
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.success = success;
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getUserExperiments_result(getUserExperiments_result other) {
+      if (other.isSetSuccess()) {
+        java.util.List<org.apache.airavata.model.experiment.ExperimentModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.experiment.ExperimentModel>(other.success.size());
+        for (org.apache.airavata.model.experiment.ExperimentModel other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.experiment.ExperimentModel(other_element));
+        }
+        this.success = __this__success;
+      }
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public getUserExperiments_result deepCopy() {
+      return new getUserExperiments_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.rse = null;
+    }
+
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.experiment.ExperimentModel> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.experiment.ExperimentModel elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.experiment.ExperimentModel>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.experiment.ExperimentModel> getSuccess() {
+      return this.success;
+    }
+
+    public getUserExperiments_result setSuccess(java.util.List<org.apache.airavata.model.experiment.ExperimentModel> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public getUserExperiments_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 SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.util.List<org.apache.airavata.model.experiment.ExperimentModel>)value);
+        }
+        break;
+
+      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 SUCCESS:
+        return getSuccess();
+
+      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 SUCCESS:
+        return isSetSuccess();
+      case RSE:
+        return isSetRse();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
... 11727 lines suppressed ...