You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/05/17 15:02:54 UTC

[airavata] 02/02: AIRAVATA-2787 GatewayGroups model and registry API methods

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

machristie pushed a commit to branch group-based-auth
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 4eb343c65932118a92006fe7755291b5f4240af2
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu May 17 11:01:30 2018 -0400

    AIRAVATA-2787 GatewayGroups model and registry API methods
---
 .../appcatalog/gatewaygroups/GatewayGroups.java    |  680 ++
 .../entities/appcatalog/GatewayGroupsEntity.java   |  101 +
 .../appcatalog/GatewayGroupsRepository.java        |   30 +
 .../src/main/resources/META-INF/persistence.xml    |    1 +
 .../appcatalog/GatewayGroupsRepositoryTest.java    |  108 +
 .../api/service/handler/RegistryServerHandler.java |   76 +
 .../airavata/registry/api/RegistryService.java     | 8878 ++++++++++++++------
 .../component-cpis/registry-api.thrift             |   12 +
 .../data-models/airavata_data_models.thrift        |    1 +
 .../gateway_groups_model.thrift                    |   31 +
 10 files changed, 7388 insertions(+), 2530 deletions(-)

diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewaygroups/GatewayGroups.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewaygroups/GatewayGroups.java
new file mode 100644
index 0000000..17d9924
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewaygroups/GatewayGroups.java
@@ -0,0 +1,680 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewaygroups;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+public class GatewayGroups implements org.apache.thrift.TBase<GatewayGroups, GatewayGroups._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayGroups> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayGroups");
+
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField ADMINS_GROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("adminsGroupId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField READ_ONLY_ADMINS_GROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("readOnlyAdminsGroupId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField DEFAULT_GATEWAY_USERS_GROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultGatewayUsersGroupId", org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new GatewayGroupsStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new GatewayGroupsTupleSchemeFactory();
+
+  private java.lang.String gatewayId; // required
+  private java.lang.String adminsGroupId; // required
+  private java.lang.String readOnlyAdminsGroupId; // required
+  private java.lang.String defaultGatewayUsersGroupId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    GATEWAY_ID((short)1, "gatewayId"),
+    ADMINS_GROUP_ID((short)2, "adminsGroupId"),
+    READ_ONLY_ADMINS_GROUP_ID((short)3, "readOnlyAdminsGroupId"),
+    DEFAULT_GATEWAY_USERS_GROUP_ID((short)4, "defaultGatewayUsersGroupId");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 2: // ADMINS_GROUP_ID
+          return ADMINS_GROUP_ID;
+        case 3: // READ_ONLY_ADMINS_GROUP_ID
+          return READ_ONLY_ADMINS_GROUP_ID;
+        case 4: // DEFAULT_GATEWAY_USERS_GROUP_ID
+          return DEFAULT_GATEWAY_USERS_GROUP_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ADMINS_GROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("adminsGroupId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.READ_ONLY_ADMINS_GROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("readOnlyAdminsGroupId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DEFAULT_GATEWAY_USERS_GROUP_ID, new org.apache.thrift.meta_data.FieldMetaData("defaultGatewayUsersGroupId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GatewayGroups.class, metaDataMap);
+  }
+
+  public GatewayGroups() {
+  }
+
+  public GatewayGroups(
+    java.lang.String gatewayId,
+    java.lang.String adminsGroupId,
+    java.lang.String readOnlyAdminsGroupId,
+    java.lang.String defaultGatewayUsersGroupId)
+  {
+    this();
+    this.gatewayId = gatewayId;
+    this.adminsGroupId = adminsGroupId;
+    this.readOnlyAdminsGroupId = readOnlyAdminsGroupId;
+    this.defaultGatewayUsersGroupId = defaultGatewayUsersGroupId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GatewayGroups(GatewayGroups other) {
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetAdminsGroupId()) {
+      this.adminsGroupId = other.adminsGroupId;
+    }
+    if (other.isSetReadOnlyAdminsGroupId()) {
+      this.readOnlyAdminsGroupId = other.readOnlyAdminsGroupId;
+    }
+    if (other.isSetDefaultGatewayUsersGroupId()) {
+      this.defaultGatewayUsersGroupId = other.defaultGatewayUsersGroupId;
+    }
+  }
+
+  public GatewayGroups deepCopy() {
+    return new GatewayGroups(this);
+  }
+
+  @Override
+  public void clear() {
+    this.gatewayId = null;
+    this.adminsGroupId = null;
+    this.readOnlyAdminsGroupId = null;
+    this.defaultGatewayUsersGroupId = null;
+  }
+
+  public java.lang.String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(java.lang.String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public java.lang.String getAdminsGroupId() {
+    return this.adminsGroupId;
+  }
+
+  public void setAdminsGroupId(java.lang.String adminsGroupId) {
+    this.adminsGroupId = adminsGroupId;
+  }
+
+  public void unsetAdminsGroupId() {
+    this.adminsGroupId = null;
+  }
+
+  /** Returns true if field adminsGroupId is set (has been assigned a value) and false otherwise */
+  public boolean isSetAdminsGroupId() {
+    return this.adminsGroupId != null;
+  }
+
+  public void setAdminsGroupIdIsSet(boolean value) {
+    if (!value) {
+      this.adminsGroupId = null;
+    }
+  }
+
+  public java.lang.String getReadOnlyAdminsGroupId() {
+    return this.readOnlyAdminsGroupId;
+  }
+
+  public void setReadOnlyAdminsGroupId(java.lang.String readOnlyAdminsGroupId) {
+    this.readOnlyAdminsGroupId = readOnlyAdminsGroupId;
+  }
+
+  public void unsetReadOnlyAdminsGroupId() {
+    this.readOnlyAdminsGroupId = null;
+  }
+
+  /** Returns true if field readOnlyAdminsGroupId is set (has been assigned a value) and false otherwise */
+  public boolean isSetReadOnlyAdminsGroupId() {
+    return this.readOnlyAdminsGroupId != null;
+  }
+
+  public void setReadOnlyAdminsGroupIdIsSet(boolean value) {
+    if (!value) {
+      this.readOnlyAdminsGroupId = null;
+    }
+  }
+
+  public java.lang.String getDefaultGatewayUsersGroupId() {
+    return this.defaultGatewayUsersGroupId;
+  }
+
+  public void setDefaultGatewayUsersGroupId(java.lang.String defaultGatewayUsersGroupId) {
+    this.defaultGatewayUsersGroupId = defaultGatewayUsersGroupId;
+  }
+
+  public void unsetDefaultGatewayUsersGroupId() {
+    this.defaultGatewayUsersGroupId = null;
+  }
+
+  /** Returns true if field defaultGatewayUsersGroupId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDefaultGatewayUsersGroupId() {
+    return this.defaultGatewayUsersGroupId != null;
+  }
+
+  public void setDefaultGatewayUsersGroupIdIsSet(boolean value) {
+    if (!value) {
+      this.defaultGatewayUsersGroupId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((java.lang.String)value);
+      }
+      break;
+
+    case ADMINS_GROUP_ID:
+      if (value == null) {
+        unsetAdminsGroupId();
+      } else {
+        setAdminsGroupId((java.lang.String)value);
+      }
+      break;
+
+    case READ_ONLY_ADMINS_GROUP_ID:
+      if (value == null) {
+        unsetReadOnlyAdminsGroupId();
+      } else {
+        setReadOnlyAdminsGroupId((java.lang.String)value);
+      }
+      break;
+
+    case DEFAULT_GATEWAY_USERS_GROUP_ID:
+      if (value == null) {
+        unsetDefaultGatewayUsersGroupId();
+      } else {
+        setDefaultGatewayUsersGroupId((java.lang.String)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case ADMINS_GROUP_ID:
+      return getAdminsGroupId();
+
+    case READ_ONLY_ADMINS_GROUP_ID:
+      return getReadOnlyAdminsGroupId();
+
+    case DEFAULT_GATEWAY_USERS_GROUP_ID:
+      return getDefaultGatewayUsersGroupId();
+
+    }
+    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 GATEWAY_ID:
+      return isSetGatewayId();
+    case ADMINS_GROUP_ID:
+      return isSetAdminsGroupId();
+    case READ_ONLY_ADMINS_GROUP_ID:
+      return isSetReadOnlyAdminsGroupId();
+    case DEFAULT_GATEWAY_USERS_GROUP_ID:
+      return isSetDefaultGatewayUsersGroupId();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GatewayGroups)
+      return this.equals((GatewayGroups)that);
+    return false;
+  }
+
+  public boolean equals(GatewayGroups that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_adminsGroupId = true && this.isSetAdminsGroupId();
+    boolean that_present_adminsGroupId = true && that.isSetAdminsGroupId();
+    if (this_present_adminsGroupId || that_present_adminsGroupId) {
+      if (!(this_present_adminsGroupId && that_present_adminsGroupId))
+        return false;
+      if (!this.adminsGroupId.equals(that.adminsGroupId))
+        return false;
+    }
+
+    boolean this_present_readOnlyAdminsGroupId = true && this.isSetReadOnlyAdminsGroupId();
+    boolean that_present_readOnlyAdminsGroupId = true && that.isSetReadOnlyAdminsGroupId();
+    if (this_present_readOnlyAdminsGroupId || that_present_readOnlyAdminsGroupId) {
+      if (!(this_present_readOnlyAdminsGroupId && that_present_readOnlyAdminsGroupId))
+        return false;
+      if (!this.readOnlyAdminsGroupId.equals(that.readOnlyAdminsGroupId))
+        return false;
+    }
+
+    boolean this_present_defaultGatewayUsersGroupId = true && this.isSetDefaultGatewayUsersGroupId();
+    boolean that_present_defaultGatewayUsersGroupId = true && that.isSetDefaultGatewayUsersGroupId();
+    if (this_present_defaultGatewayUsersGroupId || that_present_defaultGatewayUsersGroupId) {
+      if (!(this_present_defaultGatewayUsersGroupId && that_present_defaultGatewayUsersGroupId))
+        return false;
+      if (!this.defaultGatewayUsersGroupId.equals(that.defaultGatewayUsersGroupId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+    if (isSetGatewayId())
+      hashCode = hashCode * 8191 + gatewayId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetAdminsGroupId()) ? 131071 : 524287);
+    if (isSetAdminsGroupId())
+      hashCode = hashCode * 8191 + adminsGroupId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetReadOnlyAdminsGroupId()) ? 131071 : 524287);
+    if (isSetReadOnlyAdminsGroupId())
+      hashCode = hashCode * 8191 + readOnlyAdminsGroupId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetDefaultGatewayUsersGroupId()) ? 131071 : 524287);
+    if (isSetDefaultGatewayUsersGroupId())
+      hashCode = hashCode * 8191 + defaultGatewayUsersGroupId.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(GatewayGroups other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetAdminsGroupId()).compareTo(other.isSetAdminsGroupId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAdminsGroupId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.adminsGroupId, other.adminsGroupId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetReadOnlyAdminsGroupId()).compareTo(other.isSetReadOnlyAdminsGroupId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReadOnlyAdminsGroupId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.readOnlyAdminsGroupId, other.readOnlyAdminsGroupId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = java.lang.Boolean.valueOf(isSetDefaultGatewayUsersGroupId()).compareTo(other.isSetDefaultGatewayUsersGroupId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDefaultGatewayUsersGroupId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultGatewayUsersGroupId, other.defaultGatewayUsersGroupId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("GatewayGroups(");
+    boolean first = true;
+
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("adminsGroupId:");
+    if (this.adminsGroupId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.adminsGroupId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("readOnlyAdminsGroupId:");
+    if (this.readOnlyAdminsGroupId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.readOnlyAdminsGroupId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("defaultGatewayUsersGroupId:");
+    if (this.defaultGatewayUsersGroupId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.defaultGatewayUsersGroupId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetGatewayId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetAdminsGroupId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'adminsGroupId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetReadOnlyAdminsGroupId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'readOnlyAdminsGroupId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetDefaultGatewayUsersGroupId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'defaultGatewayUsersGroupId' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class GatewayGroupsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public GatewayGroupsStandardScheme getScheme() {
+      return new GatewayGroupsStandardScheme();
+    }
+  }
+
+  private static class GatewayGroupsStandardScheme extends org.apache.thrift.scheme.StandardScheme<GatewayGroups> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GatewayGroups struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ADMINS_GROUP_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.adminsGroupId = iprot.readString();
+              struct.setAdminsGroupIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // READ_ONLY_ADMINS_GROUP_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.readOnlyAdminsGroupId = iprot.readString();
+              struct.setReadOnlyAdminsGroupIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // DEFAULT_GATEWAY_USERS_GROUP_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.defaultGatewayUsersGroupId = iprot.readString();
+              struct.setDefaultGatewayUsersGroupIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GatewayGroups struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.adminsGroupId != null) {
+        oprot.writeFieldBegin(ADMINS_GROUP_ID_FIELD_DESC);
+        oprot.writeString(struct.adminsGroupId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.readOnlyAdminsGroupId != null) {
+        oprot.writeFieldBegin(READ_ONLY_ADMINS_GROUP_ID_FIELD_DESC);
+        oprot.writeString(struct.readOnlyAdminsGroupId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.defaultGatewayUsersGroupId != null) {
+        oprot.writeFieldBegin(DEFAULT_GATEWAY_USERS_GROUP_ID_FIELD_DESC);
+        oprot.writeString(struct.defaultGatewayUsersGroupId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GatewayGroupsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public GatewayGroupsTupleScheme getScheme() {
+      return new GatewayGroupsTupleScheme();
+    }
+  }
+
+  private static class GatewayGroupsTupleScheme extends org.apache.thrift.scheme.TupleScheme<GatewayGroups> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GatewayGroups struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      oprot.writeString(struct.gatewayId);
+      oprot.writeString(struct.adminsGroupId);
+      oprot.writeString(struct.readOnlyAdminsGroupId);
+      oprot.writeString(struct.defaultGatewayUsersGroupId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GatewayGroups struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      struct.adminsGroupId = iprot.readString();
+      struct.setAdminsGroupIdIsSet(true);
+      struct.readOnlyAdminsGroupId = iprot.readString();
+      struct.setReadOnlyAdminsGroupIdIsSet(true);
+      struct.defaultGatewayUsersGroupId = iprot.readString();
+      struct.setDefaultGatewayUsersGroupIdIsSet(true);
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayGroupsEntity.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayGroupsEntity.java
new file mode 100644
index 0000000..53d2400
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/GatewayGroupsEntity.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.entities.appcatalog;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "GATEWAY_GROUPS")
+public class GatewayGroupsEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+
+    @Column(name = "ADMINS_GROUP_ID")
+    private String adminsGroupId;
+
+    @Column(name = "READ_ONLY_ADMINS_GROUP_ID")
+    private String readOnlyAdminsGroupId;
+
+    @Column(name = "DEFAULT_GATEWAY_USERS_GROUP_ID")
+    private String defaultGatewayUsersGroupId;
+
+    protected GatewayGroupsEntity() {
+
+    }
+
+    public GatewayGroupsEntity(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getAdminsGroupId() {
+        return adminsGroupId;
+    }
+
+    public void setAdminsGroupId(String adminsGroupId) {
+        this.adminsGroupId = adminsGroupId;
+    }
+
+    public String getReadOnlyAdminsGroupId() {
+        return readOnlyAdminsGroupId;
+    }
+
+    public void setReadOnlyAdminsGroupId(String readOnlyAdminsGroupId) {
+        this.readOnlyAdminsGroupId = readOnlyAdminsGroupId;
+    }
+
+    public String getDefaultGatewayUsersGroupId() {
+        return defaultGatewayUsersGroupId;
+    }
+
+    public void setDefaultGatewayUsersGroupId(String defaultGatewayUsersGroupId) {
+        this.defaultGatewayUsersGroupId = defaultGatewayUsersGroupId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof GatewayGroupsEntity)) return false;
+
+        GatewayGroupsEntity that = (GatewayGroupsEntity) o;
+
+        return gatewayId.equals(that.gatewayId);
+    }
+
+    @Override
+    public int hashCode() {
+        return gatewayId.hashCode();
+    }
+}
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepository.java
new file mode 100644
index 0000000..ccc30d2
--- /dev/null
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepository.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.repositories.appcatalog;
+
+import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
+import org.apache.airavata.registry.core.entities.appcatalog.GatewayGroupsEntity;
+
+public class GatewayGroupsRepository extends AppCatAbstractRepository<GatewayGroups, GatewayGroupsEntity, String> {
+    public GatewayGroupsRepository() {
+        super(GatewayGroups.class, GatewayGroupsEntity.class);
+    }
+}
diff --git a/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml b/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
index d8d52ff..fa5d4a6 100644
--- a/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry-refactoring/src/main/resources/META-INF/persistence.xml
@@ -28,6 +28,7 @@
         <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationModuleEntity</class>
         <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationDeploymentEntity</class>
         <class>org.apache.airavata.registry.core.entities.appcatalog.ApplicationInterfaceEntity</class>
+        <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayGroupsEntity</class>
         <class>org.apache.airavata.registry.core.entities.appcatalog.GatewayProfileEntity</class>
         <class>org.apache.airavata.registry.core.entities.appcatalog.StorageResourceEntity</class>
         <class>org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity</class>
diff --git a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepositoryTest.java b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepositoryTest.java
new file mode 100644
index 0000000..74355c9
--- /dev/null
+++ b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/appcatalog/GatewayGroupsRepositoryTest.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.repositories.appcatalog;
+
+import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
+import org.apache.airavata.registry.core.repositories.appcatalog.util.Initialize;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GatewayGroupsRepositoryTest {
+
+    private static final String GATEWAY_ID = "gateway-id";
+    private static final String ADMIN_GROUPS_ID = "admin-groups-id";
+    private static final String READ_ONLY_ADMINS_GROUP_ID = "read-only-admins-group-id";
+    private static final String DEFAULT_GATEWAY_USERS_GROUP_ID = "default-gateway-users-group-id";
+
+    private static Initialize initialize;
+    private GatewayGroupsRepository gatewayGroupsRepository;
+    private static final Logger logger = LoggerFactory.getLogger(GatewayProfileRepositoryTest.class);
+
+    @Before
+    public void setUp() {
+        try {
+            initialize = new Initialize("appcatalog-derby.sql");
+            initialize.initializeDB();
+            gatewayGroupsRepository = new GatewayGroupsRepository();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
+        initialize.stopDerbyServer();
+    }
+
+    @Test
+    public void testCreateAndRetrieveGatewayGroups() throws Exception {
+
+        GatewayGroups gatewayGroups = new GatewayGroups();
+        gatewayGroups.setGatewayId(GATEWAY_ID);
+        gatewayGroups.setAdminsGroupId(ADMIN_GROUPS_ID);
+        gatewayGroups.setReadOnlyAdminsGroupId(READ_ONLY_ADMINS_GROUP_ID);
+        gatewayGroups.setDefaultGatewayUsersGroupId(DEFAULT_GATEWAY_USERS_GROUP_ID);
+
+        gatewayGroupsRepository.create(gatewayGroups);
+
+        GatewayGroups retrievedGatewayGroups = gatewayGroupsRepository.get(GATEWAY_ID);
+
+        Assert.assertEquals(ADMIN_GROUPS_ID, retrievedGatewayGroups.getAdminsGroupId());
+        Assert.assertEquals(READ_ONLY_ADMINS_GROUP_ID, retrievedGatewayGroups.getReadOnlyAdminsGroupId());
+        Assert.assertEquals(DEFAULT_GATEWAY_USERS_GROUP_ID, retrievedGatewayGroups.getDefaultGatewayUsersGroupId());
+        Assert.assertEquals(gatewayGroups, retrievedGatewayGroups);
+
+        gatewayGroupsRepository.delete(GATEWAY_ID);
+    }
+
+    @Test
+    public void testUpdateGatewayGroups() throws Exception {
+
+        GatewayGroups gatewayGroups = new GatewayGroups();
+        gatewayGroups.setGatewayId(GATEWAY_ID);
+        gatewayGroups.setAdminsGroupId(ADMIN_GROUPS_ID);
+        gatewayGroups.setReadOnlyAdminsGroupId(READ_ONLY_ADMINS_GROUP_ID);
+        gatewayGroups.setDefaultGatewayUsersGroupId(DEFAULT_GATEWAY_USERS_GROUP_ID);
+
+        gatewayGroupsRepository.create(gatewayGroups);
+
+        final String defaultGatewayUsersGroupId = "some-other-group-id";
+        gatewayGroups.setDefaultGatewayUsersGroupId(defaultGatewayUsersGroupId);
+
+        gatewayGroupsRepository.update(gatewayGroups);
+
+        GatewayGroups retrievedGatewayGroups = gatewayGroupsRepository.get(GATEWAY_ID);
+
+        Assert.assertEquals(ADMIN_GROUPS_ID, retrievedGatewayGroups.getAdminsGroupId());
+        Assert.assertEquals(READ_ONLY_ADMINS_GROUP_ID, retrievedGatewayGroups.getReadOnlyAdminsGroupId());
+        Assert.assertEquals(defaultGatewayUsersGroupId, retrievedGatewayGroups.getDefaultGatewayUsersGroupId());
+        Assert.assertEquals(gatewayGroups, retrievedGatewayGroups);
+
+        gatewayGroupsRepository.delete(GATEWAY_ID);
+    }
+
+
+}
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 5cce58b..da49675 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
@@ -34,6 +34,7 @@ import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
 import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
 import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
 import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
+import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
@@ -103,6 +104,7 @@ import org.apache.airavata.registry.core.experiment.catalog.resources.AbstractEx
 import org.apache.airavata.registry.core.repositories.appcatalog.ApplicationDeploymentRepository;
 import org.apache.airavata.registry.core.repositories.appcatalog.ApplicationInterfaceRepository;
 import org.apache.airavata.registry.core.repositories.appcatalog.ComputeResourceRepository;
+import org.apache.airavata.registry.core.repositories.appcatalog.GatewayGroupsRepository;
 import org.apache.airavata.registry.core.repositories.appcatalog.GroupResourceProfileRepository;
 import org.apache.airavata.registry.core.repositories.appcatalog.GwyResourceProfileRepository;
 import org.apache.airavata.registry.core.repositories.appcatalog.StorageResourceRepository;
@@ -145,6 +147,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
     private DataReplicaLocationRepository dataReplicaLocationRepository = new DataReplicaLocationRepository();
     private WorkflowRepository workflowRepository = new WorkflowRepository();
     private StorageResourceRepository storageResourceRepository = new StorageResourceRepository();
+    private GatewayGroupsRepository gatewayGroupsRepository = new GatewayGroupsRepository();
 
     /**
      * Fetch Apache Registry API version
@@ -4897,5 +4900,78 @@ public class RegistryServerHandler implements RegistryService.Iface {
         }
     }
 
+    @Override
+    public void createGatewayGroups(GatewayGroups gatewayGroups) throws RegistryServiceException, DuplicateEntryException, TException {
+        try {
+            if (gatewayGroupsRepository.isExists(gatewayGroups.getGatewayId())) {
+                logger.error("GatewayGroups already exists for " + gatewayGroups.getGatewayId());
+                throw new DuplicateEntryException("GatewayGroups for gatewayId: " + gatewayGroups.getGatewayId() + " already exists.");
+            }
+            gatewayGroupsRepository.create(gatewayGroups);
+        } catch (DuplicateEntryException e) {
+            throw e; // re-throw
+        } catch (Exception e) {
+
+            final String message = "Error while creating a GatewayGroups entry for gateway " + gatewayGroups.getGatewayId() + ".";
+            logger.error(message, e);
+            RegistryServiceException rse = new RegistryServiceException();
+            rse.setMessage(message + " More info: " + e.getMessage());
+            throw rse;
+        }
+    }
+
+    @Override
+    public void updateGatewayGroups(GatewayGroups gatewayGroups) throws RegistryServiceException, TException {
+        try {
+            if (!gatewayGroupsRepository.isExists(gatewayGroups.getGatewayId())) {
+                final String message = "No GatewayGroups entry exists for " + gatewayGroups.getGatewayId();
+                logger.error(message);
+                throw new RegistryServiceException(message);
+            }
+            gatewayGroupsRepository.update(gatewayGroups);
+        } catch (RegistryServiceException e) {
+            throw e; // re-throw
+        } catch (Exception e) {
+
+            final String message = "Error while updating the GatewayGroups entry for gateway " + gatewayGroups.getGatewayId() + ".";
+            logger.error(message, e);
+            RegistryServiceException rse = new RegistryServiceException();
+            rse.setMessage(message + " More info: " + e.getMessage());
+            throw rse;
+        }
+    }
+
+    @Override
+    public boolean isGatewayGroupsExists(String gatewayId) throws RegistryServiceException, TException {
+        try {
+            return gatewayGroupsRepository.isExists(gatewayId);
+        } catch (Exception e) {
+            final String message = "Error checking existence of the GatewayGroups entry for gateway " + gatewayId + ".";
+            logger.error(message, e);
+            RegistryServiceException rse = new RegistryServiceException();
+            rse.setMessage(message + " More info: " + e.getMessage());
+            throw rse;
+        }
+    }
 
+    @Override
+    public GatewayGroups getGatewayGroups(String gatewayId) throws RegistryServiceException, TException {
+        try {
+            if (!gatewayGroupsRepository.isExists(gatewayId)) {
+                final String message = "No GatewayGroups entry exists for " + gatewayId;
+                logger.error(message);
+                throw new RegistryServiceException(message);
+            }
+            return gatewayGroupsRepository.get(gatewayId);
+        } catch (RegistryServiceException e) {
+            throw e; // re-throw
+        } catch (Exception e) {
+
+            final String message = "Error while retrieving the GatewayGroups entry for gateway " + gatewayId + ".";
+            logger.error(message, e);
+            RegistryServiceException rse = new RegistryServiceException();
+            rse.setMessage(message + " More info: " + e.getMessage());
+            throw rse;
+        }
+    }
 }
\ No newline at end of file
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 af5c766..5aa9510 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
@@ -2552,6 +2552,14 @@ public class RegistryService {
 
     public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getGroupComputeResourcePolicyList(java.lang.String groupResourceProfileId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
+    public void createGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.DuplicateEntryException, org.apache.thrift.TException;
+
+    public void updateGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public boolean isGatewayGroupsExists(java.lang.String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups getGatewayGroups(java.lang.String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
   }
 
   public interface AsyncIface {
@@ -2924,6 +2932,14 @@ public class RegistryService {
 
     public void getGroupComputeResourcePolicyList(java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException;
 
+    public void createGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+
+    public void updateGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+
+    public void isGatewayGroupsExists(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+
+    public void getGatewayGroups(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException;
+
   }
 
   public static class Client extends org.apache.thrift.TServiceClient implements Iface {
@@ -7860,6 +7876,107 @@ public class RegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGroupComputeResourcePolicyList failed: unknown result");
     }
 
+    public void createGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.DuplicateEntryException, org.apache.thrift.TException
+    {
+      send_createGatewayGroups(gatewayGroups);
+      recv_createGatewayGroups();
+    }
+
+    public void send_createGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.thrift.TException
+    {
+      createGatewayGroups_args args = new createGatewayGroups_args();
+      args.setGatewayGroups(gatewayGroups);
+      sendBase("createGatewayGroups", args);
+    }
+
+    public void recv_createGatewayGroups() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.DuplicateEntryException, org.apache.thrift.TException
+    {
+      createGatewayGroups_result result = new createGatewayGroups_result();
+      receiveBase(result, "createGatewayGroups");
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      if (result.dee != null) {
+        throw result.dee;
+      }
+      return;
+    }
+
+    public void updateGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_updateGatewayGroups(gatewayGroups);
+      recv_updateGatewayGroups();
+    }
+
+    public void send_updateGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups) throws org.apache.thrift.TException
+    {
+      updateGatewayGroups_args args = new updateGatewayGroups_args();
+      args.setGatewayGroups(gatewayGroups);
+      sendBase("updateGatewayGroups", args);
+    }
+
+    public void recv_updateGatewayGroups() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      updateGatewayGroups_result result = new updateGatewayGroups_result();
+      receiveBase(result, "updateGatewayGroups");
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      return;
+    }
+
+    public boolean isGatewayGroupsExists(java.lang.String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_isGatewayGroupsExists(gatewayId);
+      return recv_isGatewayGroupsExists();
+    }
+
+    public void send_isGatewayGroupsExists(java.lang.String gatewayId) throws org.apache.thrift.TException
+    {
+      isGatewayGroupsExists_args args = new isGatewayGroupsExists_args();
+      args.setGatewayId(gatewayId);
+      sendBase("isGatewayGroupsExists", args);
+    }
+
+    public boolean recv_isGatewayGroupsExists() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      isGatewayGroupsExists_result result = new isGatewayGroupsExists_result();
+      receiveBase(result, "isGatewayGroupsExists");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isGatewayGroupsExists failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups getGatewayGroups(java.lang.String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getGatewayGroups(gatewayId);
+      return recv_getGatewayGroups();
+    }
+
+    public void send_getGatewayGroups(java.lang.String gatewayId) throws org.apache.thrift.TException
+    {
+      getGatewayGroups_args args = new getGatewayGroups_args();
+      args.setGatewayId(gatewayId);
+      sendBase("getGatewayGroups", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups recv_getGatewayGroups() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getGatewayGroups_result result = new getGatewayGroups_result();
+      receiveBase(result, "getGatewayGroups");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGatewayGroups failed: unknown result");
+    }
+
   }
   public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
     public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -14183,6 +14300,134 @@ public class RegistryService {
       }
     }
 
+    public void createGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      createGatewayGroups_call method_call = new createGatewayGroups_call(gatewayGroups, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class createGatewayGroups_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+      private org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups;
+      public createGatewayGroups_call(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayGroups = gatewayGroups;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createGatewayGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        createGatewayGroups_args args = new createGatewayGroups_args();
+        args.setGatewayGroups(gatewayGroups);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Void getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.airavata.model.error.DuplicateEntryException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return null;
+      }
+    }
+
+    public void updateGatewayGroups(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateGatewayGroups_call method_call = new updateGatewayGroups_call(gatewayGroups, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateGatewayGroups_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
+      private org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups;
+      public updateGatewayGroups_call(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups gatewayGroups, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayGroups = gatewayGroups;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateGatewayGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateGatewayGroups_args args = new updateGatewayGroups_args();
+        args.setGatewayGroups(gatewayGroups);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Void getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return null;
+      }
+    }
+
+    public void isGatewayGroupsExists(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      isGatewayGroupsExists_call method_call = new isGatewayGroupsExists_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class isGatewayGroupsExists_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
+      private java.lang.String gatewayId;
+      public isGatewayGroupsExists_call(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isGatewayGroupsExists", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        isGatewayGroupsExists_args args = new isGatewayGroupsExists_args();
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.lang.Boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_isGatewayGroupsExists();
+      }
+    }
+
+    public void getGatewayGroups(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getGatewayGroups_call method_call = new getGatewayGroups_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getGatewayGroups_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> {
+      private java.lang.String gatewayId;
+      public getGatewayGroups_call(java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getGatewayGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getGatewayGroups_args args = new getGatewayGroups_args();
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getGatewayGroups();
+      }
+    }
+
   }
 
   public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
@@ -14380,6 +14625,10 @@ public class RegistryService {
       processMap.put("getGroupComputeResourcePrefList", new getGroupComputeResourcePrefList());
       processMap.put("getGroupBatchQueueResourcePolicyList", new getGroupBatchQueueResourcePolicyList());
       processMap.put("getGroupComputeResourcePolicyList", new getGroupComputeResourcePolicyList());
+      processMap.put("createGatewayGroups", new createGatewayGroups());
+      processMap.put("updateGatewayGroups", new updateGatewayGroups());
+      processMap.put("isGatewayGroupsExists", new isGatewayGroupsExists());
+      processMap.put("getGatewayGroups", new getGatewayGroups());
       return processMap;
     }
 
@@ -18884,6 +19133,105 @@ public class RegistryService {
       }
     }
 
+    public static class createGatewayGroups<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createGatewayGroups_args> {
+      public createGatewayGroups() {
+        super("createGatewayGroups");
+      }
+
+      public createGatewayGroups_args getEmptyArgsInstance() {
+        return new createGatewayGroups_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public createGatewayGroups_result getResult(I iface, createGatewayGroups_args args) throws org.apache.thrift.TException {
+        createGatewayGroups_result result = new createGatewayGroups_result();
+        try {
+          iface.createGatewayGroups(args.gatewayGroups);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        } catch (org.apache.airavata.model.error.DuplicateEntryException dee) {
+          result.dee = dee;
+        }
+        return result;
+      }
+    }
+
+    public static class updateGatewayGroups<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateGatewayGroups_args> {
+      public updateGatewayGroups() {
+        super("updateGatewayGroups");
+      }
+
+      public updateGatewayGroups_args getEmptyArgsInstance() {
+        return new updateGatewayGroups_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateGatewayGroups_result getResult(I iface, updateGatewayGroups_args args) throws org.apache.thrift.TException {
+        updateGatewayGroups_result result = new updateGatewayGroups_result();
+        try {
+          iface.updateGatewayGroups(args.gatewayGroups);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class isGatewayGroupsExists<I extends Iface> extends org.apache.thrift.ProcessFunction<I, isGatewayGroupsExists_args> {
+      public isGatewayGroupsExists() {
+        super("isGatewayGroupsExists");
+      }
+
+      public isGatewayGroupsExists_args getEmptyArgsInstance() {
+        return new isGatewayGroupsExists_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public isGatewayGroupsExists_result getResult(I iface, isGatewayGroupsExists_args args) throws org.apache.thrift.TException {
+        isGatewayGroupsExists_result result = new isGatewayGroupsExists_result();
+        try {
+          result.success = iface.isGatewayGroupsExists(args.gatewayId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getGatewayGroups<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getGatewayGroups_args> {
+      public getGatewayGroups() {
+        super("getGatewayGroups");
+      }
+
+      public getGatewayGroups_args getEmptyArgsInstance() {
+        return new getGatewayGroups_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getGatewayGroups_result getResult(I iface, getGatewayGroups_args args) throws org.apache.thrift.TException {
+        getGatewayGroups_result result = new getGatewayGroups_result();
+        try {
+          result.success = iface.getGatewayGroups(args.gatewayId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
   }
 
   public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
@@ -19081,6 +19429,10 @@ public class RegistryService {
       processMap.put("getGroupComputeResourcePrefList", new getGroupComputeResourcePrefList());
       processMap.put("getGroupBatchQueueResourcePolicyList", new getGroupBatchQueueResourcePolicyList());
       processMap.put("getGroupComputeResourcePolicyList", new getGroupComputeResourcePolicyList());
+      processMap.put("createGatewayGroups", new createGatewayGroups());
+      processMap.put("updateGatewayGroups", new updateGatewayGroups());
+      processMap.put("isGatewayGroupsExists", new isGatewayGroupsExists());
+      processMap.put("getGatewayGroups", new getGatewayGroups());
       return processMap;
     }
 
@@ -31140,274 +31492,282 @@ public class RegistryService {
       }
     }
 
-  }
-
-  public static class getAPIVersion_args implements org.apache.thrift.TBase<getAPIVersion_args, getAPIVersion_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_args");
-
-
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAPIVersion_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAPIVersion_argsTupleSchemeFactory();
-
-
-    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-;
-
-      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
-
-      static {
-        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
-          byName.put(field.getFieldName(), field);
-        }
+    public static class createGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGatewayGroups_args, Void> {
+      public createGatewayGroups() {
+        super("createGatewayGroups");
       }
 
-      /**
-       * Find the _Fields constant that matches fieldId, or null if its not found.
-       */
-      public static _Fields findByThriftId(int fieldId) {
-        switch(fieldId) {
-          default:
-            return null;
-        }
+      public createGatewayGroups_args getEmptyArgsInstance() {
+        return new createGatewayGroups_args();
       }
 
-      /**
-       * Find the _Fields constant that matches fieldId, throwing an exception
-       * if it is not found.
-       */
-      public static _Fields findByThriftIdOrThrow(int fieldId) {
-        _Fields fields = findByThriftId(fieldId);
-        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-        return fields;
+      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) {
+            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) {
+              _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;
+            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();
+              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();
+            }
+          }
+        };
       }
 
-      /**
-       * Find the _Fields constant that matches name, or null if its not found.
-       */
-      public static _Fields findByName(java.lang.String name) {
-        return byName.get(name);
+      protected boolean isOneway() {
+        return false;
       }
 
-      private final short _thriftId;
-      private final java.lang.String _fieldName;
-
-      _Fields(short thriftId, java.lang.String fieldName) {
-        _thriftId = thriftId;
-        _fieldName = fieldName;
+      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 short getThriftFieldId() {
-        return _thriftId;
+    public static class updateGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGatewayGroups_args, Void> {
+      public updateGatewayGroups() {
+        super("updateGatewayGroups");
       }
 
-      public java.lang.String getFieldName() {
-        return _fieldName;
+      public updateGatewayGroups_args getEmptyArgsInstance() {
+        return new updateGatewayGroups_args();
       }
-    }
-    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);
-      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class, metaDataMap);
-    }
-
-    public getAPIVersion_args() {
-    }
-
-    /**
-     * Performs a deep copy on <i>other</i>.
-     */
-    public getAPIVersion_args(getAPIVersion_args other) {
-    }
-
-    public getAPIVersion_args deepCopy() {
-      return new getAPIVersion_args(this);
-    }
 
-    @Override
-    public void clear() {
-    }
+      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) {
+            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) {
+              _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;
+            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);
+              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();
+            }
+          }
+        };
+      }
 
-    public void setFieldValue(_Fields field, java.lang.Object value) {
-      switch (field) {
+      protected boolean isOneway() {
+        return false;
       }
-    }
 
-    public java.lang.Object getFieldValue(_Fields field) {
-      switch (field) {
+      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);
       }
-      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();
+    public static class isGatewayGroupsExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isGatewayGroupsExists_args, java.lang.Boolean> {
+      public isGatewayGroupsExists() {
+        super("isGatewayGroupsExists");
       }
 
-      switch (field) {
+      public isGatewayGroupsExists_args getEmptyArgsInstance() {
+        return new isGatewayGroupsExists_args();
       }
-      throw new java.lang.IllegalStateException();
-    }
 
-    @Override
-    public boolean equals(java.lang.Object that) {
-      if (that == null)
-        return false;
-      if (that instanceof getAPIVersion_args)
-        return this.equals((getAPIVersion_args)that);
-      return false;
-    }
+      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) {
+            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) {
+              _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;
+            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);
+              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();
+            }
+          }
+        };
+      }
 
-    public boolean equals(getAPIVersion_args that) {
-      if (that == null)
+      protected boolean isOneway() {
         return false;
-      if (this == that)
-        return true;
-
-      return true;
-    }
-
-    @Override
-    public int hashCode() {
-      int hashCode = 1;
-
-      return hashCode;
-    }
-
-    @Override
-    public int compareTo(getAPIVersion_args other) {
-      if (!getClass().equals(other.getClass())) {
-        return getClass().getName().compareTo(other.getClass().getName());
       }
 
-      int lastComparison = 0;
-
-      return 0;
-    }
-
-    public _Fields fieldForId(int fieldId) {
-      return _Fields.findByThriftId(fieldId);
-    }
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-      scheme(iprot).read(iprot, this);
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-      scheme(oprot).write(oprot, this);
-    }
-
-    @Override
-    public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAPIVersion_args(");
-      boolean first = true;
-
-      sb.append(")");
-      return sb.toString();
-    }
-
-    public void validate() throws org.apache.thrift.TException {
-      // check for required fields
-      // check for sub-struct validity
-    }
-
-    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-      try {
-        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-      } catch (org.apache.thrift.TException te) {
-        throw new java.io.IOException(te);
+      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);
       }
     }
 
-    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
-      try {
-        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-      } catch (org.apache.thrift.TException te) {
-        throw new java.io.IOException(te);
+    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");
       }
-    }
 
-    private static class getAPIVersion_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAPIVersion_argsStandardScheme getScheme() {
-        return new getAPIVersion_argsStandardScheme();
+      public getGatewayGroups_args getEmptyArgsInstance() {
+        return new getGatewayGroups_args();
       }
-    }
-
-    private static class getAPIVersion_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAPIVersion_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getAPIVersion_args struct) throws org.apache.thrift.TException {
-        org.apache.thrift.protocol.TField schemeField;
-        iprot.readStructBegin();
-        while (true)
-        {
-          schemeField = iprot.readFieldBegin();
-          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-            break;
+      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<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);
+            } 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);
+            }
           }
-          switch (schemeField.id) {
-            default:
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          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();
+            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();
+            }
           }
-          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, getAPIVersion_args struct) throws org.apache.thrift.TException {
-        struct.validate();
-
-        oprot.writeStructBegin(STRUCT_DESC);
-        oprot.writeFieldStop();
-        oprot.writeStructEnd();
-      }
-
-    }
-
-    private static class getAPIVersion_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAPIVersion_argsTupleScheme getScheme() {
-        return new getAPIVersion_argsTupleScheme();
+        };
       }
-    }
 
-    private static class getAPIVersion_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAPIVersion_args> {
-
-      @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
-        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      protected boolean isOneway() {
+        return false;
       }
 
-      @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
-        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      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);
       }
     }
 
-    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
-      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
-    }
   }
 
-  public static class getAPIVersion_result implements org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_result");
+  public static class getAPIVersion_args implements org.apache.thrift.TBase<getAPIVersion_args, getAPIVersion_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_args");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
-    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAPIVersion_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAPIVersion_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAPIVersion_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAPIVersion_argsTupleSchemeFactory();
 
-    public java.lang.String success; // required
-    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      SUCCESS((short)0, "success"),
-      RSE((short)1, "rse");
+;
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -31422,10 +31782,265 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
-          case 1: // RSE
-            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+    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);
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class, metaDataMap);
+    }
+
+    public getAPIVersion_args() {
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getAPIVersion_args(getAPIVersion_args other) {
+    }
+
+    public getAPIVersion_args deepCopy() {
+      return new getAPIVersion_args(this);
+    }
+
+    @Override
+    public void clear() {
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      }
+      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) {
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getAPIVersion_args)
+        return this.equals((getAPIVersion_args)that);
+      return false;
+    }
+
+    public boolean equals(getAPIVersion_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(getAPIVersion_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAPIVersion_args(");
+      boolean first = true;
+
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getAPIVersion_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAPIVersion_argsStandardScheme getScheme() {
+        return new getAPIVersion_argsStandardScheme();
+      }
+    }
+
+    private static class getAPIVersion_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAPIVersion_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAPIVersion_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            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, getAPIVersion_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getAPIVersion_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAPIVersion_argsTupleScheme getScheme() {
+        return new getAPIVersion_argsTupleScheme();
+      }
+    }
+
+    private static class getAPIVersion_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAPIVersion_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class getAPIVersion_result implements org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAPIVersion_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAPIVersion_resultTupleSchemeFactory();
+
+    public java.lang.String success; // required
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // RSE
+            return RSE;
           default:
             return null;
         }
@@ -188044,7 +188659,3372 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.String)value);
+          setSuccess((java.lang.String)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();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof createGroupResourceProfile_result)
+        return this.equals((createGroupResourceProfile_result)that);
+      return false;
+    }
+
+    public boolean equals(createGroupResourceProfile_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(createGroupResourceProfile_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("createGroupResourceProfile_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class createGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createGroupResourceProfile_resultStandardScheme getScheme() {
+        return new createGroupResourceProfile_resultStandardScheme();
+      }
+    }
+
+    private static class createGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<createGroupResourceProfile_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeString(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class createGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public createGroupResourceProfile_resultTupleScheme getScheme() {
+        return new createGroupResourceProfile_resultTupleScheme();
+      }
+    }
+
+    private static class createGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<createGroupResourceProfile_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeString(struct.success);
+        }
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readString();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class updateGroupResourceProfile_args implements org.apache.thrift.TBase<updateGroupResourceProfile_args, updateGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateGroupResourceProfile_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGroupResourceProfile_args");
+
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfile", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateGroupResourceProfile_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateGroupResourceProfile_argsTupleSchemeFactory();
+
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      GROUP_RESOURCE_PROFILE((short)1, "groupResourceProfile");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // GROUP_RESOURCE_PROFILE
+            return GROUP_RESOURCE_PROFILE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfile", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateGroupResourceProfile_args.class, metaDataMap);
+    }
+
+    public updateGroupResourceProfile_args() {
+    }
+
+    public updateGroupResourceProfile_args(
+      org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile)
+    {
+      this();
+      this.groupResourceProfile = groupResourceProfile;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateGroupResourceProfile_args(updateGroupResourceProfile_args other) {
+      if (other.isSetGroupResourceProfile()) {
+        this.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other.groupResourceProfile);
+      }
+    }
+
+    public updateGroupResourceProfile_args deepCopy() {
+      return new updateGroupResourceProfile_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.groupResourceProfile = null;
+    }
+
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile getGroupResourceProfile() {
+      return this.groupResourceProfile;
+    }
+
+    public updateGroupResourceProfile_args setGroupResourceProfile(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) {
+      this.groupResourceProfile = groupResourceProfile;
+      return this;
+    }
+
+    public void unsetGroupResourceProfile() {
+      this.groupResourceProfile = null;
+    }
+
+    /** Returns true if field groupResourceProfile is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfile() {
+      return this.groupResourceProfile != null;
+    }
+
+    public void setGroupResourceProfileIsSet(boolean value) {
+      if (!value) {
+        this.groupResourceProfile = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE:
+        if (value == null) {
+          unsetGroupResourceProfile();
+        } else {
+          setGroupResourceProfile((org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE:
+        return getGroupResourceProfile();
+
+      }
+      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 GROUP_RESOURCE_PROFILE:
+        return isSetGroupResourceProfile();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateGroupResourceProfile_args)
+        return this.equals((updateGroupResourceProfile_args)that);
+      return false;
+    }
+
+    public boolean equals(updateGroupResourceProfile_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_groupResourceProfile = true && this.isSetGroupResourceProfile();
+      boolean that_present_groupResourceProfile = true && that.isSetGroupResourceProfile();
+      if (this_present_groupResourceProfile || that_present_groupResourceProfile) {
+        if (!(this_present_groupResourceProfile && that_present_groupResourceProfile))
+          return false;
+        if (!this.groupResourceProfile.equals(that.groupResourceProfile))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetGroupResourceProfile()) ? 131071 : 524287);
+      if (isSetGroupResourceProfile())
+        hashCode = hashCode * 8191 + groupResourceProfile.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(updateGroupResourceProfile_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfile()).compareTo(other.isSetGroupResourceProfile());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGroupResourceProfile()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfile, other.groupResourceProfile);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateGroupResourceProfile_args(");
+      boolean first = true;
+
+      sb.append("groupResourceProfile:");
+      if (this.groupResourceProfile == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.groupResourceProfile);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (groupResourceProfile == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfile' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (groupResourceProfile != null) {
+        groupResourceProfile.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class updateGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateGroupResourceProfile_argsStandardScheme getScheme() {
+        return new updateGroupResourceProfile_argsStandardScheme();
+      }
+    }
+
+    private static class updateGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateGroupResourceProfile_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // GROUP_RESOURCE_PROFILE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+                struct.groupResourceProfile.read(iprot);
+                struct.setGroupResourceProfileIsSet(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, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.groupResourceProfile != null) {
+          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_FIELD_DESC);
+          struct.groupResourceProfile.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class updateGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateGroupResourceProfile_argsTupleScheme getScheme() {
+        return new updateGroupResourceProfile_argsTupleScheme();
+      }
+    }
+
+    private static class updateGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateGroupResourceProfile_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.groupResourceProfile.write(oprot);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+        struct.groupResourceProfile.read(iprot);
+        struct.setGroupResourceProfileIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class updateGroupResourceProfile_result implements org.apache.thrift.TBase<updateGroupResourceProfile_result, updateGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateGroupResourceProfile_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGroupResourceProfile_result");
+
+    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateGroupResourceProfile_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateGroupResourceProfile_resultTupleSchemeFactory();
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateGroupResourceProfile_result.class, metaDataMap);
+    }
+
+    public updateGroupResourceProfile_result() {
+    }
+
+    public updateGroupResourceProfile_result(
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateGroupResourceProfile_result(updateGroupResourceProfile_result other) {
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public updateGroupResourceProfile_result deepCopy() {
+      return new updateGroupResourceProfile_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.rse = null;
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public updateGroupResourceProfile_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+      this.rse = rse;
+      return this;
+    }
+
+    public void unsetRse() {
+      this.rse = null;
+    }
+
+    /** Returns true if field rse is set (has been assigned a value) and false otherwise */
+    public boolean isSetRse() {
+      return this.rse != null;
+    }
+
+    public void setRseIsSet(boolean value) {
+      if (!value) {
+        this.rse = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case RSE:
+        if (value == null) {
+          unsetRse();
+        } else {
+          setRse((org.apache.airavata.registry.api.exception.RegistryServiceException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case RSE:
+        return getRse();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case RSE:
+        return isSetRse();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateGroupResourceProfile_result)
+        return this.equals((updateGroupResourceProfile_result)that);
+      return false;
+    }
+
+    public boolean equals(updateGroupResourceProfile_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(updateGroupResourceProfile_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateGroupResourceProfile_result(");
+      boolean first = true;
+
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class updateGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateGroupResourceProfile_resultStandardScheme getScheme() {
+        return new updateGroupResourceProfile_resultStandardScheme();
+      }
+    }
+
+    private static class updateGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateGroupResourceProfile_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class updateGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateGroupResourceProfile_resultTupleScheme getScheme() {
+        return new updateGroupResourceProfile_resultTupleScheme();
+      }
+    }
+
+    private static class updateGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateGroupResourceProfile_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetRse()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class getGroupResourceProfile_args implements org.apache.thrift.TBase<getGroupResourceProfile_args, getGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceProfile_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceProfile_args");
+
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceProfile_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceProfile_argsTupleSchemeFactory();
+
+    public java.lang.String groupResourceProfileId; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      GROUP_RESOURCE_PROFILE_ID((short)1, "groupResourceProfileId");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // GROUP_RESOURCE_PROFILE_ID
+            return GROUP_RESOURCE_PROFILE_ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupResourceProfile_args.class, metaDataMap);
+    }
+
+    public getGroupResourceProfile_args() {
+    }
+
+    public getGroupResourceProfile_args(
+      java.lang.String groupResourceProfileId)
+    {
+      this();
+      this.groupResourceProfileId = groupResourceProfileId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getGroupResourceProfile_args(getGroupResourceProfile_args other) {
+      if (other.isSetGroupResourceProfileId()) {
+        this.groupResourceProfileId = other.groupResourceProfileId;
+      }
+    }
+
+    public getGroupResourceProfile_args deepCopy() {
+      return new getGroupResourceProfile_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.groupResourceProfileId = null;
+    }
+
+    public java.lang.String getGroupResourceProfileId() {
+      return this.groupResourceProfileId;
+    }
+
+    public getGroupResourceProfile_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
+      this.groupResourceProfileId = groupResourceProfileId;
+      return this;
+    }
+
+    public void unsetGroupResourceProfileId() {
+      this.groupResourceProfileId = null;
+    }
+
+    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfileId() {
+      return this.groupResourceProfileId != null;
+    }
+
+    public void setGroupResourceProfileIdIsSet(boolean value) {
+      if (!value) {
+        this.groupResourceProfileId = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE_ID:
+        if (value == null) {
+          unsetGroupResourceProfileId();
+        } else {
+          setGroupResourceProfileId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE_ID:
+        return getGroupResourceProfileId();
+
+      }
+      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 GROUP_RESOURCE_PROFILE_ID:
+        return isSetGroupResourceProfileId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getGroupResourceProfile_args)
+        return this.equals((getGroupResourceProfile_args)that);
+      return false;
+    }
+
+    public boolean equals(getGroupResourceProfile_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
+      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
+      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
+        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+          return false;
+        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
+      if (isSetGroupResourceProfileId())
+        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(getGroupResourceProfile_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGroupResourceProfileId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceProfile_args(");
+      boolean first = true;
+
+      sb.append("groupResourceProfileId:");
+      if (this.groupResourceProfileId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.groupResourceProfileId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (groupResourceProfileId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceProfile_argsStandardScheme getScheme() {
+        return new getGroupResourceProfile_argsStandardScheme();
+      }
+    }
+
+    private static class getGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceProfile_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // GROUP_RESOURCE_PROFILE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.groupResourceProfileId = iprot.readString();
+                struct.setGroupResourceProfileIdIsSet(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, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.groupResourceProfileId != null) {
+          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
+          oprot.writeString(struct.groupResourceProfileId);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceProfile_argsTupleScheme getScheme() {
+        return new getGroupResourceProfile_argsTupleScheme();
+      }
+    }
+
+    private static class getGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceProfile_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        oprot.writeString(struct.groupResourceProfileId);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.groupResourceProfileId = iprot.readString();
+        struct.setGroupResourceProfileIdIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class getGroupResourceProfile_result implements org.apache.thrift.TBase<getGroupResourceProfile_result, getGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceProfile_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceProfile_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceProfile_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceProfile_resultTupleSchemeFactory();
+
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile success; // required
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile.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(getGroupResourceProfile_result.class, metaDataMap);
+    }
+
+    public getGroupResourceProfile_result() {
+    }
+
+    public getGroupResourceProfile_result(
+      org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile 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 getGroupResourceProfile_result(getGroupResourceProfile_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other.success);
+      }
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public getGroupResourceProfile_result deepCopy() {
+      return new getGroupResourceProfile_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.rse = null;
+    }
+
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile getSuccess() {
+      return this.success;
+    }
+
+    public getGroupResourceProfile_result setSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile 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 getGroupResourceProfile_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((org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile)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();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getGroupResourceProfile_result)
+        return this.equals((getGroupResourceProfile_result)that);
+      return false;
+    }
+
+    public boolean equals(getGroupResourceProfile_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(getGroupResourceProfile_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceProfile_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceProfile_resultStandardScheme getScheme() {
+        return new getGroupResourceProfile_resultStandardScheme();
+      }
+    }
+
+    private static class getGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceProfile_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+                struct.success.read(iprot);
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          struct.success.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceProfile_resultTupleScheme getScheme() {
+        return new getGroupResourceProfile_resultTupleScheme();
+      }
+    }
+
+    private static class getGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceProfile_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          struct.success.write(oprot);
+        }
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+          struct.success.read(iprot);
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class removeGroupResourceProfile_args implements org.apache.thrift.TBase<removeGroupResourceProfile_args, removeGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupResourceProfile_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupResourceProfile_args");
+
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupResourceProfile_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupResourceProfile_argsTupleSchemeFactory();
+
+    public java.lang.String groupResourceProfileId; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      GROUP_RESOURCE_PROFILE_ID((short)1, "groupResourceProfileId");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // GROUP_RESOURCE_PROFILE_ID
+            return GROUP_RESOURCE_PROFILE_ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupResourceProfile_args.class, metaDataMap);
+    }
+
+    public removeGroupResourceProfile_args() {
+    }
+
+    public removeGroupResourceProfile_args(
+      java.lang.String groupResourceProfileId)
+    {
+      this();
+      this.groupResourceProfileId = groupResourceProfileId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public removeGroupResourceProfile_args(removeGroupResourceProfile_args other) {
+      if (other.isSetGroupResourceProfileId()) {
+        this.groupResourceProfileId = other.groupResourceProfileId;
+      }
+    }
+
+    public removeGroupResourceProfile_args deepCopy() {
+      return new removeGroupResourceProfile_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.groupResourceProfileId = null;
+    }
+
+    public java.lang.String getGroupResourceProfileId() {
+      return this.groupResourceProfileId;
+    }
+
+    public removeGroupResourceProfile_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
+      this.groupResourceProfileId = groupResourceProfileId;
+      return this;
+    }
+
+    public void unsetGroupResourceProfileId() {
+      this.groupResourceProfileId = null;
+    }
+
+    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfileId() {
+      return this.groupResourceProfileId != null;
+    }
+
+    public void setGroupResourceProfileIdIsSet(boolean value) {
+      if (!value) {
+        this.groupResourceProfileId = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE_ID:
+        if (value == null) {
+          unsetGroupResourceProfileId();
+        } else {
+          setGroupResourceProfileId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case GROUP_RESOURCE_PROFILE_ID:
+        return getGroupResourceProfileId();
+
+      }
+      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 GROUP_RESOURCE_PROFILE_ID:
+        return isSetGroupResourceProfileId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof removeGroupResourceProfile_args)
+        return this.equals((removeGroupResourceProfile_args)that);
+      return false;
+    }
+
+    public boolean equals(removeGroupResourceProfile_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
+      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
+      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
+        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+          return false;
+        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
+      if (isSetGroupResourceProfileId())
+        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(removeGroupResourceProfile_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGroupResourceProfileId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupResourceProfile_args(");
+      boolean first = true;
+
+      sb.append("groupResourceProfileId:");
+      if (this.groupResourceProfileId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.groupResourceProfileId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (groupResourceProfileId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class removeGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupResourceProfile_argsStandardScheme getScheme() {
+        return new removeGroupResourceProfile_argsStandardScheme();
+      }
+    }
+
+    private static class removeGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupResourceProfile_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // GROUP_RESOURCE_PROFILE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.groupResourceProfileId = iprot.readString();
+                struct.setGroupResourceProfileIdIsSet(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, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.groupResourceProfileId != null) {
+          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
+          oprot.writeString(struct.groupResourceProfileId);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class removeGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupResourceProfile_argsTupleScheme getScheme() {
+        return new removeGroupResourceProfile_argsTupleScheme();
+      }
+    }
+
+    private static class removeGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupResourceProfile_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        oprot.writeString(struct.groupResourceProfileId);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.groupResourceProfileId = iprot.readString();
+        struct.setGroupResourceProfileIdIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class removeGroupResourceProfile_result implements org.apache.thrift.TBase<removeGroupResourceProfile_result, removeGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupResourceProfile_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupResourceProfile_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupResourceProfile_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupResourceProfile_resultTupleSchemeFactory();
+
+    public boolean success; // required
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+      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(removeGroupResourceProfile_result.class, metaDataMap);
+    }
+
+    public removeGroupResourceProfile_result() {
+    }
+
+    public removeGroupResourceProfile_result(
+      boolean success,
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public removeGroupResourceProfile_result(removeGroupResourceProfile_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public removeGroupResourceProfile_result deepCopy() {
+      return new removeGroupResourceProfile_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
+      this.rse = null;
+    }
+
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public removeGroupResourceProfile_result setSuccess(boolean success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public removeGroupResourceProfile_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.lang.Boolean)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 isSuccess();
+
+      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();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof removeGroupResourceProfile_result)
+        return this.equals((removeGroupResourceProfile_result)that);
+      return false;
+    }
+
+    public boolean equals(removeGroupResourceProfile_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
+      hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
+      if (isSetRse())
+        hashCode = hashCode * 8191 + rse.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(removeGroupResourceProfile_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupResourceProfile_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class removeGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupResourceProfile_resultStandardScheme getScheme() {
+        return new removeGroupResourceProfile_resultStandardScheme();
+      }
+    }
+
+    private static class removeGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupResourceProfile_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeBool(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class removeGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupResourceProfile_resultTupleScheme getScheme() {
+        return new removeGroupResourceProfile_resultTupleScheme();
+      }
+    }
+
+    private static class removeGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupResourceProfile_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeBool(struct.success);
+        }
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readBool();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class getGroupResourceList_args implements org.apache.thrift.TBase<getGroupResourceList_args, getGroupResourceList_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceList_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceList_args");
+
+    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField ACCESSIBLE_GROUP_RES_PROFILE_IDS_FIELD_DESC = new org.apache.thrift.protocol.TField("accessibleGroupResProfileIds", org.apache.thrift.protocol.TType.LIST, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceList_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceList_argsTupleSchemeFactory();
+
+    public java.lang.String gatewayId; // required
+    public java.util.List<java.lang.String> accessibleGroupResProfileIds; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      GATEWAY_ID((short)1, "gatewayId"),
+      ACCESSIBLE_GROUP_RES_PROFILE_IDS((short)2, "accessibleGroupResProfileIds");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // GATEWAY_ID
+            return GATEWAY_ID;
+          case 2: // ACCESSIBLE_GROUP_RES_PROFILE_IDS
+            return ACCESSIBLE_GROUP_RES_PROFILE_IDS;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.ACCESSIBLE_GROUP_RES_PROFILE_IDS, new org.apache.thrift.meta_data.FieldMetaData("accessibleGroupResProfileIds", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupResourceList_args.class, metaDataMap);
+    }
+
+    public getGroupResourceList_args() {
+    }
+
+    public getGroupResourceList_args(
+      java.lang.String gatewayId,
+      java.util.List<java.lang.String> accessibleGroupResProfileIds)
+    {
+      this();
+      this.gatewayId = gatewayId;
+      this.accessibleGroupResProfileIds = accessibleGroupResProfileIds;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getGroupResourceList_args(getGroupResourceList_args other) {
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
+      if (other.isSetAccessibleGroupResProfileIds()) {
+        java.util.List<java.lang.String> __this__accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(other.accessibleGroupResProfileIds);
+        this.accessibleGroupResProfileIds = __this__accessibleGroupResProfileIds;
+      }
+    }
+
+    public getGroupResourceList_args deepCopy() {
+      return new getGroupResourceList_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.gatewayId = null;
+      this.accessibleGroupResProfileIds = null;
+    }
+
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public getGroupResourceList_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
+      return this;
+    }
+
+    public void unsetGatewayId() {
+      this.gatewayId = null;
+    }
+
+    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
+    }
+
+    public void setGatewayIdIsSet(boolean value) {
+      if (!value) {
+        this.gatewayId = null;
+      }
+    }
+
+    public int getAccessibleGroupResProfileIdsSize() {
+      return (this.accessibleGroupResProfileIds == null) ? 0 : this.accessibleGroupResProfileIds.size();
+    }
+
+    public java.util.Iterator<java.lang.String> getAccessibleGroupResProfileIdsIterator() {
+      return (this.accessibleGroupResProfileIds == null) ? null : this.accessibleGroupResProfileIds.iterator();
+    }
+
+    public void addToAccessibleGroupResProfileIds(java.lang.String elem) {
+      if (this.accessibleGroupResProfileIds == null) {
+        this.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>();
+      }
+      this.accessibleGroupResProfileIds.add(elem);
+    }
+
+    public java.util.List<java.lang.String> getAccessibleGroupResProfileIds() {
+      return this.accessibleGroupResProfileIds;
+    }
+
+    public getGroupResourceList_args setAccessibleGroupResProfileIds(java.util.List<java.lang.String> accessibleGroupResProfileIds) {
+      this.accessibleGroupResProfileIds = accessibleGroupResProfileIds;
+      return this;
+    }
+
+    public void unsetAccessibleGroupResProfileIds() {
+      this.accessibleGroupResProfileIds = null;
+    }
+
+    /** Returns true if field accessibleGroupResProfileIds is set (has been assigned a value) and false otherwise */
+    public boolean isSetAccessibleGroupResProfileIds() {
+      return this.accessibleGroupResProfileIds != null;
+    }
+
+    public void setAccessibleGroupResProfileIdsIsSet(boolean value) {
+      if (!value) {
+        this.accessibleGroupResProfileIds = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((java.lang.String)value);
+        }
+        break;
+
+      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
+        if (value == null) {
+          unsetAccessibleGroupResProfileIds();
+        } else {
+          setAccessibleGroupResProfileIds((java.util.List<java.lang.String>)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case GATEWAY_ID:
+        return getGatewayId();
+
+      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
+        return getAccessibleGroupResProfileIds();
+
+      }
+      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 GATEWAY_ID:
+        return isSetGatewayId();
+      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
+        return isSetAccessibleGroupResProfileIds();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getGroupResourceList_args)
+        return this.equals((getGroupResourceList_args)that);
+      return false;
+    }
+
+    public boolean equals(getGroupResourceList_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
+          return false;
+        if (!this.gatewayId.equals(that.gatewayId))
+          return false;
+      }
+
+      boolean this_present_accessibleGroupResProfileIds = true && this.isSetAccessibleGroupResProfileIds();
+      boolean that_present_accessibleGroupResProfileIds = true && that.isSetAccessibleGroupResProfileIds();
+      if (this_present_accessibleGroupResProfileIds || that_present_accessibleGroupResProfileIds) {
+        if (!(this_present_accessibleGroupResProfileIds && that_present_accessibleGroupResProfileIds))
+          return false;
+        if (!this.accessibleGroupResProfileIds.equals(that.accessibleGroupResProfileIds))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAccessibleGroupResProfileIds()) ? 131071 : 524287);
+      if (isSetAccessibleGroupResProfileIds())
+        hashCode = hashCode * 8191 + accessibleGroupResProfileIds.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(getGroupResourceList_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAccessibleGroupResProfileIds()).compareTo(other.isSetAccessibleGroupResProfileIds());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAccessibleGroupResProfileIds()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.accessibleGroupResProfileIds, other.accessibleGroupResProfileIds);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceList_args(");
+      boolean first = true;
+
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("accessibleGroupResProfileIds:");
+      if (this.accessibleGroupResProfileIds == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.accessibleGroupResProfileIds);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      }
+      if (accessibleGroupResProfileIds == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'accessibleGroupResProfileIds' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getGroupResourceList_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceList_argsStandardScheme getScheme() {
+        return new getGroupResourceList_argsStandardScheme();
+      }
+    }
+
+    private static class getGroupResourceList_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceList_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // ACCESSIBLE_GROUP_RES_PROFILE_IDS
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list418 = iprot.readListBegin();
+                  struct.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(_list418.size);
+                  java.lang.String _elem419;
+                  for (int _i420 = 0; _i420 < _list418.size; ++_i420)
+                  {
+                    _elem419 = iprot.readString();
+                    struct.accessibleGroupResProfileIds.add(_elem419);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setAccessibleGroupResProfileIdsIsSet(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, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.accessibleGroupResProfileIds != null) {
+          oprot.writeFieldBegin(ACCESSIBLE_GROUP_RES_PROFILE_IDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.accessibleGroupResProfileIds.size()));
+            for (java.lang.String _iter421 : struct.accessibleGroupResProfileIds)
+            {
+              oprot.writeString(_iter421);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getGroupResourceList_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceList_argsTupleScheme getScheme() {
+        return new getGroupResourceList_argsTupleScheme();
+      }
+    }
+
+    private static class getGroupResourceList_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceList_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        oprot.writeString(struct.gatewayId);
+        {
+          oprot.writeI32(struct.accessibleGroupResProfileIds.size());
+          for (java.lang.String _iter422 : struct.accessibleGroupResProfileIds)
+          {
+            oprot.writeString(_iter422);
+          }
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+        {
+          org.apache.thrift.protocol.TList _list423 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(_list423.size);
+          java.lang.String _elem424;
+          for (int _i425 = 0; _i425 < _list423.size; ++_i425)
+          {
+            _elem424 = iprot.readString();
+            struct.accessibleGroupResProfileIds.add(_elem424);
+          }
+        }
+        struct.setAccessibleGroupResProfileIdsIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class getGroupResourceList_result implements org.apache.thrift.TBase<getGroupResourceList_result, getGroupResourceList_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceList_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceList_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceList_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceList_resultTupleSchemeFactory();
+
+    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> success; // required
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      RSE((short)1, "rse");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // RSE
+            return RSE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.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.appcatalog.groupresourceprofile.GroupResourceProfile.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(getGroupResourceList_result.class, metaDataMap);
+    }
+
+    public getGroupResourceList_result() {
+    }
+
+    public getGroupResourceList_result(
+      java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> 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 getGroupResourceList_result(getGroupResourceList_result other) {
+      if (other.isSetSuccess()) {
+        java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(other.success.size());
+        for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other_element));
+        }
+        this.success = __this__success;
+      }
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public getGroupResourceList_result deepCopy() {
+      return new getGroupResourceList_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.appcatalog.groupresourceprofile.GroupResourceProfile> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getSuccess() {
+      return this.success;
+    }
+
+    public getGroupResourceList_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> 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 getGroupResourceList_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.appcatalog.groupresourceprofile.GroupResourceProfile>)value);
         }
         break;
 
@@ -188090,12 +192070,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof createGroupResourceProfile_result)
-        return this.equals((createGroupResourceProfile_result)that);
+      if (that instanceof getGroupResourceList_result)
+        return this.equals((getGroupResourceList_result)that);
       return false;
     }
 
-    public boolean equals(createGroupResourceProfile_result that) {
+    public boolean equals(getGroupResourceList_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -188138,7 +192118,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(createGroupResourceProfile_result other) {
+    public int compareTo(getGroupResourceList_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -188182,7 +192162,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("createGroupResourceProfile_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceList_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -188225,15 +192205,15 @@ public class RegistryService {
       }
     }
 
-    private static class createGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public createGroupResourceProfile_resultStandardScheme getScheme() {
-        return new createGroupResourceProfile_resultStandardScheme();
+    private static class getGroupResourceList_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceList_resultStandardScheme getScheme() {
+        return new getGroupResourceList_resultStandardScheme();
       }
     }
 
-    private static class createGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<createGroupResourceProfile_result> {
+    private static class getGroupResourceList_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceList_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -188244,8 +192224,19 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list426 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(_list426.size);
+                  org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _elem427;
+                  for (int _i428 = 0; _i428 < _list426.size; ++_i428)
+                  {
+                    _elem427 = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+                    _elem427.read(iprot);
+                    struct.success.add(_elem427);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -188271,13 +192262,20 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _iter429 : struct.success)
+            {
+              _iter429.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -188291,16 +192289,16 @@ public class RegistryService {
 
     }
 
-    private static class createGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public createGroupResourceProfile_resultTupleScheme getScheme() {
-        return new createGroupResourceProfile_resultTupleScheme();
+    private static class getGroupResourceList_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupResourceList_resultTupleScheme getScheme() {
+        return new getGroupResourceList_resultTupleScheme();
       }
     }
 
-    private static class createGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<createGroupResourceProfile_result> {
+    private static class getGroupResourceList_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceList_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -188311,7 +192309,13 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _iter430 : struct.success)
+            {
+              _iter430.write(oprot);
+            }
+          }
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -188319,11 +192323,21 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, createGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
+          {
+            org.apache.thrift.protocol.TList _list431 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(_list431.size);
+            org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _elem432;
+            for (int _i433 = 0; _i433 < _list431.size; ++_i433)
+            {
+              _elem432 = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
+              _elem432.read(iprot);
+              struct.success.add(_elem432);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -188339,19 +192353,22 @@ public class RegistryService {
     }
   }
 
-  public static class updateGroupResourceProfile_args implements org.apache.thrift.TBase<updateGroupResourceProfile_args, updateGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateGroupResourceProfile_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGroupResourceProfile_args");
+  public static class removeGroupComputePrefs_args implements org.apache.thrift.TBase<removeGroupComputePrefs_args, removeGroupComputePrefs_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputePrefs_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputePrefs_args");
 
-    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfile", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateGroupResourceProfile_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateGroupResourceProfile_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputePrefs_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputePrefs_argsTupleSchemeFactory();
 
-    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile; // required
+    public java.lang.String computeResourceId; // required
+    public java.lang.String groupResourceProfileId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      GROUP_RESOURCE_PROFILE((short)1, "groupResourceProfile");
+      COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
+      GROUP_RESOURCE_PROFILE_ID((short)2, "groupResourceProfileId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -188366,8 +192383,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // GROUP_RESOURCE_PROFILE
-            return GROUP_RESOURCE_PROFILE;
+          case 1: // COMPUTE_RESOURCE_ID
+            return COMPUTE_RESOURCE_ID;
+          case 2: // GROUP_RESOURCE_PROFILE_ID
+            return GROUP_RESOURCE_PROFILE_ID;
           default:
             return null;
         }
@@ -188411,71 +192430,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfile", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile.class)));
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateGroupResourceProfile_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputePrefs_args.class, metaDataMap);
     }
 
-    public updateGroupResourceProfile_args() {
+    public removeGroupComputePrefs_args() {
     }
 
-    public updateGroupResourceProfile_args(
-      org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile)
+    public removeGroupComputePrefs_args(
+      java.lang.String computeResourceId,
+      java.lang.String groupResourceProfileId)
     {
       this();
-      this.groupResourceProfile = groupResourceProfile;
+      this.computeResourceId = computeResourceId;
+      this.groupResourceProfileId = groupResourceProfileId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateGroupResourceProfile_args(updateGroupResourceProfile_args other) {
-      if (other.isSetGroupResourceProfile()) {
-        this.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other.groupResourceProfile);
+    public removeGroupComputePrefs_args(removeGroupComputePrefs_args other) {
+      if (other.isSetComputeResourceId()) {
+        this.computeResourceId = other.computeResourceId;
+      }
+      if (other.isSetGroupResourceProfileId()) {
+        this.groupResourceProfileId = other.groupResourceProfileId;
       }
     }
 
-    public updateGroupResourceProfile_args deepCopy() {
-      return new updateGroupResourceProfile_args(this);
+    public removeGroupComputePrefs_args deepCopy() {
+      return new removeGroupComputePrefs_args(this);
     }
 
     @Override
     public void clear() {
-      this.groupResourceProfile = null;
+      this.computeResourceId = null;
+      this.groupResourceProfileId = null;
     }
 
-    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile getGroupResourceProfile() {
-      return this.groupResourceProfile;
+    public java.lang.String getComputeResourceId() {
+      return this.computeResourceId;
     }
 
-    public updateGroupResourceProfile_args setGroupResourceProfile(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) {
-      this.groupResourceProfile = groupResourceProfile;
+    public removeGroupComputePrefs_args setComputeResourceId(java.lang.String computeResourceId) {
+      this.computeResourceId = computeResourceId;
       return this;
     }
 
-    public void unsetGroupResourceProfile() {
-      this.groupResourceProfile = null;
+    public void unsetComputeResourceId() {
+      this.computeResourceId = null;
     }
 
-    /** Returns true if field groupResourceProfile is set (has been assigned a value) and false otherwise */
-    public boolean isSetGroupResourceProfile() {
-      return this.groupResourceProfile != null;
+    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourceId() {
+      return this.computeResourceId != null;
     }
 
-    public void setGroupResourceProfileIsSet(boolean value) {
+    public void setComputeResourceIdIsSet(boolean value) {
       if (!value) {
-        this.groupResourceProfile = null;
+        this.computeResourceId = null;
+      }
+    }
+
+    public java.lang.String getGroupResourceProfileId() {
+      return this.groupResourceProfileId;
+    }
+
+    public removeGroupComputePrefs_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
+      this.groupResourceProfileId = groupResourceProfileId;
+      return this;
+    }
+
+    public void unsetGroupResourceProfileId() {
+      this.groupResourceProfileId = null;
+    }
+
+    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfileId() {
+      return this.groupResourceProfileId != null;
+    }
+
+    public void setGroupResourceProfileIdIsSet(boolean value) {
+      if (!value) {
+        this.groupResourceProfileId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE:
+      case COMPUTE_RESOURCE_ID:
         if (value == null) {
-          unsetGroupResourceProfile();
+          unsetComputeResourceId();
         } else {
-          setGroupResourceProfile((org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile)value);
+          setComputeResourceId((java.lang.String)value);
+        }
+        break;
+
+      case GROUP_RESOURCE_PROFILE_ID:
+        if (value == null) {
+          unsetGroupResourceProfileId();
+        } else {
+          setGroupResourceProfileId((java.lang.String)value);
         }
         break;
 
@@ -188484,8 +192543,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE:
-        return getGroupResourceProfile();
+      case COMPUTE_RESOURCE_ID:
+        return getComputeResourceId();
+
+      case GROUP_RESOURCE_PROFILE_ID:
+        return getGroupResourceProfileId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -188498,8 +192560,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case GROUP_RESOURCE_PROFILE:
-        return isSetGroupResourceProfile();
+      case COMPUTE_RESOURCE_ID:
+        return isSetComputeResourceId();
+      case GROUP_RESOURCE_PROFILE_ID:
+        return isSetGroupResourceProfileId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -188508,23 +192572,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateGroupResourceProfile_args)
-        return this.equals((updateGroupResourceProfile_args)that);
+      if (that instanceof removeGroupComputePrefs_args)
+        return this.equals((removeGroupComputePrefs_args)that);
       return false;
     }
 
-    public boolean equals(updateGroupResourceProfile_args that) {
+    public boolean equals(removeGroupComputePrefs_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_groupResourceProfile = true && this.isSetGroupResourceProfile();
-      boolean that_present_groupResourceProfile = true && that.isSetGroupResourceProfile();
-      if (this_present_groupResourceProfile || that_present_groupResourceProfile) {
-        if (!(this_present_groupResourceProfile && that_present_groupResourceProfile))
+      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+      if (this_present_computeResourceId || that_present_computeResourceId) {
+        if (!(this_present_computeResourceId && that_present_computeResourceId))
           return false;
-        if (!this.groupResourceProfile.equals(that.groupResourceProfile))
+        if (!this.computeResourceId.equals(that.computeResourceId))
+          return false;
+      }
+
+      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
+      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
+      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
+        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+          return false;
+        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
           return false;
       }
 
@@ -188535,27 +192608,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetGroupResourceProfile()) ? 131071 : 524287);
-      if (isSetGroupResourceProfile())
-        hashCode = hashCode * 8191 + groupResourceProfile.hashCode();
+      hashCode = hashCode * 8191 + ((isSetComputeResourceId()) ? 131071 : 524287);
+      if (isSetComputeResourceId())
+        hashCode = hashCode * 8191 + computeResourceId.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
+      if (isSetGroupResourceProfileId())
+        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(updateGroupResourceProfile_args other) {
+    public int compareTo(removeGroupComputePrefs_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfile()).compareTo(other.isSetGroupResourceProfile());
+      lastComparison = java.lang.Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGroupResourceProfile()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfile, other.groupResourceProfile);
+      if (isSetComputeResourceId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGroupResourceProfileId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -188577,14 +192664,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateGroupResourceProfile_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputePrefs_args(");
       boolean first = true;
 
-      sb.append("groupResourceProfile:");
-      if (this.groupResourceProfile == null) {
+      sb.append("computeResourceId:");
+      if (this.computeResourceId == null) {
         sb.append("null");
       } else {
-        sb.append(this.groupResourceProfile);
+        sb.append(this.computeResourceId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("groupResourceProfileId:");
+      if (this.groupResourceProfileId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.groupResourceProfileId);
       }
       first = false;
       sb.append(")");
@@ -188593,13 +192688,13 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (groupResourceProfile == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfile' was not present! Struct: " + toString());
+      if (computeResourceId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
       }
-      // check for sub-struct validity
-      if (groupResourceProfile != null) {
-        groupResourceProfile.validate();
+      if (groupResourceProfileId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
       }
+      // check for sub-struct validity
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -188618,15 +192713,15 @@ public class RegistryService {
       }
     }
 
-    private static class updateGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateGroupResourceProfile_argsStandardScheme getScheme() {
-        return new updateGroupResourceProfile_argsStandardScheme();
+    private static class removeGroupComputePrefs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputePrefs_argsStandardScheme getScheme() {
+        return new removeGroupComputePrefs_argsStandardScheme();
       }
     }
 
-    private static class updateGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateGroupResourceProfile_args> {
+    private static class removeGroupComputePrefs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputePrefs_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -188636,11 +192731,18 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // GROUP_RESOURCE_PROFILE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-                struct.groupResourceProfile.read(iprot);
-                struct.setGroupResourceProfileIsSet(true);
+            case 1: // COMPUTE_RESOURCE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.computeResourceId = iprot.readString();
+                struct.setComputeResourceIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // GROUP_RESOURCE_PROFILE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.groupResourceProfileId = iprot.readString();
+                struct.setGroupResourceProfileIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -188656,13 +192758,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.groupResourceProfile != null) {
-          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_FIELD_DESC);
-          struct.groupResourceProfile.write(oprot);
+        if (struct.computeResourceId != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.computeResourceId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.groupResourceProfileId != null) {
+          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
+          oprot.writeString(struct.groupResourceProfileId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -188671,26 +192778,28 @@ public class RegistryService {
 
     }
 
-    private static class updateGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateGroupResourceProfile_argsTupleScheme getScheme() {
-        return new updateGroupResourceProfile_argsTupleScheme();
+    private static class removeGroupComputePrefs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputePrefs_argsTupleScheme getScheme() {
+        return new removeGroupComputePrefs_argsTupleScheme();
       }
     }
 
-    private static class updateGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateGroupResourceProfile_args> {
+    private static class removeGroupComputePrefs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputePrefs_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.groupResourceProfile.write(oprot);
+        oprot.writeString(struct.computeResourceId);
+        oprot.writeString(struct.groupResourceProfileId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.groupResourceProfile = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-        struct.groupResourceProfile.read(iprot);
-        struct.setGroupResourceProfileIsSet(true);
+        struct.computeResourceId = iprot.readString();
+        struct.setComputeResourceIdIsSet(true);
+        struct.groupResourceProfileId = iprot.readString();
+        struct.setGroupResourceProfileIdIsSet(true);
       }
     }
 
@@ -188699,18 +192808,21 @@ public class RegistryService {
     }
   }
 
-  public static class updateGroupResourceProfile_result implements org.apache.thrift.TBase<updateGroupResourceProfile_result, updateGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateGroupResourceProfile_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGroupResourceProfile_result");
+  public static class removeGroupComputePrefs_result implements org.apache.thrift.TBase<removeGroupComputePrefs_result, removeGroupComputePrefs_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputePrefs_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputePrefs_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateGroupResourceProfile_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateGroupResourceProfile_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputePrefs_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputePrefs_resultTupleSchemeFactory();
 
+    public boolean success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
       RSE((short)1, "rse");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -188726,6 +192838,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // RSE
             return RSE;
           default:
@@ -188768,48 +192882,82 @@ public class RegistryService {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       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(updateGroupResourceProfile_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputePrefs_result.class, metaDataMap);
     }
 
-    public updateGroupResourceProfile_result() {
+    public removeGroupComputePrefs_result() {
     }
 
-    public updateGroupResourceProfile_result(
+    public removeGroupComputePrefs_result(
+      boolean success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
+      this.success = success;
+      setSuccessIsSet(true);
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateGroupResourceProfile_result(updateGroupResourceProfile_result other) {
+    public removeGroupComputePrefs_result(removeGroupComputePrefs_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public updateGroupResourceProfile_result deepCopy() {
-      return new updateGroupResourceProfile_result(this);
+    public removeGroupComputePrefs_result deepCopy() {
+      return new removeGroupComputePrefs_result(this);
     }
 
     @Override
     public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
       this.rse = null;
     }
 
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public removeGroupComputePrefs_result setSuccess(boolean success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public updateGroupResourceProfile_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public removeGroupComputePrefs_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -188831,6 +192979,14 @@ public class RegistryService {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.lang.Boolean)value);
+        }
+        break;
+
       case RSE:
         if (value == null) {
           unsetRse();
@@ -188844,6 +193000,9 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return isSuccess();
+
       case RSE:
         return getRse();
 
@@ -188858,6 +193017,8 @@ public class RegistryService {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case RSE:
         return isSetRse();
       }
@@ -188868,17 +193029,26 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateGroupResourceProfile_result)
-        return this.equals((updateGroupResourceProfile_result)that);
+      if (that instanceof removeGroupComputePrefs_result)
+        return this.equals((removeGroupComputePrefs_result)that);
       return false;
     }
 
-    public boolean equals(updateGroupResourceProfile_result that) {
+    public boolean equals(removeGroupComputePrefs_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
       boolean this_present_rse = true && this.isSetRse();
       boolean that_present_rse = true && that.isSetRse();
       if (this_present_rse || that_present_rse) {
@@ -188895,6 +193065,8 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
         hashCode = hashCode * 8191 + rse.hashCode();
@@ -188903,13 +193075,23 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(updateGroupResourceProfile_result other) {
+    public int compareTo(removeGroupComputePrefs_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       lastComparison = java.lang.Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
       if (lastComparison != 0) {
         return lastComparison;
@@ -188937,9 +193119,13 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateGroupResourceProfile_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputePrefs_result(");
       boolean first = true;
 
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
       sb.append("rse:");
       if (this.rse == null) {
         sb.append("null");
@@ -188966,21 +193152,23 @@ public class RegistryService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class updateGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateGroupResourceProfile_resultStandardScheme getScheme() {
-        return new updateGroupResourceProfile_resultStandardScheme();
+    private static class removeGroupComputePrefs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputePrefs_resultStandardScheme getScheme() {
+        return new removeGroupComputePrefs_resultStandardScheme();
       }
     }
 
-    private static class updateGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateGroupResourceProfile_result> {
+    private static class removeGroupComputePrefs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputePrefs_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -188990,6 +193178,14 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // RSE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
@@ -189010,10 +193206,15 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeBool(struct.success);
+          oprot.writeFieldEnd();
+        }
         if (struct.rse != null) {
           oprot.writeFieldBegin(RSE_FIELD_DESC);
           struct.rse.write(oprot);
@@ -189025,32 +193226,42 @@ public class RegistryService {
 
     }
 
-    private static class updateGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateGroupResourceProfile_resultTupleScheme getScheme() {
-        return new updateGroupResourceProfile_resultTupleScheme();
+    private static class removeGroupComputePrefs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputePrefs_resultTupleScheme getScheme() {
+        return new removeGroupComputePrefs_resultTupleScheme();
       }
     }
 
-    private static class updateGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateGroupResourceProfile_result> {
+    private static class removeGroupComputePrefs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputePrefs_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetRse()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeBool(struct.success);
+        }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(1);
+        java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
+          struct.success = iprot.readBool();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
           struct.rse.read(iprot);
           struct.setRseIsSet(true);
@@ -189063,19 +193274,19 @@ public class RegistryService {
     }
   }
 
-  public static class getGroupResourceProfile_args implements org.apache.thrift.TBase<getGroupResourceProfile_args, getGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceProfile_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceProfile_args");
+  public static class removeGroupComputeResourcePolicy_args implements org.apache.thrift.TBase<removeGroupComputeResourcePolicy_args, removeGroupComputeResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputeResourcePolicy_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputeResourcePolicy_args");
 
-    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField RESOURCE_POLICY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourcePolicyId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceProfile_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceProfile_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_argsTupleSchemeFactory();
 
-    public java.lang.String groupResourceProfileId; // required
+    public java.lang.String resourcePolicyId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      GROUP_RESOURCE_PROFILE_ID((short)1, "groupResourceProfileId");
+      RESOURCE_POLICY_ID((short)1, "resourcePolicyId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -189090,8 +193301,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // GROUP_RESOURCE_PROFILE_ID
-            return GROUP_RESOURCE_PROFILE_ID;
+          case 1: // RESOURCE_POLICY_ID
+            return RESOURCE_POLICY_ID;
           default:
             return null;
         }
@@ -189135,71 +193346,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.RESOURCE_POLICY_ID, new org.apache.thrift.meta_data.FieldMetaData("resourcePolicyId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupResourceProfile_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputeResourcePolicy_args.class, metaDataMap);
     }
 
-    public getGroupResourceProfile_args() {
+    public removeGroupComputeResourcePolicy_args() {
     }
 
-    public getGroupResourceProfile_args(
-      java.lang.String groupResourceProfileId)
+    public removeGroupComputeResourcePolicy_args(
+      java.lang.String resourcePolicyId)
     {
       this();
-      this.groupResourceProfileId = groupResourceProfileId;
+      this.resourcePolicyId = resourcePolicyId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getGroupResourceProfile_args(getGroupResourceProfile_args other) {
-      if (other.isSetGroupResourceProfileId()) {
-        this.groupResourceProfileId = other.groupResourceProfileId;
+    public removeGroupComputeResourcePolicy_args(removeGroupComputeResourcePolicy_args other) {
+      if (other.isSetResourcePolicyId()) {
+        this.resourcePolicyId = other.resourcePolicyId;
       }
     }
 
-    public getGroupResourceProfile_args deepCopy() {
-      return new getGroupResourceProfile_args(this);
+    public removeGroupComputeResourcePolicy_args deepCopy() {
+      return new removeGroupComputeResourcePolicy_args(this);
     }
 
     @Override
     public void clear() {
-      this.groupResourceProfileId = null;
+      this.resourcePolicyId = null;
     }
 
-    public java.lang.String getGroupResourceProfileId() {
-      return this.groupResourceProfileId;
+    public java.lang.String getResourcePolicyId() {
+      return this.resourcePolicyId;
     }
 
-    public getGroupResourceProfile_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
-      this.groupResourceProfileId = groupResourceProfileId;
+    public removeGroupComputeResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
+      this.resourcePolicyId = resourcePolicyId;
       return this;
     }
 
-    public void unsetGroupResourceProfileId() {
-      this.groupResourceProfileId = null;
+    public void unsetResourcePolicyId() {
+      this.resourcePolicyId = null;
     }
 
-    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGroupResourceProfileId() {
-      return this.groupResourceProfileId != null;
+    /** Returns true if field resourcePolicyId is set (has been assigned a value) and false otherwise */
+    public boolean isSetResourcePolicyId() {
+      return this.resourcePolicyId != null;
     }
 
-    public void setGroupResourceProfileIdIsSet(boolean value) {
+    public void setResourcePolicyIdIsSet(boolean value) {
       if (!value) {
-        this.groupResourceProfileId = null;
+        this.resourcePolicyId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
+      case RESOURCE_POLICY_ID:
         if (value == null) {
-          unsetGroupResourceProfileId();
+          unsetResourcePolicyId();
         } else {
-          setGroupResourceProfileId((java.lang.String)value);
+          setResourcePolicyId((java.lang.String)value);
         }
         break;
 
@@ -189208,8 +193419,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
-        return getGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return getResourcePolicyId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -189222,8 +193433,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
-        return isSetGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return isSetResourcePolicyId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -189232,23 +193443,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getGroupResourceProfile_args)
-        return this.equals((getGroupResourceProfile_args)that);
+      if (that instanceof removeGroupComputeResourcePolicy_args)
+        return this.equals((removeGroupComputeResourcePolicy_args)that);
       return false;
     }
 
-    public boolean equals(getGroupResourceProfile_args that) {
+    public boolean equals(removeGroupComputeResourcePolicy_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
-      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
-      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
-        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+      boolean this_present_resourcePolicyId = true && this.isSetResourcePolicyId();
+      boolean that_present_resourcePolicyId = true && that.isSetResourcePolicyId();
+      if (this_present_resourcePolicyId || that_present_resourcePolicyId) {
+        if (!(this_present_resourcePolicyId && that_present_resourcePolicyId))
           return false;
-        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
+        if (!this.resourcePolicyId.equals(that.resourcePolicyId))
           return false;
       }
 
@@ -189259,27 +193470,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
-      if (isSetGroupResourceProfileId())
-        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetResourcePolicyId()) ? 131071 : 524287);
+      if (isSetResourcePolicyId())
+        hashCode = hashCode * 8191 + resourcePolicyId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getGroupResourceProfile_args other) {
+    public int compareTo(removeGroupComputeResourcePolicy_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      lastComparison = java.lang.Boolean.valueOf(isSetResourcePolicyId()).compareTo(other.isSetResourcePolicyId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGroupResourceProfileId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
+      if (isSetResourcePolicyId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourcePolicyId, other.resourcePolicyId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -189301,14 +193512,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceProfile_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputeResourcePolicy_args(");
       boolean first = true;
 
-      sb.append("groupResourceProfileId:");
-      if (this.groupResourceProfileId == null) {
+      sb.append("resourcePolicyId:");
+      if (this.resourcePolicyId == null) {
         sb.append("null");
       } else {
-        sb.append(this.groupResourceProfileId);
+        sb.append(this.resourcePolicyId);
       }
       first = false;
       sb.append(")");
@@ -189317,8 +193528,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (groupResourceProfileId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
+      if (resourcePolicyId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourcePolicyId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -189339,15 +193550,15 @@ public class RegistryService {
       }
     }
 
-    private static class getGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceProfile_argsStandardScheme getScheme() {
-        return new getGroupResourceProfile_argsStandardScheme();
+    private static class removeGroupComputeResourcePolicy_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputeResourcePolicy_argsStandardScheme getScheme() {
+        return new removeGroupComputeResourcePolicy_argsStandardScheme();
       }
     }
 
-    private static class getGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceProfile_args> {
+    private static class removeGroupComputeResourcePolicy_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputeResourcePolicy_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -189357,10 +193568,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // GROUP_RESOURCE_PROFILE_ID
+            case 1: // RESOURCE_POLICY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.groupResourceProfileId = iprot.readString();
-                struct.setGroupResourceProfileIdIsSet(true);
+                struct.resourcePolicyId = iprot.readString();
+                struct.setResourcePolicyIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -189376,13 +193587,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.groupResourceProfileId != null) {
-          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
-          oprot.writeString(struct.groupResourceProfileId);
+        if (struct.resourcePolicyId != null) {
+          oprot.writeFieldBegin(RESOURCE_POLICY_ID_FIELD_DESC);
+          oprot.writeString(struct.resourcePolicyId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -189391,25 +193602,25 @@ public class RegistryService {
 
     }
 
-    private static class getGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceProfile_argsTupleScheme getScheme() {
-        return new getGroupResourceProfile_argsTupleScheme();
+    private static class removeGroupComputeResourcePolicy_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputeResourcePolicy_argsTupleScheme getScheme() {
+        return new removeGroupComputeResourcePolicy_argsTupleScheme();
       }
     }
 
-    private static class getGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceProfile_args> {
+    private static class removeGroupComputeResourcePolicy_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputeResourcePolicy_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.groupResourceProfileId);
+        oprot.writeString(struct.resourcePolicyId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.groupResourceProfileId = iprot.readString();
-        struct.setGroupResourceProfileIdIsSet(true);
+        struct.resourcePolicyId = iprot.readString();
+        struct.setResourcePolicyIdIsSet(true);
       }
     }
 
@@ -189418,16 +193629,16 @@ public class RegistryService {
     }
   }
 
-  public static class getGroupResourceProfile_result implements org.apache.thrift.TBase<getGroupResourceProfile_result, getGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceProfile_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceProfile_result");
+  public static class removeGroupComputeResourcePolicy_result implements org.apache.thrift.TBase<removeGroupComputeResourcePolicy_result, removeGroupComputeResourcePolicy_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputeResourcePolicy_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputeResourcePolicy_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceProfile_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceProfile_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile success; // required
+    public boolean success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -189492,80 +193703,82 @@ public class RegistryService {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile.class)));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       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(getGroupResourceProfile_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputeResourcePolicy_result.class, metaDataMap);
     }
 
-    public getGroupResourceProfile_result() {
+    public removeGroupComputeResourcePolicy_result() {
     }
 
-    public getGroupResourceProfile_result(
-      org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile success,
+    public removeGroupComputeResourcePolicy_result(
+      boolean success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
       this.success = success;
+      setSuccessIsSet(true);
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getGroupResourceProfile_result(getGroupResourceProfile_result other) {
-      if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other.success);
-      }
+    public removeGroupComputeResourcePolicy_result(removeGroupComputeResourcePolicy_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getGroupResourceProfile_result deepCopy() {
-      return new getGroupResourceProfile_result(this);
+    public removeGroupComputeResourcePolicy_result deepCopy() {
+      return new removeGroupComputeResourcePolicy_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
+      setSuccessIsSet(false);
+      this.success = false;
       this.rse = null;
     }
 
-    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile getSuccess() {
+    public boolean isSuccess() {
       return this.success;
     }
 
-    public getGroupResourceProfile_result setSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile success) {
+    public removeGroupComputeResourcePolicy_result setSuccess(boolean success) {
       this.success = success;
+      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      this.success = null;
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return this.success != null;
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
     }
 
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public getGroupResourceProfile_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public removeGroupComputeResourcePolicy_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -189591,7 +193804,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile)value);
+          setSuccess((java.lang.Boolean)value);
         }
         break;
 
@@ -189609,7 +193822,7 @@ public class RegistryService {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return getSuccess();
+        return isSuccess();
 
       case RSE:
         return getRse();
@@ -189637,23 +193850,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getGroupResourceProfile_result)
-        return this.equals((getGroupResourceProfile_result)that);
+      if (that instanceof removeGroupComputeResourcePolicy_result)
+        return this.equals((removeGroupComputeResourcePolicy_result)that);
       return false;
     }
 
-    public boolean equals(getGroupResourceProfile_result that) {
+    public boolean equals(removeGroupComputeResourcePolicy_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
+      boolean this_present_success = true;
+      boolean that_present_success = true;
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (!this.success.equals(that.success))
+        if (this.success != that.success)
           return false;
       }
 
@@ -189673,9 +193886,7 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
 
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
@@ -189685,7 +193896,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getGroupResourceProfile_result other) {
+    public int compareTo(removeGroupComputeResourcePolicy_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -189729,15 +193940,11 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceProfile_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputeResourcePolicy_result(");
       boolean first = true;
 
       sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
+      sb.append(this.success);
       first = false;
       if (!first) sb.append(", ");
       sb.append("rse:");
@@ -189754,9 +193961,6 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -189769,21 +193973,23 @@ public class RegistryService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class getGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceProfile_resultStandardScheme getScheme() {
-        return new getGroupResourceProfile_resultStandardScheme();
+    private static class removeGroupComputeResourcePolicy_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputeResourcePolicy_resultStandardScheme getScheme() {
+        return new removeGroupComputeResourcePolicy_resultStandardScheme();
       }
     }
 
-    private static class getGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceProfile_result> {
+    private static class removeGroupComputeResourcePolicy_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputeResourcePolicy_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -189794,9 +194000,8 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -189822,13 +194027,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
+        if (struct.isSetSuccess()) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          oprot.writeBool(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -189842,16 +194047,16 @@ public class RegistryService {
 
     }
 
-    private static class getGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceProfile_resultTupleScheme getScheme() {
-        return new getGroupResourceProfile_resultTupleScheme();
+    private static class removeGroupComputeResourcePolicy_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupComputeResourcePolicy_resultTupleScheme getScheme() {
+        return new removeGroupComputeResourcePolicy_resultTupleScheme();
       }
     }
 
-    private static class getGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceProfile_result> {
+    private static class removeGroupComputeResourcePolicy_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputeResourcePolicy_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -189862,7 +194067,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          oprot.writeBool(struct.success);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -189870,12 +194075,11 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-          struct.success.read(iprot);
+          struct.success = iprot.readBool();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -189891,19 +194095,19 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupResourceProfile_args implements org.apache.thrift.TBase<removeGroupResourceProfile_args, removeGroupResourceProfile_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupResourceProfile_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupResourceProfile_args");
+  public static class removeGroupBatchQueueResourcePolicy_args implements org.apache.thrift.TBase<removeGroupBatchQueueResourcePolicy_args, removeGroupBatchQueueResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupBatchQueueResourcePolicy_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupBatchQueueResourcePolicy_args");
 
-    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField RESOURCE_POLICY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourcePolicyId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupResourceProfile_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupResourceProfile_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_argsTupleSchemeFactory();
 
-    public java.lang.String groupResourceProfileId; // required
+    public java.lang.String resourcePolicyId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      GROUP_RESOURCE_PROFILE_ID((short)1, "groupResourceProfileId");
+      RESOURCE_POLICY_ID((short)1, "resourcePolicyId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -189918,8 +194122,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // GROUP_RESOURCE_PROFILE_ID
-            return GROUP_RESOURCE_PROFILE_ID;
+          case 1: // RESOURCE_POLICY_ID
+            return RESOURCE_POLICY_ID;
           default:
             return null;
         }
@@ -189963,71 +194167,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.RESOURCE_POLICY_ID, new org.apache.thrift.meta_data.FieldMetaData("resourcePolicyId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupResourceProfile_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupBatchQueueResourcePolicy_args.class, metaDataMap);
     }
 
-    public removeGroupResourceProfile_args() {
+    public removeGroupBatchQueueResourcePolicy_args() {
     }
 
-    public removeGroupResourceProfile_args(
-      java.lang.String groupResourceProfileId)
+    public removeGroupBatchQueueResourcePolicy_args(
+      java.lang.String resourcePolicyId)
     {
       this();
-      this.groupResourceProfileId = groupResourceProfileId;
+      this.resourcePolicyId = resourcePolicyId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupResourceProfile_args(removeGroupResourceProfile_args other) {
-      if (other.isSetGroupResourceProfileId()) {
-        this.groupResourceProfileId = other.groupResourceProfileId;
+    public removeGroupBatchQueueResourcePolicy_args(removeGroupBatchQueueResourcePolicy_args other) {
+      if (other.isSetResourcePolicyId()) {
+        this.resourcePolicyId = other.resourcePolicyId;
       }
     }
 
-    public removeGroupResourceProfile_args deepCopy() {
-      return new removeGroupResourceProfile_args(this);
+    public removeGroupBatchQueueResourcePolicy_args deepCopy() {
+      return new removeGroupBatchQueueResourcePolicy_args(this);
     }
 
     @Override
     public void clear() {
-      this.groupResourceProfileId = null;
+      this.resourcePolicyId = null;
     }
 
-    public java.lang.String getGroupResourceProfileId() {
-      return this.groupResourceProfileId;
+    public java.lang.String getResourcePolicyId() {
+      return this.resourcePolicyId;
     }
 
-    public removeGroupResourceProfile_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
-      this.groupResourceProfileId = groupResourceProfileId;
+    public removeGroupBatchQueueResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
+      this.resourcePolicyId = resourcePolicyId;
       return this;
     }
 
-    public void unsetGroupResourceProfileId() {
-      this.groupResourceProfileId = null;
+    public void unsetResourcePolicyId() {
+      this.resourcePolicyId = null;
     }
 
-    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGroupResourceProfileId() {
-      return this.groupResourceProfileId != null;
+    /** Returns true if field resourcePolicyId is set (has been assigned a value) and false otherwise */
+    public boolean isSetResourcePolicyId() {
+      return this.resourcePolicyId != null;
     }
 
-    public void setGroupResourceProfileIdIsSet(boolean value) {
+    public void setResourcePolicyIdIsSet(boolean value) {
       if (!value) {
-        this.groupResourceProfileId = null;
+        this.resourcePolicyId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
+      case RESOURCE_POLICY_ID:
         if (value == null) {
-          unsetGroupResourceProfileId();
+          unsetResourcePolicyId();
         } else {
-          setGroupResourceProfileId((java.lang.String)value);
+          setResourcePolicyId((java.lang.String)value);
         }
         break;
 
@@ -190036,8 +194240,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
-        return getGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return getResourcePolicyId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -190050,8 +194254,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case GROUP_RESOURCE_PROFILE_ID:
-        return isSetGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return isSetResourcePolicyId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -190060,23 +194264,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupResourceProfile_args)
-        return this.equals((removeGroupResourceProfile_args)that);
+      if (that instanceof removeGroupBatchQueueResourcePolicy_args)
+        return this.equals((removeGroupBatchQueueResourcePolicy_args)that);
       return false;
     }
 
-    public boolean equals(removeGroupResourceProfile_args that) {
+    public boolean equals(removeGroupBatchQueueResourcePolicy_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
-      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
-      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
-        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+      boolean this_present_resourcePolicyId = true && this.isSetResourcePolicyId();
+      boolean that_present_resourcePolicyId = true && that.isSetResourcePolicyId();
+      if (this_present_resourcePolicyId || that_present_resourcePolicyId) {
+        if (!(this_present_resourcePolicyId && that_present_resourcePolicyId))
           return false;
-        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
+        if (!this.resourcePolicyId.equals(that.resourcePolicyId))
           return false;
       }
 
@@ -190087,27 +194291,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
-      if (isSetGroupResourceProfileId())
-        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetResourcePolicyId()) ? 131071 : 524287);
+      if (isSetResourcePolicyId())
+        hashCode = hashCode * 8191 + resourcePolicyId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(removeGroupResourceProfile_args other) {
+    public int compareTo(removeGroupBatchQueueResourcePolicy_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      lastComparison = java.lang.Boolean.valueOf(isSetResourcePolicyId()).compareTo(other.isSetResourcePolicyId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGroupResourceProfileId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
+      if (isSetResourcePolicyId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourcePolicyId, other.resourcePolicyId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -190129,14 +194333,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupResourceProfile_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupBatchQueueResourcePolicy_args(");
       boolean first = true;
 
-      sb.append("groupResourceProfileId:");
-      if (this.groupResourceProfileId == null) {
+      sb.append("resourcePolicyId:");
+      if (this.resourcePolicyId == null) {
         sb.append("null");
       } else {
-        sb.append(this.groupResourceProfileId);
+        sb.append(this.resourcePolicyId);
       }
       first = false;
       sb.append(")");
@@ -190145,8 +194349,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (groupResourceProfileId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
+      if (resourcePolicyId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourcePolicyId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -190167,15 +194371,15 @@ public class RegistryService {
       }
     }
 
-    private static class removeGroupResourceProfile_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupResourceProfile_argsStandardScheme getScheme() {
-        return new removeGroupResourceProfile_argsStandardScheme();
+    private static class removeGroupBatchQueueResourcePolicy_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupBatchQueueResourcePolicy_argsStandardScheme getScheme() {
+        return new removeGroupBatchQueueResourcePolicy_argsStandardScheme();
       }
     }
 
-    private static class removeGroupResourceProfile_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupResourceProfile_args> {
+    private static class removeGroupBatchQueueResourcePolicy_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupBatchQueueResourcePolicy_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -190185,10 +194389,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // GROUP_RESOURCE_PROFILE_ID
+            case 1: // RESOURCE_POLICY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.groupResourceProfileId = iprot.readString();
-                struct.setGroupResourceProfileIdIsSet(true);
+                struct.resourcePolicyId = iprot.readString();
+                struct.setResourcePolicyIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -190204,13 +194408,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.groupResourceProfileId != null) {
-          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
-          oprot.writeString(struct.groupResourceProfileId);
+        if (struct.resourcePolicyId != null) {
+          oprot.writeFieldBegin(RESOURCE_POLICY_ID_FIELD_DESC);
+          oprot.writeString(struct.resourcePolicyId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -190219,25 +194423,25 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupResourceProfile_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupResourceProfile_argsTupleScheme getScheme() {
-        return new removeGroupResourceProfile_argsTupleScheme();
+    private static class removeGroupBatchQueueResourcePolicy_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupBatchQueueResourcePolicy_argsTupleScheme getScheme() {
+        return new removeGroupBatchQueueResourcePolicy_argsTupleScheme();
       }
     }
 
-    private static class removeGroupResourceProfile_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupResourceProfile_args> {
+    private static class removeGroupBatchQueueResourcePolicy_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupBatchQueueResourcePolicy_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.groupResourceProfileId);
+        oprot.writeString(struct.resourcePolicyId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.groupResourceProfileId = iprot.readString();
-        struct.setGroupResourceProfileIdIsSet(true);
+        struct.resourcePolicyId = iprot.readString();
+        struct.setResourcePolicyIdIsSet(true);
       }
     }
 
@@ -190246,14 +194450,14 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupResourceProfile_result implements org.apache.thrift.TBase<removeGroupResourceProfile_result, removeGroupResourceProfile_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupResourceProfile_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupResourceProfile_result");
+  public static class removeGroupBatchQueueResourcePolicy_result implements org.apache.thrift.TBase<removeGroupBatchQueueResourcePolicy_result, removeGroupBatchQueueResourcePolicy_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupBatchQueueResourcePolicy_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupBatchQueueResourcePolicy_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupResourceProfile_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupResourceProfile_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_resultTupleSchemeFactory();
 
     public boolean success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
@@ -190330,13 +194534,13 @@ public class RegistryService {
       tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.registry.api.exception.RegistryServiceException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupResourceProfile_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupBatchQueueResourcePolicy_result.class, metaDataMap);
     }
 
-    public removeGroupResourceProfile_result() {
+    public removeGroupBatchQueueResourcePolicy_result() {
     }
 
-    public removeGroupResourceProfile_result(
+    public removeGroupBatchQueueResourcePolicy_result(
       boolean success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
@@ -190349,7 +194553,7 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupResourceProfile_result(removeGroupResourceProfile_result other) {
+    public removeGroupBatchQueueResourcePolicy_result(removeGroupBatchQueueResourcePolicy_result other) {
       __isset_bitfield = other.__isset_bitfield;
       this.success = other.success;
       if (other.isSetRse()) {
@@ -190357,8 +194561,8 @@ public class RegistryService {
       }
     }
 
-    public removeGroupResourceProfile_result deepCopy() {
-      return new removeGroupResourceProfile_result(this);
+    public removeGroupBatchQueueResourcePolicy_result deepCopy() {
+      return new removeGroupBatchQueueResourcePolicy_result(this);
     }
 
     @Override
@@ -190372,7 +194576,7 @@ public class RegistryService {
       return this.success;
     }
 
-    public removeGroupResourceProfile_result setSuccess(boolean success) {
+    public removeGroupBatchQueueResourcePolicy_result setSuccess(boolean success) {
       this.success = success;
       setSuccessIsSet(true);
       return this;
@@ -190395,7 +194599,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public removeGroupResourceProfile_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public removeGroupBatchQueueResourcePolicy_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -190467,12 +194671,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupResourceProfile_result)
-        return this.equals((removeGroupResourceProfile_result)that);
+      if (that instanceof removeGroupBatchQueueResourcePolicy_result)
+        return this.equals((removeGroupBatchQueueResourcePolicy_result)that);
       return false;
     }
 
-    public boolean equals(removeGroupResourceProfile_result that) {
+    public boolean equals(removeGroupBatchQueueResourcePolicy_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -190513,7 +194717,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(removeGroupResourceProfile_result other) {
+    public int compareTo(removeGroupBatchQueueResourcePolicy_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -190557,7 +194761,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupResourceProfile_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupBatchQueueResourcePolicy_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -190598,15 +194802,15 @@ public class RegistryService {
       }
     }
 
-    private static class removeGroupResourceProfile_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupResourceProfile_resultStandardScheme getScheme() {
-        return new removeGroupResourceProfile_resultStandardScheme();
+    private static class removeGroupBatchQueueResourcePolicy_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupBatchQueueResourcePolicy_resultStandardScheme getScheme() {
+        return new removeGroupBatchQueueResourcePolicy_resultStandardScheme();
       }
     }
 
-    private static class removeGroupResourceProfile_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupResourceProfile_result> {
+    private static class removeGroupBatchQueueResourcePolicy_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupBatchQueueResourcePolicy_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -190644,7 +194848,7 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -190664,16 +194868,16 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupResourceProfile_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupResourceProfile_resultTupleScheme getScheme() {
-        return new removeGroupResourceProfile_resultTupleScheme();
+    private static class removeGroupBatchQueueResourcePolicy_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public removeGroupBatchQueueResourcePolicy_resultTupleScheme getScheme() {
+        return new removeGroupBatchQueueResourcePolicy_resultTupleScheme();
       }
     }
 
-    private static class removeGroupResourceProfile_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupResourceProfile_result> {
+    private static class removeGroupBatchQueueResourcePolicy_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupBatchQueueResourcePolicy_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -190692,7 +194896,7 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupResourceProfile_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
@@ -190712,22 +194916,22 @@ public class RegistryService {
     }
   }
 
-  public static class getGroupResourceList_args implements org.apache.thrift.TBase<getGroupResourceList_args, getGroupResourceList_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceList_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceList_args");
+  public static class getGroupComputeResourcePreference_args implements org.apache.thrift.TBase<getGroupComputeResourcePreference_args, getGroupComputeResourcePreference_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupComputeResourcePreference_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupComputeResourcePreference_args");
 
-    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField ACCESSIBLE_GROUP_RES_PROFILE_IDS_FIELD_DESC = new org.apache.thrift.protocol.TField("accessibleGroupResProfileIds", org.apache.thrift.protocol.TType.LIST, (short)2);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceList_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceList_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupComputeResourcePreference_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupComputeResourcePreference_argsTupleSchemeFactory();
 
-    public java.lang.String gatewayId; // required
-    public java.util.List<java.lang.String> accessibleGroupResProfileIds; // required
+    public java.lang.String computeResourceId; // required
+    public java.lang.String groupResourceProfileId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      GATEWAY_ID((short)1, "gatewayId"),
-      ACCESSIBLE_GROUP_RES_PROFILE_IDS((short)2, "accessibleGroupResProfileIds");
+      COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
+      GROUP_RESOURCE_PROFILE_ID((short)2, "groupResourceProfileId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -190742,10 +194946,10 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // GATEWAY_ID
-            return GATEWAY_ID;
-          case 2: // ACCESSIBLE_GROUP_RES_PROFILE_IDS
-            return ACCESSIBLE_GROUP_RES_PROFILE_IDS;
+          case 1: // COMPUTE_RESOURCE_ID
+            return COMPUTE_RESOURCE_ID;
+          case 2: // GROUP_RESOURCE_PROFILE_ID
+            return GROUP_RESOURCE_PROFILE_ID;
           default:
             return null;
         }
@@ -190789,128 +194993,111 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ACCESSIBLE_GROUP_RES_PROFILE_IDS, new org.apache.thrift.meta_data.FieldMetaData("accessibleGroupResProfileIds", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupResourceList_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupComputeResourcePreference_args.class, metaDataMap);
     }
 
-    public getGroupResourceList_args() {
+    public getGroupComputeResourcePreference_args() {
     }
 
-    public getGroupResourceList_args(
-      java.lang.String gatewayId,
-      java.util.List<java.lang.String> accessibleGroupResProfileIds)
+    public getGroupComputeResourcePreference_args(
+      java.lang.String computeResourceId,
+      java.lang.String groupResourceProfileId)
     {
       this();
-      this.gatewayId = gatewayId;
-      this.accessibleGroupResProfileIds = accessibleGroupResProfileIds;
+      this.computeResourceId = computeResourceId;
+      this.groupResourceProfileId = groupResourceProfileId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getGroupResourceList_args(getGroupResourceList_args other) {
-      if (other.isSetGatewayId()) {
-        this.gatewayId = other.gatewayId;
+    public getGroupComputeResourcePreference_args(getGroupComputeResourcePreference_args other) {
+      if (other.isSetComputeResourceId()) {
+        this.computeResourceId = other.computeResourceId;
       }
-      if (other.isSetAccessibleGroupResProfileIds()) {
-        java.util.List<java.lang.String> __this__accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(other.accessibleGroupResProfileIds);
-        this.accessibleGroupResProfileIds = __this__accessibleGroupResProfileIds;
+      if (other.isSetGroupResourceProfileId()) {
+        this.groupResourceProfileId = other.groupResourceProfileId;
       }
     }
 
-    public getGroupResourceList_args deepCopy() {
-      return new getGroupResourceList_args(this);
+    public getGroupComputeResourcePreference_args deepCopy() {
+      return new getGroupComputeResourcePreference_args(this);
     }
 
     @Override
     public void clear() {
-      this.gatewayId = null;
-      this.accessibleGroupResProfileIds = null;
+      this.computeResourceId = null;
+      this.groupResourceProfileId = null;
     }
 
-    public java.lang.String getGatewayId() {
-      return this.gatewayId;
+    public java.lang.String getComputeResourceId() {
+      return this.computeResourceId;
     }
 
-    public getGroupResourceList_args setGatewayId(java.lang.String gatewayId) {
-      this.gatewayId = gatewayId;
+    public getGroupComputeResourcePreference_args setComputeResourceId(java.lang.String computeResourceId) {
+      this.computeResourceId = computeResourceId;
       return this;
     }
 
-    public void unsetGatewayId() {
-      this.gatewayId = null;
+    public void unsetComputeResourceId() {
+      this.computeResourceId = null;
     }
 
-    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGatewayId() {
-      return this.gatewayId != null;
+    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourceId() {
+      return this.computeResourceId != null;
     }
 
-    public void setGatewayIdIsSet(boolean value) {
+    public void setComputeResourceIdIsSet(boolean value) {
       if (!value) {
-        this.gatewayId = null;
-      }
-    }
-
-    public int getAccessibleGroupResProfileIdsSize() {
-      return (this.accessibleGroupResProfileIds == null) ? 0 : this.accessibleGroupResProfileIds.size();
-    }
-
-    public java.util.Iterator<java.lang.String> getAccessibleGroupResProfileIdsIterator() {
-      return (this.accessibleGroupResProfileIds == null) ? null : this.accessibleGroupResProfileIds.iterator();
-    }
-
-    public void addToAccessibleGroupResProfileIds(java.lang.String elem) {
-      if (this.accessibleGroupResProfileIds == null) {
-        this.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>();
+        this.computeResourceId = null;
       }
-      this.accessibleGroupResProfileIds.add(elem);
     }
 
-    public java.util.List<java.lang.String> getAccessibleGroupResProfileIds() {
-      return this.accessibleGroupResProfileIds;
+    public java.lang.String getGroupResourceProfileId() {
+      return this.groupResourceProfileId;
     }
 
-    public getGroupResourceList_args setAccessibleGroupResProfileIds(java.util.List<java.lang.String> accessibleGroupResProfileIds) {
-      this.accessibleGroupResProfileIds = accessibleGroupResProfileIds;
+    public getGroupComputeResourcePreference_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
+      this.groupResourceProfileId = groupResourceProfileId;
       return this;
     }
 
-    public void unsetAccessibleGroupResProfileIds() {
-      this.accessibleGroupResProfileIds = null;
+    public void unsetGroupResourceProfileId() {
+      this.groupResourceProfileId = null;
     }
 
-    /** Returns true if field accessibleGroupResProfileIds is set (has been assigned a value) and false otherwise */
-    public boolean isSetAccessibleGroupResProfileIds() {
-      return this.accessibleGroupResProfileIds != null;
+    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfileId() {
+      return this.groupResourceProfileId != null;
     }
 
-    public void setAccessibleGroupResProfileIdsIsSet(boolean value) {
+    public void setGroupResourceProfileIdIsSet(boolean value) {
       if (!value) {
-        this.accessibleGroupResProfileIds = null;
+        this.groupResourceProfileId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case GATEWAY_ID:
+      case COMPUTE_RESOURCE_ID:
         if (value == null) {
-          unsetGatewayId();
+          unsetComputeResourceId();
         } else {
-          setGatewayId((java.lang.String)value);
+          setComputeResourceId((java.lang.String)value);
         }
         break;
 
-      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
+      case GROUP_RESOURCE_PROFILE_ID:
         if (value == null) {
-          unsetAccessibleGroupResProfileIds();
+          unsetGroupResourceProfileId();
         } else {
-          setAccessibleGroupResProfileIds((java.util.List<java.lang.String>)value);
+          setGroupResourceProfileId((java.lang.String)value);
         }
         break;
 
@@ -190919,11 +195106,11 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case GATEWAY_ID:
-        return getGatewayId();
+      case COMPUTE_RESOURCE_ID:
+        return getComputeResourceId();
 
-      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
-        return getAccessibleGroupResProfileIds();
+      case GROUP_RESOURCE_PROFILE_ID:
+        return getGroupResourceProfileId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -190936,10 +195123,10 @@ public class RegistryService {
       }
 
       switch (field) {
-      case GATEWAY_ID:
-        return isSetGatewayId();
-      case ACCESSIBLE_GROUP_RES_PROFILE_IDS:
-        return isSetAccessibleGroupResProfileIds();
+      case COMPUTE_RESOURCE_ID:
+        return isSetComputeResourceId();
+      case GROUP_RESOURCE_PROFILE_ID:
+        return isSetGroupResourceProfileId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -190948,32 +195135,32 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getGroupResourceList_args)
-        return this.equals((getGroupResourceList_args)that);
+      if (that instanceof getGroupComputeResourcePreference_args)
+        return this.equals((getGroupComputeResourcePreference_args)that);
       return false;
     }
 
-    public boolean equals(getGroupResourceList_args that) {
+    public boolean equals(getGroupComputeResourcePreference_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_gatewayId = true && this.isSetGatewayId();
-      boolean that_present_gatewayId = true && that.isSetGatewayId();
-      if (this_present_gatewayId || that_present_gatewayId) {
-        if (!(this_present_gatewayId && that_present_gatewayId))
+      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+      if (this_present_computeResourceId || that_present_computeResourceId) {
+        if (!(this_present_computeResourceId && that_present_computeResourceId))
           return false;
-        if (!this.gatewayId.equals(that.gatewayId))
+        if (!this.computeResourceId.equals(that.computeResourceId))
           return false;
       }
 
-      boolean this_present_accessibleGroupResProfileIds = true && this.isSetAccessibleGroupResProfileIds();
-      boolean that_present_accessibleGroupResProfileIds = true && that.isSetAccessibleGroupResProfileIds();
-      if (this_present_accessibleGroupResProfileIds || that_present_accessibleGroupResProfileIds) {
-        if (!(this_present_accessibleGroupResProfileIds && that_present_accessibleGroupResProfileIds))
+      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
+      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
+      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
+        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
           return false;
-        if (!this.accessibleGroupResProfileIds.equals(that.accessibleGroupResProfileIds))
+        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
           return false;
       }
 
@@ -190984,41 +195171,41 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
-      if (isSetGatewayId())
-        hashCode = hashCode * 8191 + gatewayId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetComputeResourceId()) ? 131071 : 524287);
+      if (isSetComputeResourceId())
+        hashCode = hashCode * 8191 + computeResourceId.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetAccessibleGroupResProfileIds()) ? 131071 : 524287);
-      if (isSetAccessibleGroupResProfileIds())
-        hashCode = hashCode * 8191 + accessibleGroupResProfileIds.hashCode();
+      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
+      if (isSetGroupResourceProfileId())
+        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getGroupResourceList_args other) {
+    public int compareTo(getGroupComputeResourcePreference_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      lastComparison = java.lang.Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGatewayId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (isSetComputeResourceId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetAccessibleGroupResProfileIds()).compareTo(other.isSetAccessibleGroupResProfileIds());
+      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetAccessibleGroupResProfileIds()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.accessibleGroupResProfileIds, other.accessibleGroupResProfileIds);
+      if (isSetGroupResourceProfileId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -191040,22 +195227,22 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceList_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupComputeResourcePreference_args(");
       boolean first = true;
 
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
+      sb.append("computeResourceId:");
+      if (this.computeResourceId == null) {
         sb.append("null");
       } else {
-        sb.append(this.gatewayId);
+        sb.append(this.computeResourceId);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("accessibleGroupResProfileIds:");
-      if (this.accessibleGroupResProfileIds == null) {
+      sb.append("groupResourceProfileId:");
+      if (this.groupResourceProfileId == null) {
         sb.append("null");
       } else {
-        sb.append(this.accessibleGroupResProfileIds);
+        sb.append(this.groupResourceProfileId);
       }
       first = false;
       sb.append(")");
@@ -191064,11 +195251,11 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (gatewayId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      if (computeResourceId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
       }
-      if (accessibleGroupResProfileIds == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'accessibleGroupResProfileIds' was not present! Struct: " + toString());
+      if (groupResourceProfileId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -191089,15 +195276,15 @@ public class RegistryService {
       }
     }
 
-    private static class getGroupResourceList_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceList_argsStandardScheme getScheme() {
-        return new getGroupResourceList_argsStandardScheme();
+    private static class getGroupComputeResourcePreference_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePreference_argsStandardScheme getScheme() {
+        return new getGroupComputeResourcePreference_argsStandardScheme();
       }
     }
 
-    private static class getGroupResourceList_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceList_args> {
+    private static class getGroupComputeResourcePreference_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupComputeResourcePreference_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupComputeResourcePreference_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -191107,28 +195294,18 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // GATEWAY_ID
+            case 1: // COMPUTE_RESOURCE_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.gatewayId = iprot.readString();
-                struct.setGatewayIdIsSet(true);
+                struct.computeResourceId = iprot.readString();
+                struct.setComputeResourceIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // ACCESSIBLE_GROUP_RES_PROFILE_IDS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list418 = iprot.readListBegin();
-                  struct.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(_list418.size);
-                  java.lang.String _elem419;
-                  for (int _i420 = 0; _i420 < _list418.size; ++_i420)
-                  {
-                    _elem419 = iprot.readString();
-                    struct.accessibleGroupResProfileIds.add(_elem419);
-                  }
-                  iprot.readListEnd();
-                }
-                struct.setAccessibleGroupResProfileIdsIsSet(true);
+            case 2: // GROUP_RESOURCE_PROFILE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.groupResourceProfileId = iprot.readString();
+                struct.setGroupResourceProfileIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -191144,25 +195321,18 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupComputeResourcePreference_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.gatewayId != null) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
+        if (struct.computeResourceId != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.computeResourceId);
           oprot.writeFieldEnd();
         }
-        if (struct.accessibleGroupResProfileIds != null) {
-          oprot.writeFieldBegin(ACCESSIBLE_GROUP_RES_PROFILE_IDS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.accessibleGroupResProfileIds.size()));
-            for (java.lang.String _iter421 : struct.accessibleGroupResProfileIds)
-            {
-              oprot.writeString(_iter421);
-            }
-            oprot.writeListEnd();
-          }
+        if (struct.groupResourceProfileId != null) {
+          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
+          oprot.writeString(struct.groupResourceProfileId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -191171,43 +195341,28 @@ public class RegistryService {
 
     }
 
-    private static class getGroupResourceList_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceList_argsTupleScheme getScheme() {
-        return new getGroupResourceList_argsTupleScheme();
+    private static class getGroupComputeResourcePreference_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePreference_argsTupleScheme getScheme() {
+        return new getGroupComputeResourcePreference_argsTupleScheme();
       }
     }
 
-    private static class getGroupResourceList_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceList_args> {
+    private static class getGroupComputeResourcePreference_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupComputeResourcePreference_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePreference_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.gatewayId);
-        {
-          oprot.writeI32(struct.accessibleGroupResProfileIds.size());
-          for (java.lang.String _iter422 : struct.accessibleGroupResProfileIds)
-          {
-            oprot.writeString(_iter422);
-          }
-        }
+        oprot.writeString(struct.computeResourceId);
+        oprot.writeString(struct.groupResourceProfileId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePreference_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
-        {
-          org.apache.thrift.protocol.TList _list423 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.accessibleGroupResProfileIds = new java.util.ArrayList<java.lang.String>(_list423.size);
-          java.lang.String _elem424;
-          for (int _i425 = 0; _i425 < _list423.size; ++_i425)
-          {
-            _elem424 = iprot.readString();
-            struct.accessibleGroupResProfileIds.add(_elem424);
-          }
-        }
-        struct.setAccessibleGroupResProfileIdsIsSet(true);
+        struct.computeResourceId = iprot.readString();
+        struct.setComputeResourceIdIsSet(true);
+        struct.groupResourceProfileId = iprot.readString();
+        struct.setGroupResourceProfileIdIsSet(true);
       }
     }
 
@@ -191216,16 +195371,16 @@ public class RegistryService {
     }
   }
 
-  public static class getGroupResourceList_result implements org.apache.thrift.TBase<getGroupResourceList_result, getGroupResourceList_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupResourceList_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupResourceList_result");
+  public static class getGroupComputeResourcePreference_result implements org.apache.thrift.TBase<getGroupComputeResourcePreference_result, getGroupComputeResourcePreference_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupComputeResourcePreference_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupComputeResourcePreference_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupResourceList_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupResourceList_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupComputeResourcePreference_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupComputeResourcePreference_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> success; // required
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -191294,19 +195449,18 @@ public class RegistryService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile.class))));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference.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(getGroupResourceList_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupComputeResourcePreference_result.class, metaDataMap);
     }
 
-    public getGroupResourceList_result() {
+    public getGroupComputeResourcePreference_result() {
     }
 
-    public getGroupResourceList_result(
-      java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> success,
+    public getGroupComputeResourcePreference_result(
+      org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
@@ -191317,21 +195471,17 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getGroupResourceList_result(getGroupResourceList_result other) {
+    public getGroupComputeResourcePreference_result(getGroupComputeResourcePreference_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(other.success.size());
-        for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile(other_element));
-        }
-        this.success = __this__success;
+        this.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference(other.success);
       }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public getGroupResourceList_result deepCopy() {
-      return new getGroupResourceList_result(this);
+    public getGroupComputeResourcePreference_result deepCopy() {
+      return new getGroupComputeResourcePreference_result(this);
     }
 
     @Override
@@ -191340,26 +195490,11 @@ public class RegistryService {
       this.rse = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getSuccess() {
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference getSuccess() {
       return this.success;
     }
 
-    public getGroupResourceList_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> success) {
+    public getGroupComputeResourcePreference_result setSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference success) {
       this.success = success;
       return this;
     }
@@ -191383,7 +195518,7 @@ public class RegistryService {
       return this.rse;
     }
 
-    public getGroupResourceList_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getGroupComputeResourcePreference_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -191409,7 +195544,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>)value);
+          setSuccess((org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference)value);
         }
         break;
 
@@ -191455,12 +195590,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getGroupResourceList_result)
-        return this.equals((getGroupResourceList_result)that);
+      if (that instanceof getGroupComputeResourcePreference_result)
+        return this.equals((getGroupComputeResourcePreference_result)that);
       return false;
     }
 
-    public boolean equals(getGroupResourceList_result that) {
+    public boolean equals(getGroupComputeResourcePreference_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -191503,7 +195638,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(getGroupResourceList_result other) {
+    public int compareTo(getGroupComputeResourcePreference_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -191547,7 +195682,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupResourceList_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupComputeResourcePreference_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -191572,6 +195707,9 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -191590,15 +195728,15 @@ public class RegistryService {
       }
     }
 
-    private static class getGroupResourceList_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceList_resultStandardScheme getScheme() {
-        return new getGroupResourceList_resultStandardScheme();
+    private static class getGroupComputeResourcePreference_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePreference_resultStandardScheme getScheme() {
+        return new getGroupComputeResourcePreference_resultStandardScheme();
       }
     }
 
-    private static class getGroupResourceList_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupResourceList_result> {
+    private static class getGroupComputeResourcePreference_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupComputeResourcePreference_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupComputeResourcePreference_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -191609,19 +195747,9 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list426 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(_list426.size);
-                  org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _elem427;
-                  for (int _i428 = 0; _i428 < _list426.size; ++_i428)
-                  {
-                    _elem427 = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-                    _elem427.read(iprot);
-                    struct.success.add(_elem427);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference();
+                struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -191647,20 +195775,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupComputeResourcePreference_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _iter429 : struct.success)
-            {
-              _iter429.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
+          struct.success.write(oprot);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -191674,16 +195795,16 @@ public class RegistryService {
 
     }
 
-    private static class getGroupResourceList_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getGroupResourceList_resultTupleScheme getScheme() {
-        return new getGroupResourceList_resultTupleScheme();
+    private static class getGroupComputeResourcePreference_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePreference_resultTupleScheme getScheme() {
+        return new getGroupComputeResourcePreference_resultTupleScheme();
       }
     }
 
-    private static class getGroupResourceList_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupResourceList_result> {
+    private static class getGroupComputeResourcePreference_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupComputeResourcePreference_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePreference_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -191694,13 +195815,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          {
-            oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _iter430 : struct.success)
-            {
-              _iter430.write(oprot);
-            }
-          }
+          struct.success.write(oprot);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -191708,21 +195823,12 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupResourceList_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePreference_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          {
-            org.apache.thrift.protocol.TList _list431 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>(_list431.size);
-            org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile _elem432;
-            for (int _i433 = 0; _i433 < _list431.size; ++_i433)
-            {
-              _elem432 = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile();
-              _elem432.read(iprot);
-              struct.success.add(_elem432);
-            }
-          }
+          struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference();
+          struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -191738,22 +195844,19 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupComputePrefs_args implements org.apache.thrift.TBase<removeGroupComputePrefs_args, removeGroupComputePrefs_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputePrefs_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputePrefs_args");
+  public static class getGroupComputeResourcePolicy_args implements org.apache.thrift.TBase<getGroupComputeResourcePolicy_args, getGroupComputeResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupComputeResourcePolicy_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupComputeResourcePolicy_args");
 
-    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
-    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField RESOURCE_POLICY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourcePolicyId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputePrefs_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputePrefs_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupComputeResourcePolicy_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupComputeResourcePolicy_argsTupleSchemeFactory();
 
-    public java.lang.String computeResourceId; // required
-    public java.lang.String groupResourceProfileId; // required
+    public java.lang.String resourcePolicyId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
-      GROUP_RESOURCE_PROFILE_ID((short)2, "groupResourceProfileId");
+      RESOURCE_POLICY_ID((short)1, "resourcePolicyId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -191768,10 +195871,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // COMPUTE_RESOURCE_ID
-            return COMPUTE_RESOURCE_ID;
-          case 2: // GROUP_RESOURCE_PROFILE_ID
-            return GROUP_RESOURCE_PROFILE_ID;
+          case 1: // RESOURCE_POLICY_ID
+            return RESOURCE_POLICY_ID;
           default:
             return null;
         }
@@ -191815,111 +195916,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.RESOURCE_POLICY_ID, new org.apache.thrift.meta_data.FieldMetaData("resourcePolicyId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputePrefs_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupComputeResourcePolicy_args.class, metaDataMap);
     }
 
-    public removeGroupComputePrefs_args() {
+    public getGroupComputeResourcePolicy_args() {
     }
 
-    public removeGroupComputePrefs_args(
-      java.lang.String computeResourceId,
-      java.lang.String groupResourceProfileId)
+    public getGroupComputeResourcePolicy_args(
+      java.lang.String resourcePolicyId)
     {
       this();
-      this.computeResourceId = computeResourceId;
-      this.groupResourceProfileId = groupResourceProfileId;
+      this.resourcePolicyId = resourcePolicyId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupComputePrefs_args(removeGroupComputePrefs_args other) {
-      if (other.isSetComputeResourceId()) {
-        this.computeResourceId = other.computeResourceId;
-      }
-      if (other.isSetGroupResourceProfileId()) {
-        this.groupResourceProfileId = other.groupResourceProfileId;
+    public getGroupComputeResourcePolicy_args(getGroupComputeResourcePolicy_args other) {
+      if (other.isSetResourcePolicyId()) {
+        this.resourcePolicyId = other.resourcePolicyId;
       }
     }
 
-    public removeGroupComputePrefs_args deepCopy() {
-      return new removeGroupComputePrefs_args(this);
+    public getGroupComputeResourcePolicy_args deepCopy() {
+      return new getGroupComputeResourcePolicy_args(this);
     }
 
     @Override
     public void clear() {
-      this.computeResourceId = null;
-      this.groupResourceProfileId = null;
-    }
-
-    public java.lang.String getComputeResourceId() {
-      return this.computeResourceId;
-    }
-
-    public removeGroupComputePrefs_args setComputeResourceId(java.lang.String computeResourceId) {
-      this.computeResourceId = computeResourceId;
-      return this;
-    }
-
-    public void unsetComputeResourceId() {
-      this.computeResourceId = null;
-    }
-
-    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
-    public boolean isSetComputeResourceId() {
-      return this.computeResourceId != null;
-    }
-
-    public void setComputeResourceIdIsSet(boolean value) {
-      if (!value) {
-        this.computeResourceId = null;
-      }
+      this.resourcePolicyId = null;
     }
 
-    public java.lang.String getGroupResourceProfileId() {
-      return this.groupResourceProfileId;
+    public java.lang.String getResourcePolicyId() {
+      return this.resourcePolicyId;
     }
 
-    public removeGroupComputePrefs_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
-      this.groupResourceProfileId = groupResourceProfileId;
+    public getGroupComputeResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
+      this.resourcePolicyId = resourcePolicyId;
       return this;
     }
 
-    public void unsetGroupResourceProfileId() {
-      this.groupResourceProfileId = null;
+    public void unsetResourcePolicyId() {
+      this.resourcePolicyId = null;
     }
 
-    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGroupResourceProfileId() {
-      return this.groupResourceProfileId != null;
+    /** Returns true if field resourcePolicyId is set (has been assigned a value) and false otherwise */
+    public boolean isSetResourcePolicyId() {
+      return this.resourcePolicyId != null;
     }
 
-    public void setGroupResourceProfileIdIsSet(boolean value) {
+    public void setResourcePolicyIdIsSet(boolean value) {
       if (!value) {
-        this.groupResourceProfileId = null;
+        this.resourcePolicyId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        if (value == null) {
-          unsetComputeResourceId();
-        } else {
-          setComputeResourceId((java.lang.String)value);
-        }
-        break;
-
-      case GROUP_RESOURCE_PROFILE_ID:
+      case RESOURCE_POLICY_ID:
         if (value == null) {
-          unsetGroupResourceProfileId();
+          unsetResourcePolicyId();
         } else {
-          setGroupResourceProfileId((java.lang.String)value);
+          setResourcePolicyId((java.lang.String)value);
         }
         break;
 
@@ -191928,11 +195989,8 @@ public class RegistryService {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return getComputeResourceId();
-
-      case GROUP_RESOURCE_PROFILE_ID:
-        return getGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return getResourcePolicyId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -191945,10 +196003,8 @@ public class RegistryService {
       }
 
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return isSetComputeResourceId();
-      case GROUP_RESOURCE_PROFILE_ID:
-        return isSetGroupResourceProfileId();
+      case RESOURCE_POLICY_ID:
+        return isSetResourcePolicyId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -191957,32 +196013,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupComputePrefs_args)
-        return this.equals((removeGroupComputePrefs_args)that);
+      if (that instanceof getGroupComputeResourcePolicy_args)
+        return this.equals((getGroupComputeResourcePolicy_args)that);
       return false;
     }
 
-    public boolean equals(removeGroupComputePrefs_args that) {
+    public boolean equals(getGroupComputeResourcePolicy_args that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
-      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
-      if (this_present_computeResourceId || that_present_computeResourceId) {
-        if (!(this_present_computeResourceId && that_present_computeResourceId))
-          return false;
-        if (!this.computeResourceId.equals(that.computeResourceId))
-          return false;
-      }
-
-      boolean this_present_groupResourceProfileId = true && this.isSetGroupResourceProfileId();
-      boolean that_present_groupResourceProfileId = true && that.isSetGroupResourceProfileId();
-      if (this_present_groupResourceProfileId || that_present_groupResourceProfileId) {
-        if (!(this_present_groupResourceProfileId && that_present_groupResourceProfileId))
+      boolean this_present_resourcePolicyId = true && this.isSetResourcePolicyId();
+      boolean that_present_resourcePolicyId = true && that.isSetResourcePolicyId();
+      if (this_present_resourcePolicyId || that_present_resourcePolicyId) {
+        if (!(this_present_resourcePolicyId && that_present_resourcePolicyId))
           return false;
-        if (!this.groupResourceProfileId.equals(that.groupResourceProfileId))
+        if (!this.resourcePolicyId.equals(that.resourcePolicyId))
           return false;
       }
 
@@ -191993,41 +196040,27 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetComputeResourceId()) ? 131071 : 524287);
-      if (isSetComputeResourceId())
-        hashCode = hashCode * 8191 + computeResourceId.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetGroupResourceProfileId()) ? 131071 : 524287);
-      if (isSetGroupResourceProfileId())
-        hashCode = hashCode * 8191 + groupResourceProfileId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetResourcePolicyId()) ? 131071 : 524287);
+      if (isSetResourcePolicyId())
+        hashCode = hashCode * 8191 + resourcePolicyId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(removeGroupComputePrefs_args other) {
+    public int compareTo(getGroupComputeResourcePolicy_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetComputeResourceId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetGroupResourceProfileId()).compareTo(other.isSetGroupResourceProfileId());
+      lastComparison = java.lang.Boolean.valueOf(isSetResourcePolicyId()).compareTo(other.isSetResourcePolicyId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGroupResourceProfileId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupResourceProfileId, other.groupResourceProfileId);
+      if (isSetResourcePolicyId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourcePolicyId, other.resourcePolicyId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -192049,22 +196082,14 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputePrefs_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupComputeResourcePolicy_args(");
       boolean first = true;
 
-      sb.append("computeResourceId:");
-      if (this.computeResourceId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.computeResourceId);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("groupResourceProfileId:");
-      if (this.groupResourceProfileId == null) {
+      sb.append("resourcePolicyId:");
+      if (this.resourcePolicyId == null) {
         sb.append("null");
       } else {
-        sb.append(this.groupResourceProfileId);
+        sb.append(this.resourcePolicyId);
       }
       first = false;
       sb.append(")");
@@ -192073,11 +196098,8 @@ public class RegistryService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (computeResourceId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
-      }
-      if (groupResourceProfileId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupResourceProfileId' was not present! Struct: " + toString());
+      if (resourcePolicyId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourcePolicyId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
     }
@@ -192098,15 +196120,15 @@ public class RegistryService {
       }
     }
 
-    private static class removeGroupComputePrefs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputePrefs_argsStandardScheme getScheme() {
-        return new removeGroupComputePrefs_argsStandardScheme();
+    private static class getGroupComputeResourcePolicy_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePolicy_argsStandardScheme getScheme() {
+        return new getGroupComputeResourcePolicy_argsStandardScheme();
       }
     }
 
-    private static class removeGroupComputePrefs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputePrefs_args> {
+    private static class getGroupComputeResourcePolicy_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupComputeResourcePolicy_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -192116,18 +196138,10 @@ public class RegistryService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // COMPUTE_RESOURCE_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.computeResourceId = iprot.readString();
-                struct.setComputeResourceIdIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 2: // GROUP_RESOURCE_PROFILE_ID
+            case 1: // RESOURCE_POLICY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.groupResourceProfileId = iprot.readString();
-                struct.setGroupResourceProfileIdIsSet(true);
+                struct.resourcePolicyId = iprot.readString();
+                struct.setResourcePolicyIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -192143,18 +196157,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.computeResourceId != null) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
-          oprot.writeString(struct.computeResourceId);
-          oprot.writeFieldEnd();
-        }
-        if (struct.groupResourceProfileId != null) {
-          oprot.writeFieldBegin(GROUP_RESOURCE_PROFILE_ID_FIELD_DESC);
-          oprot.writeString(struct.groupResourceProfileId);
+        if (struct.resourcePolicyId != null) {
+          oprot.writeFieldBegin(RESOURCE_POLICY_ID_FIELD_DESC);
+          oprot.writeString(struct.resourcePolicyId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -192163,28 +196172,25 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupComputePrefs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputePrefs_argsTupleScheme getScheme() {
-        return new removeGroupComputePrefs_argsTupleScheme();
+    private static class getGroupComputeResourcePolicy_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePolicy_argsTupleScheme getScheme() {
+        return new getGroupComputeResourcePolicy_argsTupleScheme();
       }
     }
 
-    private static class removeGroupComputePrefs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputePrefs_args> {
+    private static class getGroupComputeResourcePolicy_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupComputeResourcePolicy_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        oprot.writeString(struct.computeResourceId);
-        oprot.writeString(struct.groupResourceProfileId);
+        oprot.writeString(struct.resourcePolicyId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        struct.computeResourceId = iprot.readString();
-        struct.setComputeResourceIdIsSet(true);
-        struct.groupResourceProfileId = iprot.readString();
-        struct.setGroupResourceProfileIdIsSet(true);
+        struct.resourcePolicyId = iprot.readString();
+        struct.setResourcePolicyIdIsSet(true);
       }
     }
 
@@ -192193,16 +196199,16 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupComputePrefs_result implements org.apache.thrift.TBase<removeGroupComputePrefs_result, removeGroupComputePrefs_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputePrefs_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputePrefs_result");
+  public static class getGroupComputeResourcePolicy_result implements org.apache.thrift.TBase<getGroupComputeResourcePolicy_result, getGroupComputeResourcePolicy_result._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupComputeResourcePolicy_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupComputeResourcePolicy_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputePrefs_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputePrefs_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupComputeResourcePolicy_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupComputeResourcePolicy_resultTupleSchemeFactory();
 
-    public boolean success; // required
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -192267,82 +196273,80 @@ public class RegistryService {
     }
 
     // isset id assignments
-    private static final int __SUCCESS_ISSET_ID = 0;
-    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy.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(removeGroupComputePrefs_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupComputeResourcePolicy_result.class, metaDataMap);
     }
 
-    public removeGroupComputePrefs_result() {
+    public getGroupComputeResourcePolicy_result() {
     }
 
-    public removeGroupComputePrefs_result(
-      boolean success,
+    public getGroupComputeResourcePolicy_result(
+      org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
       this.success = success;
-      setSuccessIsSet(true);
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupComputePrefs_result(removeGroupComputePrefs_result other) {
-      __isset_bitfield = other.__isset_bitfield;
-      this.success = other.success;
+    public getGroupComputeResourcePolicy_result(getGroupComputeResourcePolicy_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy(other.success);
+      }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public removeGroupComputePrefs_result deepCopy() {
-      return new removeGroupComputePrefs_result(this);
+    public getGroupComputeResourcePolicy_result deepCopy() {
+      return new getGroupComputeResourcePolicy_result(this);
     }
 
     @Override
     public void clear() {
-      setSuccessIsSet(false);
-      this.success = false;
+      this.success = null;
       this.rse = null;
     }
 
-    public boolean isSuccess() {
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy getSuccess() {
       return this.success;
     }
 
-    public removeGroupComputePrefs_result setSuccess(boolean success) {
+    public getGroupComputeResourcePolicy_result setSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy success) {
       this.success = success;
-      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      this.success = null;
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      return this.success != null;
     }
 
     public void setSuccessIsSet(boolean value) {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public removeGroupComputePrefs_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getGroupComputeResourcePolicy_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -192368,7 +196372,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.Boolean)value);
+          setSuccess((org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy)value);
         }
         break;
 
@@ -192386,7 +196390,7 @@ public class RegistryService {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return isSuccess();
+        return getSuccess();
 
       case RSE:
         return getRse();
@@ -192414,23 +196418,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupComputePrefs_result)
-        return this.equals((removeGroupComputePrefs_result)that);
+      if (that instanceof getGroupComputeResourcePolicy_result)
+        return this.equals((getGroupComputeResourcePolicy_result)that);
       return false;
     }
 
-    public boolean equals(removeGroupComputePrefs_result that) {
+    public boolean equals(getGroupComputeResourcePolicy_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true;
-      boolean that_present_success = true;
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (this.success != that.success)
+        if (!this.success.equals(that.success))
           return false;
       }
 
@@ -192450,7 +196454,9 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
 
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
@@ -192460,7 +196466,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(removeGroupComputePrefs_result other) {
+    public int compareTo(getGroupComputeResourcePolicy_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -192504,11 +196510,15 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputePrefs_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getGroupComputeResourcePolicy_result(");
       boolean first = true;
 
       sb.append("success:");
-      sb.append(this.success);
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
       first = false;
       if (!first) sb.append(", ");
       sb.append("rse:");
@@ -192525,6 +196535,9 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -192537,23 +196550,21 @@ public class RegistryService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
-        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class removeGroupComputePrefs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputePrefs_resultStandardScheme getScheme() {
-        return new removeGroupComputePrefs_resultStandardScheme();
+    private static class getGroupComputeResourcePolicy_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePolicy_resultStandardScheme getScheme() {
+        return new getGroupComputeResourcePolicy_resultStandardScheme();
       }
     }
 
-    private static class removeGroupComputePrefs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputePrefs_result> {
+    private static class getGroupComputeResourcePolicy_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getGroupComputeResourcePolicy_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -192564,8 +196575,9 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-                struct.success = iprot.readBool();
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy();
+                struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -192591,13 +196603,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.isSetSuccess()) {
+        if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -192611,16 +196623,16 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupComputePrefs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputePrefs_resultTupleScheme getScheme() {
-        return new removeGroupComputePrefs_resultTupleScheme();
+    private static class getGroupComputeResourcePolicy_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getGroupComputeResourcePolicy_resultTupleScheme getScheme() {
+        return new getGroupComputeResourcePolicy_resultTupleScheme();
       }
     }
 
-    private static class removeGroupComputePrefs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputePrefs_result> {
+    private static class getGroupComputeResourcePolicy_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getGroupComputeResourcePolicy_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -192631,7 +196643,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -192639,11 +196651,12 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputePrefs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = iprot.readBool();
+          struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy();
+          struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -192659,13 +196672,13 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupComputeResourcePolicy_args implements org.apache.thrift.TBase<removeGroupComputeResourcePolicy_args, removeGroupComputeResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputeResourcePolicy_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputeResourcePolicy_args");
+  public static class getBatchQueueResourcePolicy_args implements org.apache.thrift.TBase<getBatchQueueResourcePolicy_args, getBatchQueueResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<getBatchQueueResourcePolicy_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getBatchQueueResourcePolicy_args");
 
     private static final org.apache.thrift.protocol.TField RESOURCE_POLICY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourcePolicyId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getBatchQueueResourcePolicy_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getBatchQueueResourcePolicy_argsTupleSchemeFactory();
 
     public java.lang.String resourcePolicyId; // required
 
@@ -192734,13 +196747,13 @@ public class RegistryService {
       tmpMap.put(_Fields.RESOURCE_POLICY_ID, new org.apache.thrift.meta_data.FieldMetaData("resourcePolicyId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupComputeResourcePolicy_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getBatchQueueResourcePolicy_args.class, metaDataMap);
     }
 
-    public removeGroupComputeResourcePolicy_args() {
+    public getBatchQueueResourcePolicy_args() {
     }
 
-    public removeGroupComputeResourcePolicy_args(
+    public getBatchQueueResourcePolicy_args(
       java.lang.String resourcePolicyId)
     {
       this();
@@ -192750,14 +196763,14 @@ public class RegistryService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupComputeResourcePolicy_args(removeGroupComputeResourcePolicy_args other) {
+    public getBatchQueueResourcePolicy_args(getBatchQueueResourcePolicy_args other) {
       if (other.isSetResourcePolicyId()) {
         this.resourcePolicyId = other.resourcePolicyId;
       }
     }
 
-    public removeGroupComputeResourcePolicy_args deepCopy() {
-      return new removeGroupComputeResourcePolicy_args(this);
+    public getBatchQueueResourcePolicy_args deepCopy() {
+      return new getBatchQueueResourcePolicy_args(this);
     }
 
     @Override
@@ -192769,7 +196782,7 @@ public class RegistryService {
       return this.resourcePolicyId;
     }
 
-    public removeGroupComputeResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
+    public getBatchQueueResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
       this.resourcePolicyId = resourcePolicyId;
       return this;
     }
@@ -192828,12 +196841,12 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupComputeResourcePolicy_args)
-        return this.equals((removeGroupComputeResourcePolicy_args)that);
+      if (that instanceof getBatchQueueResourcePolicy_args)
+        return this.equals((getBatchQueueResourcePolicy_args)that);
       return false;
     }
 
-    public boolean equals(removeGroupComputeResourcePolicy_args that) {
+    public boolean equals(getBatchQueueResourcePolicy_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -192863,7 +196876,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(removeGroupComputeResourcePolicy_args other) {
+    public int compareTo(getBatchQueueResourcePolicy_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -192897,7 +196910,7 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputeResourcePolicy_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getBatchQueueResourcePolicy_args(");
       boolean first = true;
 
       sb.append("resourcePolicyId:");
@@ -192935,15 +196948,15 @@ public class RegistryService {
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputeResourcePolicy_argsStandardScheme getScheme() {
-        return new removeGroupComputeResourcePolicy_argsStandardScheme();
+    private static class getBatchQueueResourcePolicy_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getBatchQueueResourcePolicy_argsStandardScheme getScheme() {
+        return new getBatchQueueResourcePolicy_argsStandardScheme();
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputeResourcePolicy_args> {
+    private static class getBatchQueueResourcePolicy_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getBatchQueueResourcePolicy_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -192972,7 +196985,7 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -192987,22 +197000,22 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupComputeResourcePolicy_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputeResourcePolicy_argsTupleScheme getScheme() {
-        return new removeGroupComputeResourcePolicy_argsTupleScheme();
+    private static class getBatchQueueResourcePolicy_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getBatchQueueResourcePolicy_argsTupleScheme getScheme() {
+        return new getBatchQueueResourcePolicy_argsTupleScheme();
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputeResourcePolicy_args> {
+    private static class getBatchQueueResourcePolicy_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getBatchQueueResourcePolicy_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         oprot.writeString(struct.resourcePolicyId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getBatchQueueResourcePolicy_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.resourcePolicyId = iprot.readString();
         struct.setResourcePolicyIdIsSet(true);
@@ -193014,16 +197027,16 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupComputeResourcePolicy_result implements org.apache.thrift.TBase<removeGroupComputeResourcePolicy_result, removeGroupComputeResourcePolicy_result._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupComputeResourcePolicy_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupComputeResourcePolicy_result");
+  public static class getBatchQueueResourcePolicy_result implements org.apache.thrift.TBase<getBatchQueueResourcePolicy_result, getBatchQueueResourcePolicy_result._Fields>, java.io.Serializable, Cloneable, Comparable<getBatchQueueResourcePolicy_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getBatchQueueResourcePolicy_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupComputeResourcePolicy_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getBatchQueueResourcePolicy_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getBatchQueueResourcePolicy_resultTupleSchemeFactory();
 
-    public boolean success; // required
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy success; // required
     public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -193088,82 +197101,80 @@ public class RegistryService {
     }
 
     // isset id assignments
-    private static final int __SUCCESS_ISSET_ID = 0;
-    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy.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(removeGroupComputeResourcePolicy_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getBatchQueueResourcePolicy_result.class, metaDataMap);
     }
 
-    public removeGroupComputeResourcePolicy_result() {
+    public getBatchQueueResourcePolicy_result() {
     }
 
-    public removeGroupComputeResourcePolicy_result(
-      boolean success,
+    public getBatchQueueResourcePolicy_result(
+      org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy success,
       org.apache.airavata.registry.api.exception.RegistryServiceException rse)
     {
       this();
       this.success = success;
-      setSuccessIsSet(true);
       this.rse = rse;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupComputeResourcePolicy_result(removeGroupComputeResourcePolicy_result other) {
-      __isset_bitfield = other.__isset_bitfield;
-      this.success = other.success;
+    public getBatchQueueResourcePolicy_result(getBatchQueueResourcePolicy_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy(other.success);
+      }
       if (other.isSetRse()) {
         this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
       }
     }
 
-    public removeGroupComputeResourcePolicy_result deepCopy() {
-      return new removeGroupComputeResourcePolicy_result(this);
+    public getBatchQueueResourcePolicy_result deepCopy() {
+      return new getBatchQueueResourcePolicy_result(this);
     }
 
     @Override
     public void clear() {
-      setSuccessIsSet(false);
-      this.success = false;
+      this.success = null;
       this.rse = null;
     }
 
-    public boolean isSuccess() {
+    public org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy getSuccess() {
       return this.success;
     }
 
-    public removeGroupComputeResourcePolicy_result setSuccess(boolean success) {
+    public getBatchQueueResourcePolicy_result setSuccess(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy success) {
       this.success = success;
-      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      this.success = null;
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      return this.success != null;
     }
 
     public void setSuccessIsSet(boolean value) {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
       return this.rse;
     }
 
-    public removeGroupComputeResourcePolicy_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+    public getBatchQueueResourcePolicy_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
       this.rse = rse;
       return this;
     }
@@ -193189,7 +197200,7 @@ public class RegistryService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.Boolean)value);
+          setSuccess((org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy)value);
         }
         break;
 
@@ -193207,7 +197218,7 @@ public class RegistryService {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return isSuccess();
+        return getSuccess();
 
       case RSE:
         return getRse();
@@ -193235,23 +197246,23 @@ public class RegistryService {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof removeGroupComputeResourcePolicy_result)
-        return this.equals((removeGroupComputeResourcePolicy_result)that);
+      if (that instanceof getBatchQueueResourcePolicy_result)
+        return this.equals((getBatchQueueResourcePolicy_result)that);
       return false;
     }
 
-    public boolean equals(removeGroupComputeResourcePolicy_result that) {
+    public boolean equals(getBatchQueueResourcePolicy_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true;
-      boolean that_present_success = true;
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (this.success != that.success)
+        if (!this.success.equals(that.success))
           return false;
       }
 
@@ -193271,7 +197282,9 @@ public class RegistryService {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
 
       hashCode = hashCode * 8191 + ((isSetRse()) ? 131071 : 524287);
       if (isSetRse())
@@ -193281,7 +197294,7 @@ public class RegistryService {
     }
 
     @Override
-    public int compareTo(removeGroupComputeResourcePolicy_result other) {
+    public int compareTo(getBatchQueueResourcePolicy_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -193325,11 +197338,15 @@ public class RegistryService {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("removeGroupComputeResourcePolicy_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getBatchQueueResourcePolicy_result(");
       boolean first = true;
 
       sb.append("success:");
-      sb.append(this.success);
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
       first = false;
       if (!first) sb.append(", ");
       sb.append("rse:");
@@ -193346,6 +197363,9 @@ public class RegistryService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -193358,23 +197378,21 @@ public class RegistryService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
-        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputeResourcePolicy_resultStandardScheme getScheme() {
-        return new removeGroupComputeResourcePolicy_resultStandardScheme();
+    private static class getBatchQueueResourcePolicy_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getBatchQueueResourcePolicy_resultStandardScheme getScheme() {
+        return new getBatchQueueResourcePolicy_resultStandardScheme();
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<removeGroupComputeResourcePolicy_result> {
+    private static class getBatchQueueResourcePolicy_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getBatchQueueResourcePolicy_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -193385,8 +197403,9 @@ public class RegistryService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-                struct.success = iprot.readBool();
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy();
+                struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -193412,13 +197431,13 @@ public class RegistryService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.isSetSuccess()) {
+        if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
           oprot.writeFieldEnd();
         }
         if (struct.rse != null) {
@@ -193432,16 +197451,16 @@ public class RegistryService {
 
     }
 
-    private static class removeGroupComputeResourcePolicy_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public removeGroupComputeResourcePolicy_resultTupleScheme getScheme() {
-        return new removeGroupComputeResourcePolicy_resultTupleScheme();
+    private static class getBatchQueueResourcePolicy_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getBatchQueueResourcePolicy_resultTupleScheme getScheme() {
+        return new getBatchQueueResourcePolicy_resultTupleScheme();
       }
     }
 
-    private static class removeGroupComputeResourcePolicy_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<removeGroupComputeResourcePolicy_result> {
+    private static class getBatchQueueResourcePolicy_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getBatchQueueResourcePolicy_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -193452,7 +197471,7 @@ public class RegistryService {
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
-          oprot.writeBool(struct.success);
+          struct.success.write(oprot);
         }
         if (struct.isSetRse()) {
           struct.rse.write(oprot);
@@ -193460,11 +197479,12 @@ public class RegistryService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, removeGroupComputeResourcePolicy_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getBatchQueueResourcePolicy_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.success = iprot.readBool();
+          struct.success = new org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy();
+          struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -193480,19 +197500,19 @@ public class RegistryService {
     }
   }
 
-  public static class removeGroupBatchQueueResourcePolicy_args implements org.apache.thrift.TBase<removeGroupBatchQueueResourcePolicy_args, removeGroupBatchQueueResourcePolicy_args._Fields>, java.io.Serializable, Cloneable, Comparable<removeGroupBatchQueueResourcePolicy_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("removeGroupBatchQueueResourcePolicy_args");
+  public static class getGroupComputeResourcePrefList_args implements org.apache.thrift.TBase<getGroupComputeResourcePrefList_args, getGroupComputeResourcePrefList_args._Fields>, java.io.Serializable, Cloneable, Comparable<getGroupComputeResourcePrefList_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getGroupComputeResourcePrefList_args");
 
-    private static final org.apache.thrift.protocol.TField RESOURCE_POLICY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourcePolicyId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField GROUP_RESOURCE_PROFILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupResourceProfileId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeGroupBatchQueueResourcePolicy_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getGroupComputeResourcePrefList_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getGroupComputeResourcePrefList_argsTupleSchemeFactory();
 
-    public java.lang.String resourcePolicyId; // required
+    public java.lang.String groupResourceProfileId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      RESOURCE_POLICY_ID((short)1, "resourcePolicyId");
+      GROUP_RESOURCE_PROFILE_ID((short)1, "groupResourceProfileId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -193507,8 +197527,8 @@ public class RegistryService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // RESOURCE_POLICY_ID
-            return RESOURCE_POLICY_ID;
+          case 1: // GROUP_RESOURCE_PROFILE_ID
+            return GROUP_RESOURCE_PROFILE_ID;
           default:
             return null;
         }
@@ -193552,71 +197572,71 @@ public class RegistryService {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.RESOURCE_POLICY_ID, new org.apache.thrift.meta_data.FieldMetaData("resourcePolicyId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.GROUP_RESOURCE_PROFILE_ID, new org.apache.thrift.meta_data.FieldMetaData("groupResourceProfileId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeGroupBatchQueueResourcePolicy_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getGroupComputeResourcePrefList_args.class, metaDataMap);
     }
 
-    public removeGroupBatchQueueResourcePolicy_args() {
+    public getGroupComputeResourcePrefList_args() {
     }
 
-    public removeGroupBatchQueueResourcePolicy_args(
-      java.lang.String resourcePolicyId)
+    public getGroupComputeResourcePrefList_args(
+      java.lang.String groupResourceProfileId)
     {
       this();
-      this.resourcePolicyId = resourcePolicyId;
+      this.groupResourceProfileId = groupResourceProfileId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public removeGroupBatchQueueResourcePolicy_args(removeGroupBatchQueueResourcePolicy_args other) {
-      if (other.isSetResourcePolicyId()) {
-        this.resourcePolicyId = other.resourcePolicyId;
+    public getGroupComputeResourcePrefList_args(getGroupComputeResourcePrefList_args other) {
+      if (other.isSetGroupResourceProfileId()) {
+        this.groupResourceProfileId = other.groupResourceProfileId;
       }
     }
 
-    public removeGroupBatchQueueResourcePolicy_args deepCopy() {
-      return new removeGroupBatchQueueResourcePolicy_args(this);
+    public getGroupComputeResourcePrefList_args deepCopy() {
+      return new getGroupComputeResourcePrefList_args(this);
     }
 
     @Override
     public void clear() {
-      this.resourcePolicyId = null;
+      this.groupResourceProfileId = null;
     }
 
-    public java.lang.String getResourcePolicyId() {
-      return this.resourcePolicyId;
+    public java.lang.String getGroupResourceProfileId() {
+      return this.groupResourceProfileId;
     }
 
-    public removeGroupBatchQueueResourcePolicy_args setResourcePolicyId(java.lang.String resourcePolicyId) {
-      this.resourcePolicyId = resourcePolicyId;
+    public getGroupComputeResourcePrefList_args setGroupResourceProfileId(java.lang.String groupResourceProfileId) {
+      this.groupResourceProfileId = groupResourceProfileId;
       return this;
     }
 
-    public void unsetResourcePolicyId() {
-      this.resourcePolicyId = null;
+    public void unsetGroupResourceProfileId() {
+      this.groupResourceProfileId = null;
     }
 
-    /** Returns true if field resourcePolicyId is set (has been assigned a value) and false otherwise */
-    public boolean isSetResourcePolicyId() {
-      return this.resourcePolicyId != null;
+    /** Returns true if field groupResourceProfileId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGroupResourceProfileId() {
+      return this.groupResourceProfileId != null;
     }
 
-    public void setResourcePolicyIdIsSet(boolean value) {
+    public void setGroupResourceProfileIdIsSet(boolean value) {
       if (!value) {
-        this.resourcePolicyId = null;
+        this.groupResourceProfileId = null;
       }
     }
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case RESOURCE_POLICY_ID:
+      case GROUP_RESOURCE_PROFILE_ID:
         if (value == null) {
-          unsetResourcePolicyId();
+          unsetGroupResourceProfileId();
         } else {
-          setResourcePolicyId((java.lang.String)value);
+          setGroupResourceProfileId((java.lang.String)value);
         }
... 4885 lines suppressed ...

-- 
To stop receiving notification emails like this one, please contact
machristie@apache.org.