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/06/06 15:53:34 UTC

[airavata] branch group-based-auth updated (f5bd24a -> f56bbe3)

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

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


    from f5bd24a  AIRAVATA-2704 Add plugin for running AiravataDataMigrator with maven
     new d2811fb  AIRAVATA-2797 Add isUserResourceProfileExists to API instead of isNull flag
     new f56bbe3  AIRAVATA-2797 Regenerate Thrift stubs

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../api/server/handler/AiravataServerHandler.java  |    18 +
 .../java/org/apache/airavata/api/Airavata.java     | 38443 ++++++++++---------
 .../main/resources/lib/Airavata/API/Airavata.php   |   392 +-
 .../Model/AppCatalog/AccountProvisioning/Types.php |   345 +
 .../Model/AppCatalog/GatewayGroups/Types.php       |   164 +
 .../AppCatalog/GroupResourceProfile/Types.php      |  1380 +
 .../Model/AppCatalog/UserResourceProfile/Types.php |    26 -
 .../{User => Groupmanager}/CPI/Error/Types.php     |     8 +-
 .../Groupmanager/CPI/GroupManagerService.php}      |  2281 +-
 .../Profile/{User => Groupmanager}/CPI/Types.php   |    12 +-
 .../resources/lib/airavata/api/Airavata-remote     |    14 +
 .../main/resources/lib/airavata/api/Airavata.py    |   648 +-
 .../model/appcatalog/userresourceprofile/ttypes.py |    17 +-
 .../userresourceprofile/UserResourceProfile.java   |   115 +-
 .../api/service/handler/RegistryServerHandler.java |    21 +
 .../airavata/registry/api/RegistryService.java     |  4289 ++-
 .../airavata-apis/airavata_api.thrift              |    18 +
 .../component-cpis/registry-api.thrift             |    15 +
 .../user_resource_profile_model.thrift             |     4 -
 19 files changed, 27336 insertions(+), 20874 deletions(-)
 create mode 100644 airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AccountProvisioning/Types.php
 create mode 100644 airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayGroups/Types.php
 create mode 100644 airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GroupResourceProfile/Types.php
 copy airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Service/Profile/{User => Groupmanager}/CPI/Error/Types.php (89%)
 copy airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Service/{Iam/Admin/Services/CPI/IamAdminServices.php => Profile/Groupmanager/CPI/GroupManagerService.php} (51%)
 copy airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Service/Profile/{User => Groupmanager}/CPI/Types.php (62%)

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

[airavata] 02/02: AIRAVATA-2797 Regenerate Thrift stubs

Posted by ma...@apache.org.
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 f56bbe36f8f895e645c10b3ab1e00235756dbdf3
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Jun 6 11:50:51 2018 -0400

    AIRAVATA-2797 Regenerate Thrift stubs
---
 .../java/org/apache/airavata/api/Airavata.java     | 38443 ++++++++++---------
 .../main/resources/lib/Airavata/API/Airavata.php   |   392 +-
 .../Model/AppCatalog/AccountProvisioning/Types.php |   345 +
 .../Model/AppCatalog/GatewayGroups/Types.php       |   164 +
 .../AppCatalog/GroupResourceProfile/Types.php      |  1380 +
 .../Model/AppCatalog/UserResourceProfile/Types.php |    26 -
 .../Profile/Groupmanager/CPI/Error/Types.php       |    95 +
 .../Groupmanager/CPI/GroupManagerService.php       |  4211 ++
 .../Service/Profile/Groupmanager/CPI/Types.php     |    33 +
 .../resources/lib/airavata/api/Airavata-remote     |    14 +
 .../main/resources/lib/airavata/api/Airavata.py    |   648 +-
 .../model/appcatalog/userresourceprofile/ttypes.py |    17 +-
 .../userresourceprofile/UserResourceProfile.java   |   115 +-
 .../airavata/registry/api/RegistryService.java     |  4289 ++-
 14 files changed, 29946 insertions(+), 20226 deletions(-)

diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index a49d19c..e4a1320 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -2675,6 +2675,25 @@ public class Airavata {
     public java.lang.String registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
     /**
+     * Check if User Resource Profile exists.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource profile.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @return UserResourceProfile
+     *    User Resource Profile Object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     */
+    public boolean isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    /**
      * Fetch the given User Resource Profile.
      * 
      * @param userId
@@ -3370,6 +3389,8 @@ public class Airavata {
 
     public void registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
+    public void isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+
     public void getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException;
 
     public void updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
@@ -8598,6 +8619,43 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "registerUserResourceProfile failed: unknown result");
     }
 
+    public boolean isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_isUserResourceProfileExists(authzToken, userId, gatewayID);
+      return recv_isUserResourceProfileExists();
+    }
+
+    public void send_isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID) throws org.apache.thrift.TException
+    {
+      isUserResourceProfileExists_args args = new isUserResourceProfileExists_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("isUserResourceProfileExists", args);
+    }
+
+    public boolean recv_isUserResourceProfileExists() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
+      receiveBase(result, "isUserResourceProfileExists");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isUserResourceProfileExists failed: unknown result");
+    }
+
     public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_getUserResourceProfile(authzToken, userId, gatewayID);
@@ -15565,6 +15623,44 @@ public class Airavata {
       }
     }
 
+    public void isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      isUserResourceProfileExists_call method_call = new isUserResourceProfileExists_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class isUserResourceProfileExists_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private java.lang.String userId;
+      private java.lang.String gatewayID;
+      public isUserResourceProfileExists_call(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, 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.authzToken = authzToken;
+        this.userId = userId;
+        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("isUserResourceProfileExists", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        isUserResourceProfileExists_args args = new isUserResourceProfileExists_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.lang.Boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, 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_isUserResourceProfileExists();
+      }
+    }
+
     public void getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getUserResourceProfile_call method_call = new getUserResourceProfile_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
@@ -17511,6 +17607,7 @@ public class Airavata {
       processMap.put("doesUserHaveSSHAccount", new doesUserHaveSSHAccount());
       processMap.put("setupUserComputeResourcePreferencesForSSH", new setupUserComputeResourcePreferencesForSSH());
       processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
+      processMap.put("isUserResourceProfileExists", new isUserResourceProfileExists());
       processMap.put("getUserResourceProfile", new getUserResourceProfile());
       processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
       processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
@@ -21789,6 +21886,37 @@ public class Airavata {
       }
     }
 
+    public static class isUserResourceProfileExists<I extends Iface> extends org.apache.thrift.ProcessFunction<I, isUserResourceProfileExists_args> {
+      public isUserResourceProfileExists() {
+        super("isUserResourceProfileExists");
+      }
+
+      public isUserResourceProfileExists_args getEmptyArgsInstance() {
+        return new isUserResourceProfileExists_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public isUserResourceProfileExists_result getResult(I iface, isUserResourceProfileExists_args args) throws org.apache.thrift.TException {
+        isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
+        try {
+          result.success = iface.isUserResourceProfileExists(args.authzToken, args.userId, args.gatewayID);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
     public static class getUserResourceProfile<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getUserResourceProfile_args> {
       public getUserResourceProfile() {
         super("getUserResourceProfile");
@@ -23399,6 +23527,7 @@ public class Airavata {
       processMap.put("doesUserHaveSSHAccount", new doesUserHaveSSHAccount());
       processMap.put("setupUserComputeResourcePreferencesForSSH", new setupUserComputeResourcePreferencesForSSH());
       processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
+      processMap.put("isUserResourceProfileExists", new isUserResourceProfileExists());
       processMap.put("getUserResourceProfile", new getUserResourceProfile());
       processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
       processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
@@ -34214,175 +34343,20 @@ public class Airavata {
       }
     }
 
-    public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
-      public getUserResourceProfile() {
-        super("getUserResourceProfile");
-      }
-
-      public getUserResourceProfile_args getEmptyArgsInstance() {
-        return new getUserResourceProfile_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
-            getUserResourceProfile_result result = new getUserResourceProfile_result();
-            result.success = o;
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            getUserResourceProfile_result result = new getUserResourceProfile_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-              result.setIreIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-              result.setAceIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-              result.setAseIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-              result.setAeIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
-              _LOGGER.error("TTransportException inside handler", e);
-              fb.close();
-              return;
-            } else if (e instanceof org.apache.thrift.TApplicationException) {
-              _LOGGER.error("TApplicationException inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TApplicationException)e;
-            } else {
-              _LOGGER.error("Exception inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-            } catch (java.lang.Exception ex) {
-              _LOGGER.error("Exception writing to internal frame buffer", ex);
-              fb.close();
-            }
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
-      }
-    }
-
-    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
-      public updateUserResourceProfile() {
-        super("updateUserResourceProfile");
-      }
-
-      public updateUserResourceProfile_args getEmptyArgsInstance() {
-        return new updateUserResourceProfile_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateUserResourceProfile_result result = new updateUserResourceProfile_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;
-            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-              result.setIreIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-              result.setAceIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-              result.setAseIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-              result.setAeIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
-              _LOGGER.error("TTransportException inside handler", e);
-              fb.close();
-              return;
-            } else if (e instanceof org.apache.thrift.TApplicationException) {
-              _LOGGER.error("TApplicationException inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TApplicationException)e;
-            } else {
-              _LOGGER.error("Exception inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-            } catch (java.lang.Exception ex) {
-              _LOGGER.error("Exception writing to internal frame buffer", ex);
-              fb.close();
-            }
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserResourceProfile(args.authzToken, args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
-      }
-    }
-
-    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
-      public deleteUserResourceProfile() {
-        super("deleteUserResourceProfile");
+    public static class isUserResourceProfileExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserResourceProfileExists_args, java.lang.Boolean> {
+      public isUserResourceProfileExists() {
+        super("isUserResourceProfileExists");
       }
 
-      public deleteUserResourceProfile_args getEmptyArgsInstance() {
-        return new deleteUserResourceProfile_args();
+      public isUserResourceProfileExists_args getEmptyArgsInstance() {
+        return new isUserResourceProfileExists_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+            isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -34398,7 +34372,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+            isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34442,27 +34416,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, isUserResourceProfileExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isUserResourceProfileExists(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
-      public addUserComputeResourcePreference() {
-        super("addUserComputeResourcePreference");
+    public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
+      public getUserResourceProfile() {
+        super("getUserResourceProfile");
       }
 
-      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new addUserComputeResourcePreference_args();
+      public getUserResourceProfile_args getEmptyArgsInstance() {
+        return new getUserResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
+            getUserResourceProfile_result result = new getUserResourceProfile_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -34476,7 +34449,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+            getUserResourceProfile_result result = new getUserResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34520,25 +34493,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
+      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
-      public addUserStoragePreference() {
-        super("addUserStoragePreference");
+    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
+      public updateUserResourceProfile() {
+        super("updateUserResourceProfile");
       }
 
-      public addUserStoragePreference_args getEmptyArgsInstance() {
-        return new addUserStoragePreference_args();
+      public updateUserResourceProfile_args getEmptyArgsInstance() {
+        return new updateUserResourceProfile_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            addUserStoragePreference_result result = new addUserStoragePreference_result();
+            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -34554,7 +34527,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            addUserStoragePreference_result result = new addUserStoragePreference_result();
+            updateUserResourceProfile_result result = new updateUserResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34598,26 +34571,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.addUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
+      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserResourceProfile(args.authzToken, args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
       }
     }
 
-    public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
-      public getUserComputeResourcePreference() {
-        super("getUserComputeResourcePreference");
+    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
+      public deleteUserResourceProfile() {
+        super("deleteUserResourceProfile");
       }
 
-      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getUserComputeResourcePreference_args();
+      public deleteUserResourceProfile_args getEmptyArgsInstance() {
+        return new deleteUserResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
-            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -34631,7 +34605,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+            deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34675,26 +34649,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
-      public getUserStoragePreference() {
-        super("getUserStoragePreference");
+    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
+      public addUserComputeResourcePreference() {
+        super("addUserComputeResourcePreference");
       }
 
-      public getUserStoragePreference_args getEmptyArgsInstance() {
-        return new getUserStoragePreference_args();
+      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new addUserComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
-            getUserStoragePreference_result result = new getUserStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -34708,7 +34683,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getUserStoragePreference_result result = new getUserStoragePreference_result();
+            addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34752,26 +34727,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
+      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
       }
     }
 
-    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
-      public getAllUserComputeResourcePreferences() {
-        super("getAllUserComputeResourcePreferences");
+    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
+      public addUserStoragePreference() {
+        super("addUserStoragePreference");
       }
 
-      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
-        return new getAllUserComputeResourcePreferences_args();
+      public addUserStoragePreference_args getEmptyArgsInstance() {
+        return new addUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
-            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            addUserStoragePreference_result result = new addUserStoragePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -34785,7 +34761,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+            addUserStoragePreference_result result = new addUserStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34829,25 +34805,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.addUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
       }
     }
 
-    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
-      public getAllUserStoragePreferences() {
-        super("getAllUserStoragePreferences");
+    public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
+      public getUserComputeResourcePreference() {
+        super("getUserComputeResourcePreference");
       }
 
-      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
-        return new getAllUserStoragePreferences_args();
+      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getUserComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
-            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
+            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -34862,7 +34838,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+            getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34906,25 +34882,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
+      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
       }
     }
 
-    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
-      public getAllUserResourceProfiles() {
-        super("getAllUserResourceProfiles");
+    public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
+      public getUserStoragePreference() {
+        super("getUserStoragePreference");
       }
 
-      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllUserResourceProfiles_args();
+      public getUserStoragePreference_args getEmptyArgsInstance() {
+        return new getUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
-            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
+            getUserStoragePreference_result result = new getUserStoragePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -34939,7 +34915,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+            getUserStoragePreference_result result = new getUserStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -34983,27 +34959,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllUserResourceProfiles(args.authzToken,resultHandler);
+      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
       }
     }
 
-    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
-      public updateUserComputeResourcePreference() {
-        super("updateUserComputeResourcePreference");
+    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
+      public getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
       }
 
-      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateUserComputeResourcePreference_args();
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35017,7 +34992,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35061,27 +35036,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
+      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
-      public updateUserStoragePreference() {
-        super("updateUserStoragePreference");
+    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
+      public getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
       }
 
-      public updateUserStoragePreference_args getEmptyArgsInstance() {
-        return new updateUserStoragePreference_args();
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
+            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35095,7 +35069,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35139,27 +35113,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.updateUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
+      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
-      public deleteUserComputeResourcePreference() {
-        super("deleteUserComputeResourcePreference");
+    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
+      public getAllUserResourceProfiles() {
+        super("getAllUserResourceProfiles");
       }
 
-      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new deleteUserComputeResourcePreference_args();
+      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllUserResourceProfiles_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
+            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35173,7 +35146,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35217,25 +35190,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllUserResourceProfiles(args.authzToken,resultHandler);
       }
     }
 
-    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
-      public deleteUserStoragePreference() {
-        super("deleteUserStoragePreference");
+    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
+      public updateUserComputeResourcePreference() {
+        super("updateUserComputeResourcePreference");
       }
 
-      public deleteUserStoragePreference_args getEmptyArgsInstance() {
-        return new deleteUserStoragePreference_args();
+      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new updateUserComputeResourcePreference_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -35251,7 +35224,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35295,26 +35268,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId,resultHandler);
+      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
       }
     }
 
-    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
-      public getAllWorkflows() {
-        super("getAllWorkflows");
+    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
+      public updateUserStoragePreference() {
+        super("updateUserStoragePreference");
       }
 
-      public getAllWorkflows_args getEmptyArgsInstance() {
-        return new getAllWorkflows_args();
+      public updateUserStoragePreference_args getEmptyArgsInstance() {
+        return new updateUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
-          public void onComplete(java.util.List<java.lang.String> o) {
-            getAllWorkflows_result result = new getAllWorkflows_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35328,7 +35302,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllWorkflows_result result = new getAllWorkflows_result();
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35372,26 +35346,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllWorkflows(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.updateUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
       }
     }
 
-    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
-      public getLatestQueueStatuses() {
-        super("getLatestQueueStatuses");
+    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
+      public deleteUserComputeResourcePreference() {
+        super("deleteUserComputeResourcePreference");
       }
 
-      public getLatestQueueStatuses_args getEmptyArgsInstance() {
-        return new getLatestQueueStatuses_args();
+      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteUserComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
-            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35405,7 +35380,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35449,26 +35424,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getLatestQueueStatuses(args.authzToken,resultHandler);
+      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
       }
     }
 
-    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
-      public getWorkflow() {
-        super("getWorkflow");
+    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
       }
 
-      public getWorkflow_args getEmptyArgsInstance() {
-        return new getWorkflow_args();
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel>() { 
-          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
-            getWorkflow_result result = new getWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35482,83 +35458,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getWorkflow_result result = new getWorkflow_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-              result.setIreIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-              result.setAceIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-              result.setAseIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-              result.setAeIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
-              _LOGGER.error("TTransportException inside handler", e);
-              fb.close();
-              return;
-            } else if (e instanceof org.apache.thrift.TApplicationException) {
-              _LOGGER.error("TApplicationException inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TApplicationException)e;
-            } else {
-              _LOGGER.error("Exception inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-            } catch (java.lang.Exception ex) {
-              _LOGGER.error("Exception writing to internal frame buffer", ex);
-              fb.close();
-            }
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
-      }
-    }
-
-    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
-      public deleteWorkflow() {
-        super("deleteWorkflow");
-      }
-
-      public deleteWorkflow_args getEmptyArgsInstance() {
-        return new deleteWorkflow_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            deleteWorkflow_result result = new deleteWorkflow_result();
-            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;
-            deleteWorkflow_result result = new deleteWorkflow_result();
+            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35602,25 +35502,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
+      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId,resultHandler);
       }
     }
 
-    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
-      public registerWorkflow() {
-        super("registerWorkflow");
+    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
+      public getAllWorkflows() {
+        super("getAllWorkflows");
       }
 
-      public registerWorkflow_args getEmptyArgsInstance() {
-        return new registerWorkflow_args();
+      public getAllWorkflows_args getEmptyArgsInstance() {
+        return new getAllWorkflows_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            registerWorkflow_result result = new registerWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAllWorkflows_result result = new getAllWorkflows_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -35635,7 +35535,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerWorkflow_result result = new registerWorkflow_result();
+            getAllWorkflows_result result = new getAllWorkflows_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35679,25 +35579,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerWorkflow(args.authzToken, args.gatewayId, args.workflow,resultHandler);
+      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllWorkflows(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
-      public updateWorkflow() {
-        super("updateWorkflow");
+    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
+      public getLatestQueueStatuses() {
+        super("getLatestQueueStatuses");
       }
 
-      public updateWorkflow_args getEmptyArgsInstance() {
-        return new updateWorkflow_args();
+      public getLatestQueueStatuses_args getEmptyArgsInstance() {
+        return new getLatestQueueStatuses_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateWorkflow_result result = new updateWorkflow_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
+            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35711,7 +35612,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateWorkflow_result result = new updateWorkflow_result();
+            getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35755,25 +35656,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateWorkflow(args.authzToken, args.workflowTemplateId, args.workflow,resultHandler);
+      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getLatestQueueStatuses(args.authzToken,resultHandler);
       }
     }
 
-    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, java.lang.String> {
-      public getWorkflowTemplateId() {
-        super("getWorkflowTemplateId");
+    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
+      public getWorkflow() {
+        super("getWorkflow");
       }
 
-      public getWorkflowTemplateId_args getEmptyArgsInstance() {
-        return new getWorkflowTemplateId_args();
+      public getWorkflow_args getEmptyArgsInstance() {
+        return new getWorkflow_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel>() { 
+          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
+            getWorkflow_result result = new getWorkflow_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -35788,7 +35689,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
+            getWorkflow_result result = new getWorkflow_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35832,27 +35733,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getWorkflowTemplateId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.getWorkflowTemplateId(args.authzToken, args.workflowName,resultHandler);
+      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
       }
     }
 
-    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
-      public isWorkflowExistWithName() {
-        super("isWorkflowExistWithName");
+    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
+      public deleteWorkflow() {
+        super("deleteWorkflow");
       }
 
-      public isWorkflowExistWithName_args getEmptyArgsInstance() {
-        return new isWorkflowExistWithName_args();
+      public deleteWorkflow_args getEmptyArgsInstance() {
+        return new deleteWorkflow_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            deleteWorkflow_result result = new deleteWorkflow_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -35866,7 +35765,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
+            deleteWorkflow_result result = new deleteWorkflow_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35910,25 +35809,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isWorkflowExistWithName(args.authzToken, args.workflowName,resultHandler);
+      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.deleteWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
       }
     }
 
-    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
-      public registerDataProduct() {
-        super("registerDataProduct");
+    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
+      public registerWorkflow() {
+        super("registerWorkflow");
       }
 
-      public registerDataProduct_args getEmptyArgsInstance() {
-        return new registerDataProduct_args();
+      public registerWorkflow_args getEmptyArgsInstance() {
+        return new registerWorkflow_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            registerDataProduct_result result = new registerDataProduct_result();
+            registerWorkflow_result result = new registerWorkflow_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -35943,7 +35842,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerDataProduct_result result = new registerDataProduct_result();
+            registerWorkflow_result result = new registerWorkflow_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -35987,26 +35886,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerDataProduct(args.authzToken, args.dataProductModel,resultHandler);
+      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerWorkflow(args.authzToken, args.gatewayId, args.workflow,resultHandler);
       }
     }
 
-    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-      public getDataProduct() {
-        super("getDataProduct");
+    public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
+      public updateWorkflow() {
+        super("updateWorkflow");
       }
 
-      public getDataProduct_args getEmptyArgsInstance() {
-        return new getDataProduct_args();
+      public updateWorkflow_args getEmptyArgsInstance() {
+        return new updateWorkflow_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
-          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
-            getDataProduct_result result = new getDataProduct_result();
-            result.success = o;
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateWorkflow_result result = new updateWorkflow_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36020,7 +35918,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getDataProduct_result result = new getDataProduct_result();
+            updateWorkflow_result result = new updateWorkflow_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36064,25 +35962,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
+      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateWorkflow(args.authzToken, args.workflowTemplateId, args.workflow,resultHandler);
       }
     }
 
-    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
-      public registerReplicaLocation() {
-        super("registerReplicaLocation");
+    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, java.lang.String> {
+      public getWorkflowTemplateId() {
+        super("getWorkflowTemplateId");
       }
 
-      public registerReplicaLocation_args getEmptyArgsInstance() {
-        return new registerReplicaLocation_args();
+      public getWorkflowTemplateId_args getEmptyArgsInstance() {
+        return new getWorkflowTemplateId_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
           public void onComplete(java.lang.String o) {
-            registerReplicaLocation_result result = new registerReplicaLocation_result();
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36097,7 +35995,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            registerReplicaLocation_result result = new registerReplicaLocation_result();
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36141,26 +36039,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.registerReplicaLocation(args.authzToken, args.replicaLocationModel,resultHandler);
+      public void start(I iface, getWorkflowTemplateId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.getWorkflowTemplateId(args.authzToken, args.workflowName,resultHandler);
       }
     }
 
-    public static class getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-      public getParentDataProduct() {
-        super("getParentDataProduct");
+    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
+      public isWorkflowExistWithName() {
+        super("isWorkflowExistWithName");
       }
 
-      public getParentDataProduct_args getEmptyArgsInstance() {
-        return new getParentDataProduct_args();
+      public isWorkflowExistWithName_args getEmptyArgsInstance() {
+        return new isWorkflowExistWithName_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
-          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
-            getParentDataProduct_result result = new getParentDataProduct_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36174,7 +36073,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParentDataProduct_result result = new getParentDataProduct_result();
+            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36218,25 +36117,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-        iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
+      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.isWorkflowExistWithName(args.authzToken, args.workflowName,resultHandler);
       }
     }
 
-    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
-      public getChildDataProducts() {
-        super("getChildDataProducts");
+    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
+      public registerDataProduct() {
+        super("registerDataProduct");
       }
 
-      public getChildDataProducts_args getEmptyArgsInstance() {
-        return new getChildDataProducts_args();
+      public registerDataProduct_args getEmptyArgsInstance() {
+        return new registerDataProduct_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
-            getChildDataProducts_result result = new getChildDataProducts_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerDataProduct_result result = new registerDataProduct_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36251,7 +36150,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getChildDataProducts_result result = new getChildDataProducts_result();
+            registerDataProduct_result result = new registerDataProduct_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36295,27 +36194,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
-        iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
+      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerDataProduct(args.authzToken, args.dataProductModel,resultHandler);
       }
     }
 
-    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, java.lang.Boolean> {
-      public shareResourceWithUsers() {
-        super("shareResourceWithUsers");
+    public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+      public getDataProduct() {
+        super("getDataProduct");
       }
 
-      public shareResourceWithUsers_args getEmptyArgsInstance() {
-        return new shareResourceWithUsers_args();
+      public getDataProduct_args getEmptyArgsInstance() {
+        return new getDataProduct_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            shareResourceWithUsers_result result = new shareResourceWithUsers_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
+          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
+            getDataProduct_result result = new getDataProduct_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36329,7 +36227,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            shareResourceWithUsers_result result = new shareResourceWithUsers_result();
+            getDataProduct_result result = new getDataProduct_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36373,27 +36271,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, shareResourceWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.shareResourceWithUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
+      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
       }
     }
 
-    public static class shareResourceWithGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithGroups_args, java.lang.Boolean> {
-      public shareResourceWithGroups() {
-        super("shareResourceWithGroups");
+    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
+      public registerReplicaLocation() {
+        super("registerReplicaLocation");
       }
 
-      public shareResourceWithGroups_args getEmptyArgsInstance() {
-        return new shareResourceWithGroups_args();
+      public registerReplicaLocation_args getEmptyArgsInstance() {
+        return new registerReplicaLocation_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            shareResourceWithGroups_result result = new shareResourceWithGroups_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            registerReplicaLocation_result result = new registerReplicaLocation_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36407,7 +36304,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            shareResourceWithGroups_result result = new shareResourceWithGroups_result();
+            registerReplicaLocation_result result = new registerReplicaLocation_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36451,27 +36348,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, shareResourceWithGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.shareResourceWithGroups(args.authzToken, args.resourceId, args.resourceType, args.groupPermissionList,resultHandler);
+      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.registerReplicaLocation(args.authzToken, args.replicaLocationModel,resultHandler);
       }
     }
 
-    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, java.lang.Boolean> {
-      public revokeSharingOfResourceFromUsers() {
-        super("revokeSharingOfResourceFromUsers");
+    public static class getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+      public getParentDataProduct() {
+        super("getParentDataProduct");
       }
 
-      public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
-        return new revokeSharingOfResourceFromUsers_args();
+      public getParentDataProduct_args getEmptyArgsInstance() {
+        return new getParentDataProduct_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
+          public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
+            getParentDataProduct_result result = new getParentDataProduct_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36485,7 +36381,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
+            getParentDataProduct_result result = new getParentDataProduct_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36529,27 +36425,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
+      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+        iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
       }
     }
 
-    public static class revokeSharingOfResourceFromGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromGroups_args, java.lang.Boolean> {
-      public revokeSharingOfResourceFromGroups() {
-        super("revokeSharingOfResourceFromGroups");
+    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
+      public getChildDataProducts() {
+        super("getChildDataProducts");
       }
 
-      public revokeSharingOfResourceFromGroups_args getEmptyArgsInstance() {
-        return new revokeSharingOfResourceFromGroups_args();
+      public getChildDataProducts_args getEmptyArgsInstance() {
+        return new getChildDataProducts_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
+            getChildDataProducts_result result = new getChildDataProducts_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36563,7 +36458,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_result();
+            getChildDataProducts_result result = new getChildDataProducts_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36607,26 +36502,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, revokeSharingOfResourceFromGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.revokeSharingOfResourceFromGroups(args.authzToken, args.resourceId, args.resourceType, args.groupPermissionList,resultHandler);
+      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
+        iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
       }
     }
 
-    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, java.util.List<java.lang.String>> {
-      public getAllAccessibleUsers() {
-        super("getAllAccessibleUsers");
+    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, java.lang.Boolean> {
+      public shareResourceWithUsers() {
+        super("shareResourceWithUsers");
       }
 
-      public getAllAccessibleUsers_args getEmptyArgsInstance() {
-        return new getAllAccessibleUsers_args();
+      public shareResourceWithUsers_args getEmptyArgsInstance() {
+        return new shareResourceWithUsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
-          public void onComplete(java.util.List<java.lang.String> o) {
-            getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            shareResourceWithUsers_result result = new shareResourceWithUsers_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) {
@@ -36640,7 +36536,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
+            shareResourceWithUsers_result result = new shareResourceWithUsers_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36684,25 +36580,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllAccessibleUsers(args.authzToken, args.resourceId, args.resourceType, args.permissionType,resultHandler);
+      public void start(I iface, shareResourceWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.shareResourceWithUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
       }
     }
 
-    public static class userHasAccess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, userHasAccess_args, java.lang.Boolean> {
-      public userHasAccess() {
-        super("userHasAccess");
+    public static class shareResourceWithGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithGroups_args, java.lang.Boolean> {
+      public shareResourceWithGroups() {
+        super("shareResourceWithGroups");
       }
 
-      public userHasAccess_args getEmptyArgsInstance() {
-        return new userHasAccess_args();
+      public shareResourceWithGroups_args getEmptyArgsInstance() {
+        return new shareResourceWithGroups_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            userHasAccess_result result = new userHasAccess_result();
+            shareResourceWithGroups_result result = new shareResourceWithGroups_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -36718,7 +36614,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            userHasAccess_result result = new userHasAccess_result();
+            shareResourceWithGroups_result result = new shareResourceWithGroups_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36762,26 +36658,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, userHasAccess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.userHasAccess(args.authzToken, args.resourceId, args.permissionType,resultHandler);
+      public void start(I iface, shareResourceWithGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.shareResourceWithGroups(args.authzToken, args.resourceId, args.resourceType, args.groupPermissionList,resultHandler);
       }
     }
 
-    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
-      public createGroupResourceProfile() {
-        super("createGroupResourceProfile");
+    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, java.lang.Boolean> {
+      public revokeSharingOfResourceFromUsers() {
+        super("revokeSharingOfResourceFromUsers");
       }
 
-      public createGroupResourceProfile_args getEmptyArgsInstance() {
-        return new createGroupResourceProfile_args();
+      public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
+        return new revokeSharingOfResourceFromUsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_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) {
@@ -36795,7 +36692,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36839,25 +36736,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
+      public void start(I iface, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
       }
     }
 
-    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
-      public updateGroupResourceProfile() {
-        super("updateGroupResourceProfile");
+    public static class revokeSharingOfResourceFromGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromGroups_args, java.lang.Boolean> {
+      public revokeSharingOfResourceFromGroups() {
+        super("revokeSharingOfResourceFromGroups");
       }
 
-      public updateGroupResourceProfile_args getEmptyArgsInstance() {
-        return new updateGroupResourceProfile_args();
+      public revokeSharingOfResourceFromGroups_args getEmptyArgsInstance() {
+        return new revokeSharingOfResourceFromGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_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) {
@@ -36871,7 +36770,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36915,25 +36814,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
+      public void start(I iface, revokeSharingOfResourceFromGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.revokeSharingOfResourceFromGroups(args.authzToken, args.resourceId, args.resourceType, args.groupPermissionList,resultHandler);
       }
     }
 
-    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
-      public getGroupResourceProfile() {
-        super("getGroupResourceProfile");
+    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, java.util.List<java.lang.String>> {
+      public getAllAccessibleUsers() {
+        super("getAllAccessibleUsers");
       }
 
-      public getGroupResourceProfile_args getEmptyArgsInstance() {
-        return new getGroupResourceProfile_args();
+      public getAllAccessibleUsers_args getEmptyArgsInstance() {
+        return new getAllAccessibleUsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36948,7 +36847,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+            getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36992,25 +36891,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getAllAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllAccessibleUsers(args.authzToken, args.resourceId, args.resourceType, args.permissionType,resultHandler);
       }
     }
 
-    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
-      public removeGroupResourceProfile() {
-        super("removeGroupResourceProfile");
+    public static class userHasAccess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, userHasAccess_args, java.lang.Boolean> {
+      public userHasAccess() {
+        super("userHasAccess");
       }
 
-      public removeGroupResourceProfile_args getEmptyArgsInstance() {
-        return new removeGroupResourceProfile_args();
+      public userHasAccess_args getEmptyArgsInstance() {
+        return new userHasAccess_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
+            userHasAccess_result result = new userHasAccess_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -37026,7 +36925,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
+            userHasAccess_result result = new userHasAccess_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37070,25 +36969,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, userHasAccess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.userHasAccess(args.authzToken, args.resourceId, args.permissionType,resultHandler);
       }
     }
 
-    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
-      public getGroupResourceList() {
-        super("getGroupResourceList");
+    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
+      public createGroupResourceProfile() {
+        super("createGroupResourceProfile");
       }
 
-      public getGroupResourceList_args getEmptyArgsInstance() {
-        return new getGroupResourceList_args();
+      public createGroupResourceProfile_args getEmptyArgsInstance() {
+        return new createGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
-            getGroupResourceList_result result = new getGroupResourceList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37103,7 +37002,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceList_result result = new getGroupResourceList_result();
+            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37147,27 +37046,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceList(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
-      public removeGroupComputePrefs() {
-        super("removeGroupComputePrefs");
+    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
+      public updateGroupResourceProfile() {
+        super("updateGroupResourceProfile");
       }
 
-      public removeGroupComputePrefs_args getEmptyArgsInstance() {
-        return new removeGroupComputePrefs_args();
+      public updateGroupResourceProfile_args getEmptyArgsInstance() {
+        return new updateGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37181,7 +37078,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37225,27 +37122,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputePrefs(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupComputeResourcePolicy() {
-        super("removeGroupComputeResourcePolicy");
+    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
+      public getGroupResourceProfile() {
+        super("getGroupResourceProfile");
       }
 
-      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupComputeResourcePolicy_args();
+      public getGroupResourceProfile_args getEmptyArgsInstance() {
+        return new getGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
+            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37259,7 +37155,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37303,25 +37199,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupBatchQueueResourcePolicy() {
-        super("removeGroupBatchQueueResourcePolicy");
+    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
+      public removeGroupResourceProfile() {
+        super("removeGroupResourceProfile");
       }
 
-      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupBatchQueueResourcePolicy_args();
+      public removeGroupResourceProfile_args getEmptyArgsInstance() {
+        return new removeGroupResourceProfile_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -37337,7 +37233,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37381,25 +37277,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
-      public getGroupComputeResourcePreference() {
-        super("getGroupComputeResourcePreference");
+    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
+      public getGroupResourceList() {
+        super("getGroupResourceList");
       }
 
-      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePreference_args();
+      public getGroupResourceList_args getEmptyArgsInstance() {
+        return new getGroupResourceList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
+            getGroupResourceList_result result = new getGroupResourceList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37414,7 +37310,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+            getGroupResourceList_result result = new getGroupResourceList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37458,26 +37354,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePreference(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceList(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
-      public getGroupComputeResourcePolicy() {
-        super("getGroupComputeResourcePolicy");
+    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
+      public removeGroupComputePrefs() {
+        super("removeGroupComputePrefs");
       }
 
-      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePolicy_args();
+      public removeGroupComputePrefs_args getEmptyArgsInstance() {
+        return new removeGroupComputePrefs_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37491,7 +37388,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37535,26 +37432,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputePrefs(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
-      public getBatchQueueResourcePolicy() {
-        super("getBatchQueueResourcePolicy");
+    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupComputeResourcePolicy() {
+        super("removeGroupComputeResourcePolicy");
       }
 
-      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new getBatchQueueResourcePolicy_args();
+      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupComputeResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37568,7 +37466,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37612,26 +37510,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
-      public getGroupComputeResourcePrefList() {
-        super("getGroupComputeResourcePrefList");
+    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupBatchQueueResourcePolicy() {
+        super("removeGroupBatchQueueResourcePolicy");
       }
 
-      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePrefList_args();
+      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupBatchQueueResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37645,7 +37544,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37689,25 +37588,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePrefList(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
-      public getGroupBatchQueueResourcePolicyList() {
-        super("getGroupBatchQueueResourcePolicyList");
+    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
+      public getGroupComputeResourcePreference() {
+        super("getGroupComputeResourcePreference");
       }
 
-      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
-        return new getGroupBatchQueueResourcePolicyList_args();
+      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37722,7 +37621,315 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePreference(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      }
+    }
+
+    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
+      public getGroupComputeResourcePolicy() {
+        super("getGroupComputeResourcePolicy");
+      }
+
+      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePolicy_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      }
+    }
+
+    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
+      public getBatchQueueResourcePolicy() {
+        super("getBatchQueueResourcePolicy");
+      }
+
+      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new getBatchQueueResourcePolicy_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      }
+    }
+
+    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
+      public getGroupComputeResourcePrefList() {
+        super("getGroupComputeResourcePrefList");
+      }
+
+      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePrefList_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePrefList(args.authzToken, args.groupResourceProfileId,resultHandler);
+      }
+    }
+
+    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
+      public getGroupBatchQueueResourcePolicyList() {
+        super("getGroupBatchQueueResourcePolicyList");
+      }
+
+      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
+        return new getGroupBatchQueueResourcePolicyList_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -93224,7 +93431,1430 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_args(");
+      boolean first = true;
+
+      sb.append("authzToken:");
+      if (this.authzToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.authzToken);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("airavataExperimentId:");
+      if (this.airavataExperimentId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.airavataExperimentId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (authzToken == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
+      }
+      if (airavataExperimentId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (authzToken != null) {
+        authzToken.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 validateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public validateExperiment_argsStandardScheme getScheme() {
+        return new validateExperiment_argsStandardScheme();
+      }
+    }
+
+    private static class validateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_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: // AUTHZ_TOKEN
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+                struct.authzToken.read(iprot);
+                struct.setAuthzTokenIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // AIRAVATA_EXPERIMENT_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.airavataExperimentId = iprot.readString();
+                struct.setAiravataExperimentIdIsSet(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, validateExperiment_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.authzToken != null) {
+          oprot.writeFieldBegin(AUTHZ_TOKEN_FIELD_DESC);
+          struct.authzToken.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.airavataExperimentId != null) {
+          oprot.writeFieldBegin(AIRAVATA_EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.airavataExperimentId);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class validateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public validateExperiment_argsTupleScheme getScheme() {
+        return new validateExperiment_argsTupleScheme();
+      }
+    }
+
+    private static class validateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken.write(oprot);
+        oprot.writeString(struct.airavataExperimentId);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+        struct.authzToken.read(iprot);
+        struct.setAuthzTokenIsSet(true);
+        struct.airavataExperimentId = iprot.readString();
+        struct.setAiravataExperimentIdIsSet(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 validateExperiment_result implements org.apache.thrift.TBase<validateExperiment_result, validateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<validateExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validateExperiment_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
+    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new validateExperiment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validateExperiment_resultTupleSchemeFactory();
+
+    public boolean success; // required
+    public org.apache.airavata.model.error.InvalidRequestException ire; // required
+    public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
+    public org.apache.airavata.model.error.AiravataClientException ace; // required
+    public org.apache.airavata.model.error.AiravataSystemException ase; // required
+    public org.apache.airavata.model.error.AuthorizationException ae; // 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"),
+      IRE((short)1, "ire"),
+      ENF((short)2, "enf"),
+      ACE((short)3, "ace"),
+      ASE((short)4, "ase"),
+      AE((short)5, "ae");
+
+      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: // IRE
+            return IRE;
+          case 2: // ENF
+            return ENF;
+          case 3: // ACE
+            return ACE;
+          case 4: // ASE
+            return ASE;
+          case 5: // AE
+            return AE;
+          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.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
+      tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ExperimentNotFoundException.class)));
+      tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataClientException.class)));
+      tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataSystemException.class)));
+      tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(validateExperiment_result.class, metaDataMap);
+    }
+
+    public validateExperiment_result() {
+    }
+
+    public validateExperiment_result(
+      boolean success,
+      org.apache.airavata.model.error.InvalidRequestException ire,
+      org.apache.airavata.model.error.ExperimentNotFoundException enf,
+      org.apache.airavata.model.error.AiravataClientException ace,
+      org.apache.airavata.model.error.AiravataSystemException ase,
+      org.apache.airavata.model.error.AuthorizationException ae)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ire = ire;
+      this.enf = enf;
+      this.ace = ace;
+      this.ase = ase;
+      this.ae = ae;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public validateExperiment_result(validateExperiment_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetIre()) {
+        this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
+      }
+      if (other.isSetEnf()) {
+        this.enf = new org.apache.airavata.model.error.ExperimentNotFoundException(other.enf);
+      }
+      if (other.isSetAce()) {
+        this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
+      }
+      if (other.isSetAse()) {
+        this.ase = new org.apache.airavata.model.error.AiravataSystemException(other.ase);
+      }
+      if (other.isSetAe()) {
+        this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
+      }
+    }
+
+    public validateExperiment_result deepCopy() {
+      return new validateExperiment_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
+      this.ire = null;
+      this.enf = null;
+      this.ace = null;
+      this.ase = null;
+      this.ae = null;
+    }
+
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public validateExperiment_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.model.error.InvalidRequestException getIre() {
+      return this.ire;
+    }
+
+    public validateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+      this.ire = ire;
+      return this;
+    }
+
+    public void unsetIre() {
+      this.ire = null;
+    }
+
+    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
+    public boolean isSetIre() {
+      return this.ire != null;
+    }
+
+    public void setIreIsSet(boolean value) {
+      if (!value) {
+        this.ire = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.ExperimentNotFoundException getEnf() {
+      return this.enf;
+    }
+
+    public validateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+      this.enf = enf;
+      return this;
+    }
+
+    public void unsetEnf() {
+      this.enf = null;
+    }
+
+    /** Returns true if field enf is set (has been assigned a value) and false otherwise */
+    public boolean isSetEnf() {
+      return this.enf != null;
+    }
+
+    public void setEnfIsSet(boolean value) {
+      if (!value) {
+        this.enf = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataClientException getAce() {
+      return this.ace;
+    }
+
+    public validateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+      this.ace = ace;
+      return this;
+    }
+
+    public void unsetAce() {
+      this.ace = null;
+    }
+
+    /** Returns true if field ace is set (has been assigned a value) and false otherwise */
+    public boolean isSetAce() {
+      return this.ace != null;
+    }
+
+    public void setAceIsSet(boolean value) {
+      if (!value) {
+        this.ace = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataSystemException getAse() {
+      return this.ase;
+    }
+
+    public validateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+      this.ase = ase;
+      return this;
+    }
+
+    public void unsetAse() {
+      this.ase = null;
+    }
+
+    /** Returns true if field ase is set (has been assigned a value) and false otherwise */
+    public boolean isSetAse() {
+      return this.ase != null;
+    }
+
+    public void setAseIsSet(boolean value) {
+      if (!value) {
+        this.ase = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AuthorizationException getAe() {
+      return this.ae;
+    }
+
+    public validateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+      this.ae = ae;
+      return this;
+    }
+
+    public void unsetAe() {
+      this.ae = null;
+    }
+
+    /** Returns true if field ae is set (has been assigned a value) and false otherwise */
+    public boolean isSetAe() {
+      return this.ae != null;
+    }
+
+    public void setAeIsSet(boolean value) {
+      if (!value) {
+        this.ae = 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 IRE:
+        if (value == null) {
+          unsetIre();
+        } else {
+          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
+        }
+        break;
+
+      case ENF:
+        if (value == null) {
+          unsetEnf();
+        } else {
+          setEnf((org.apache.airavata.model.error.ExperimentNotFoundException)value);
+        }
+        break;
+
+      case ACE:
+        if (value == null) {
+          unsetAce();
+        } else {
+          setAce((org.apache.airavata.model.error.AiravataClientException)value);
+        }
+        break;
+
+      case ASE:
+        if (value == null) {
+          unsetAse();
+        } else {
+          setAse((org.apache.airavata.model.error.AiravataSystemException)value);
+        }
+        break;
+
+      case AE:
+        if (value == null) {
+          unsetAe();
+        } else {
+          setAe((org.apache.airavata.model.error.AuthorizationException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return isSuccess();
+
+      case IRE:
+        return getIre();
+
+      case ENF:
+        return getEnf();
+
+      case ACE:
+        return getAce();
+
+      case ASE:
+        return getAse();
+
+      case AE:
+        return getAe();
+
+      }
+      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 IRE:
+        return isSetIre();
+      case ENF:
+        return isSetEnf();
+      case ACE:
+        return isSetAce();
+      case ASE:
+        return isSetAse();
+      case AE:
+        return isSetAe();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof validateExperiment_result)
+        return this.equals((validateExperiment_result)that);
+      return false;
+    }
+
+    public boolean equals(validateExperiment_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_ire = true && this.isSetIre();
+      boolean that_present_ire = true && that.isSetIre();
+      if (this_present_ire || that_present_ire) {
+        if (!(this_present_ire && that_present_ire))
+          return false;
+        if (!this.ire.equals(that.ire))
+          return false;
+      }
+
+      boolean this_present_enf = true && this.isSetEnf();
+      boolean that_present_enf = true && that.isSetEnf();
+      if (this_present_enf || that_present_enf) {
+        if (!(this_present_enf && that_present_enf))
+          return false;
+        if (!this.enf.equals(that.enf))
+          return false;
+      }
+
+      boolean this_present_ace = true && this.isSetAce();
+      boolean that_present_ace = true && that.isSetAce();
+      if (this_present_ace || that_present_ace) {
+        if (!(this_present_ace && that_present_ace))
+          return false;
+        if (!this.ace.equals(that.ace))
+          return false;
+      }
+
+      boolean this_present_ase = true && this.isSetAse();
+      boolean that_present_ase = true && that.isSetAse();
+      if (this_present_ase || that_present_ase) {
+        if (!(this_present_ase && that_present_ase))
+          return false;
+        if (!this.ase.equals(that.ase))
+          return false;
+      }
+
+      boolean this_present_ae = true && this.isSetAe();
+      boolean that_present_ae = true && that.isSetAe();
+      if (this_present_ae || that_present_ae) {
+        if (!(this_present_ae && that_present_ae))
+          return false;
+        if (!this.ae.equals(that.ae))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
+      hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
+      if (isSetIre())
+        hashCode = hashCode * 8191 + ire.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
+      if (isSetEnf())
+        hashCode = hashCode * 8191 + enf.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
+      if (isSetAce())
+        hashCode = hashCode * 8191 + ace.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAse()) ? 131071 : 524287);
+      if (isSetAse())
+        hashCode = hashCode * 8191 + ase.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAe()) ? 131071 : 524287);
+      if (isSetAe())
+        hashCode = hashCode * 8191 + ae.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(validateExperiment_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(isSetIre()).compareTo(other.isSetIre());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetIre()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ire, other.ire);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetEnf()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAce()).compareTo(other.isSetAce());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAce()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ace, other.ace);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAse()).compareTo(other.isSetAse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ase, other.ase);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ae, other.ae);
+        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("validateExperiment_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ire:");
+      if (this.ire == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ire);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("enf:");
+      if (this.enf == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.enf);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ace:");
+      if (this.ace == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ace);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ase:");
+      if (this.ase == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ase);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ae:");
+      if (this.ae == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ae);
+      }
+      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 validateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public validateExperiment_resultStandardScheme getScheme() {
+        return new validateExperiment_resultStandardScheme();
+      }
+    }
+
+    private static class validateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_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: // IRE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+                struct.ire.read(iprot);
+                struct.setIreIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // ENF
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+                struct.enf.read(iprot);
+                struct.setEnfIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // ACE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+                struct.ace.read(iprot);
+                struct.setAceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // ASE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+                struct.ase.read(iprot);
+                struct.setAseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 5: // AE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+                struct.ae.read(iprot);
+                struct.setAeIsSet(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, validateExperiment_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.ire != null) {
+          oprot.writeFieldBegin(IRE_FIELD_DESC);
+          struct.ire.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.enf != null) {
+          oprot.writeFieldBegin(ENF_FIELD_DESC);
+          struct.enf.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ace != null) {
+          oprot.writeFieldBegin(ACE_FIELD_DESC);
+          struct.ace.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ase != null) {
+          oprot.writeFieldBegin(ASE_FIELD_DESC);
+          struct.ase.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ae != null) {
+          oprot.writeFieldBegin(AE_FIELD_DESC);
+          struct.ae.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class validateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public validateExperiment_resultTupleScheme getScheme() {
+        return new validateExperiment_resultTupleScheme();
+      }
+    }
+
+    private static class validateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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.isSetIre()) {
+          optionals.set(1);
+        }
+        if (struct.isSetEnf()) {
+          optionals.set(2);
+        }
+        if (struct.isSetAce()) {
+          optionals.set(3);
+        }
+        if (struct.isSetAse()) {
+          optionals.set(4);
+        }
+        if (struct.isSetAe()) {
+          optionals.set(5);
+        }
+        oprot.writeBitSet(optionals, 6);
+        if (struct.isSetSuccess()) {
+          oprot.writeBool(struct.success);
+        }
+        if (struct.isSetIre()) {
+          struct.ire.write(oprot);
+        }
+        if (struct.isSetEnf()) {
+          struct.enf.write(oprot);
+        }
+        if (struct.isSetAce()) {
+          struct.ace.write(oprot);
+        }
+        if (struct.isSetAse()) {
+          struct.ase.write(oprot);
+        }
+        if (struct.isSetAe()) {
+          struct.ae.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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(6);
+        if (incoming.get(0)) {
+          struct.success = iprot.readBool();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+          struct.ire.read(iprot);
+          struct.setIreIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+          struct.enf.read(iprot);
+          struct.setEnfIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+          struct.ace.read(iprot);
+          struct.setAceIsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+          struct.ase.read(iprot);
+          struct.setAseIsSet(true);
+        }
+        if (incoming.get(5)) {
+          struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+          struct.ae.read(iprot);
+          struct.setAeIsSet(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 launchExperiment_args implements org.apache.thrift.TBase<launchExperiment_args, launchExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_args");
+
+    private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    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)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_argsTupleSchemeFactory();
+
+    public org.apache.airavata.model.security.AuthzToken authzToken; // required
+    public java.lang.String airavataExperimentId; // required
+    public java.lang.String gatewayId; // 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 {
+      AUTHZ_TOKEN((short)1, "authzToken"),
+      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId"),
+      GATEWAY_ID((short)3, "gatewayId");
+
+      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: // AUTHZ_TOKEN
+            return AUTHZ_TOKEN;
+          case 2: // AIRAVATA_EXPERIMENT_ID
+            return AIRAVATA_EXPERIMENT_ID;
+          case 3: // GATEWAY_ID
+            return GATEWAY_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.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
+      tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      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)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchExperiment_args.class, metaDataMap);
+    }
+
+    public launchExperiment_args() {
+    }
+
+    public launchExperiment_args(
+      org.apache.airavata.model.security.AuthzToken authzToken,
+      java.lang.String airavataExperimentId,
+      java.lang.String gatewayId)
+    {
+      this();
+      this.authzToken = authzToken;
+      this.airavataExperimentId = airavataExperimentId;
+      this.gatewayId = gatewayId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public launchExperiment_args(launchExperiment_args other) {
+      if (other.isSetAuthzToken()) {
+        this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
+      }
+      if (other.isSetAiravataExperimentId()) {
+        this.airavataExperimentId = other.airavataExperimentId;
+      }
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
+    }
+
+    public launchExperiment_args deepCopy() {
+      return new launchExperiment_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.authzToken = null;
+      this.airavataExperimentId = null;
+      this.gatewayId = null;
+    }
+
+    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+      return this.authzToken;
+    }
+
+    public launchExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+      this.authzToken = authzToken;
+      return this;
+    }
+
+    public void unsetAuthzToken() {
+      this.authzToken = null;
+    }
+
+    /** Returns true if field authzToken is set (has been assigned a value) and false otherwise */
+    public boolean isSetAuthzToken() {
+      return this.authzToken != null;
+    }
+
+    public void setAuthzTokenIsSet(boolean value) {
+      if (!value) {
+        this.authzToken = null;
+      }
+    }
+
+    public java.lang.String getAiravataExperimentId() {
+      return this.airavataExperimentId;
+    }
+
+    public launchExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+      this.airavataExperimentId = airavataExperimentId;
+      return this;
+    }
+
+    public void unsetAiravataExperimentId() {
+      this.airavataExperimentId = null;
+    }
+
+    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAiravataExperimentId() {
+      return this.airavataExperimentId != null;
+    }
+
+    public void setAiravataExperimentIdIsSet(boolean value) {
+      if (!value) {
+        this.airavataExperimentId = null;
+      }
+    }
+
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public launchExperiment_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 void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        if (value == null) {
+          unsetAuthzToken();
+        } else {
+          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
+        }
+        break;
+
+      case AIRAVATA_EXPERIMENT_ID:
+        if (value == null) {
+          unsetAiravataExperimentId();
+        } else {
+          setAiravataExperimentId((java.lang.String)value);
+        }
+        break;
+
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return getAuthzToken();
+
+      case AIRAVATA_EXPERIMENT_ID:
+        return getAiravataExperimentId();
+
+      case GATEWAY_ID:
+        return getGatewayId();
+
+      }
+      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 AUTHZ_TOKEN:
+        return isSetAuthzToken();
+      case AIRAVATA_EXPERIMENT_ID:
+        return isSetAiravataExperimentId();
+      case GATEWAY_ID:
+        return isSetGatewayId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof launchExperiment_args)
+        return this.equals((launchExperiment_args)that);
+      return false;
+    }
+
+    public boolean equals(launchExperiment_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_authzToken = true && this.isSetAuthzToken();
+      boolean that_present_authzToken = true && that.isSetAuthzToken();
+      if (this_present_authzToken || that_present_authzToken) {
+        if (!(this_present_authzToken && that_present_authzToken))
+          return false;
+        if (!this.authzToken.equals(that.authzToken))
+          return false;
+      }
+
+      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
+      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
+      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
+        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
+          return false;
+        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
+          return false;
+      }
+
+      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;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetAuthzToken()) ? 131071 : 524287);
+      if (isSetAuthzToken())
+        hashCode = hashCode * 8191 + authzToken.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
+      if (isSetAiravataExperimentId())
+        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(launchExperiment_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAuthzToken()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authzToken, other.authzToken);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAiravataExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      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;
+        }
+      }
+      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("launchExperiment_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -93242,6 +94872,14 @@ public class Airavata {
         sb.append(this.airavataExperimentId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -93254,6 +94892,9 @@ public class Airavata {
       if (airavataExperimentId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
       }
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -93276,15 +94917,15 @@ public class Airavata {
       }
     }
 
-    private static class validateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public validateExperiment_argsStandardScheme getScheme() {
-        return new validateExperiment_argsStandardScheme();
+    private static class launchExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public launchExperiment_argsStandardScheme getScheme() {
+        return new launchExperiment_argsStandardScheme();
       }
     }
 
-    private static class validateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_args> {
+    private static class launchExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -93311,6 +94952,14 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 3: // 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;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -93322,7 +94971,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, validateExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -93336,35 +94985,43 @@ public class Airavata {
           oprot.writeString(struct.airavataExperimentId);
           oprot.writeFieldEnd();
         }
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class validateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public validateExperiment_argsTupleScheme getScheme() {
-        return new validateExperiment_argsTupleScheme();
+    private static class launchExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public launchExperiment_argsTupleScheme getScheme() {
+        return new launchExperiment_argsTupleScheme();
       }
     }
 
-    private static class validateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_args> {
+    private static class launchExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
+        oprot.writeString(struct.gatewayId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
         struct.airavataExperimentId = iprot.readString();
         struct.setAiravataExperimentIdIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
       }
     }
 
@@ -93373,20 +95030,18 @@ public class Airavata {
     }
   }
 
-  public static class validateExperiment_result implements org.apache.thrift.TBase<validateExperiment_result, validateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<validateExperiment_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validateExperiment_result");
+  public static class launchExperiment_result implements org.apache.thrift.TBase<launchExperiment_result, launchExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new validateExperiment_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validateExperiment_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_resultTupleSchemeFactory();
 
-    public boolean success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -93395,7 +95050,6 @@ public class Airavata {
 
     /** 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"),
       IRE((short)1, "ire"),
       ENF((short)2, "enf"),
       ACE((short)3, "ace"),
@@ -93415,8 +95069,6 @@ public class Airavata {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
           case 1: // IRE
             return IRE;
           case 2: // ENF
@@ -93467,13 +95119,9 @@ public class Airavata {
     }
 
     // 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.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -93485,14 +95133,13 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(validateExperiment_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchExperiment_result.class, metaDataMap);
     }
 
-    public validateExperiment_result() {
+    public launchExperiment_result() {
     }
 
-    public validateExperiment_result(
-      boolean success,
+    public launchExperiment_result(
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -93500,8 +95147,6 @@ public class Airavata {
       org.apache.airavata.model.error.AuthorizationException ae)
     {
       this();
-      this.success = success;
-      setSuccessIsSet(true);
       this.ire = ire;
       this.enf = enf;
       this.ace = ace;
@@ -93512,9 +95157,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public validateExperiment_result(validateExperiment_result other) {
-      __isset_bitfield = other.__isset_bitfield;
-      this.success = other.success;
+    public launchExperiment_result(launchExperiment_result other) {
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -93532,14 +95175,12 @@ public class Airavata {
       }
     }
 
-    public validateExperiment_result deepCopy() {
-      return new validateExperiment_result(this);
+    public launchExperiment_result deepCopy() {
+      return new launchExperiment_result(this);
     }
 
     @Override
     public void clear() {
-      setSuccessIsSet(false);
-      this.success = false;
       this.ire = null;
       this.enf = null;
       this.ace = null;
@@ -93547,34 +95188,11 @@ public class Airavata {
       this.ae = null;
     }
 
-    public boolean isSuccess() {
-      return this.success;
-    }
-
-    public validateExperiment_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.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public validateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public launchExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -93598,7 +95216,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public validateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public launchExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -93622,7 +95240,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public validateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public launchExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -93646,7 +95264,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public validateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public launchExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -93670,7 +95288,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public validateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public launchExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -93692,14 +95310,6 @@ public class Airavata {
 
     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 IRE:
         if (value == null) {
           unsetIre();
@@ -93745,9 +95355,6 @@ public class Airavata {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
-      case SUCCESS:
-        return isSuccess();
-
       case IRE:
         return getIre();
 
@@ -93774,8 +95381,6 @@ public class Airavata {
       }
 
       switch (field) {
-      case SUCCESS:
-        return isSetSuccess();
       case IRE:
         return isSetIre();
       case ENF:
@@ -93794,26 +95399,17 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof validateExperiment_result)
-        return this.equals((validateExperiment_result)that);
+      if (that instanceof launchExperiment_result)
+        return this.equals((launchExperiment_result)that);
       return false;
     }
 
-    public boolean equals(validateExperiment_result that) {
+    public boolean equals(launchExperiment_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_ire = true && this.isSetIre();
       boolean that_present_ire = true && that.isSetIre();
       if (this_present_ire || that_present_ire) {
@@ -93866,8 +95462,6 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
-
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
         hashCode = hashCode * 8191 + ire.hashCode();
@@ -93892,23 +95486,13 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(validateExperiment_result other) {
+    public int compareTo(launchExperiment_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(isSetIre()).compareTo(other.isSetIre());
       if (lastComparison != 0) {
         return lastComparison;
@@ -93976,13 +95560,9 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("launchExperiment_result(");
       boolean first = true;
 
-      sb.append("success:");
-      sb.append(this.success);
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("ire:");
       if (this.ire == null) {
         sb.append("null");
@@ -94041,23 +95621,21 @@ public class Airavata {
 
     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 validateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public validateExperiment_resultStandardScheme getScheme() {
-        return new validateExperiment_resultStandardScheme();
+    private static class launchExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public launchExperiment_resultStandardScheme getScheme() {
+        return new launchExperiment_resultStandardScheme();
       }
     }
 
-    private static class validateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_result> {
+    private static class launchExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -94067,14 +95645,6 @@ public class Airavata {
             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: // IRE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
@@ -94131,15 +95701,10 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, validateExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_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.ire != null) {
           oprot.writeFieldBegin(IRE_FIELD_DESC);
           struct.ire.write(oprot);
@@ -94171,40 +95736,34 @@ public class Airavata {
 
     }
 
-    private static class validateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public validateExperiment_resultTupleScheme getScheme() {
-        return new validateExperiment_resultTupleScheme();
+    private static class launchExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public launchExperiment_resultTupleScheme getScheme() {
+        return new launchExperiment_resultTupleScheme();
       }
     }
 
-    private static class validateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_result> {
+    private static class launchExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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.isSetIre()) {
-          optionals.set(1);
+          optionals.set(0);
         }
         if (struct.isSetEnf()) {
-          optionals.set(2);
+          optionals.set(1);
         }
         if (struct.isSetAce()) {
-          optionals.set(3);
+          optionals.set(2);
         }
         if (struct.isSetAse()) {
-          optionals.set(4);
+          optionals.set(3);
         }
         if (struct.isSetAe()) {
-          optionals.set(5);
-        }
-        oprot.writeBitSet(optionals, 6);
-        if (struct.isSetSuccess()) {
-          oprot.writeBool(struct.success);
+          optionals.set(4);
         }
+        oprot.writeBitSet(optionals, 5);
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
         }
@@ -94223,34 +95782,30 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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(6);
+        java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.success = iprot.readBool();
-          struct.setSuccessIsSet(true);
-        }
-        if (incoming.get(1)) {
           struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
           struct.ire.read(iprot);
           struct.setIreIsSet(true);
         }
-        if (incoming.get(2)) {
+        if (incoming.get(1)) {
           struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
           struct.enf.read(iprot);
           struct.setEnfIsSet(true);
         }
-        if (incoming.get(3)) {
+        if (incoming.get(2)) {
           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
           struct.ace.read(iprot);
           struct.setAceIsSet(true);
         }
-        if (incoming.get(4)) {
+        if (incoming.get(3)) {
           struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
           struct.ase.read(iprot);
           struct.setAseIsSet(true);
         }
-        if (incoming.get(5)) {
+        if (incoming.get(4)) {
           struct.ae = new org.apache.airavata.model.error.AuthorizationException();
           struct.ae.read(iprot);
           struct.setAeIsSet(true);
@@ -94263,25 +95818,22 @@ public class Airavata {
     }
   }
 
-  public static class launchExperiment_args implements org.apache.thrift.TBase<launchExperiment_args, launchExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_args");
+  public static class getExperimentStatus_args implements org.apache.thrift.TBase<getExperimentStatus_args, getExperimentStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
-    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)3);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentStatus_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentStatus_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String airavataExperimentId; // required
-    public java.lang.String gatewayId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId"),
-      GATEWAY_ID((short)3, "gatewayId");
+      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -94300,8 +95852,6 @@ public class Airavata {
             return AUTHZ_TOKEN;
           case 2: // AIRAVATA_EXPERIMENT_ID
             return AIRAVATA_EXPERIMENT_ID;
-          case 3: // GATEWAY_ID
-            return GATEWAY_ID;
           default:
             return null;
         }
@@ -94349,57 +95899,49 @@ public class Airavata {
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
       tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      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)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchExperiment_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentStatus_args.class, metaDataMap);
     }
 
-    public launchExperiment_args() {
+    public getExperimentStatus_args() {
     }
 
-    public launchExperiment_args(
+    public getExperimentStatus_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String airavataExperimentId,
-      java.lang.String gatewayId)
+      java.lang.String airavataExperimentId)
     {
       this();
       this.authzToken = authzToken;
       this.airavataExperimentId = airavataExperimentId;
-      this.gatewayId = gatewayId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public launchExperiment_args(launchExperiment_args other) {
+    public getExperimentStatus_args(getExperimentStatus_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
       if (other.isSetAiravataExperimentId()) {
         this.airavataExperimentId = other.airavataExperimentId;
       }
-      if (other.isSetGatewayId()) {
-        this.gatewayId = other.gatewayId;
-      }
     }
 
-    public launchExperiment_args deepCopy() {
-      return new launchExperiment_args(this);
+    public getExperimentStatus_args deepCopy() {
+      return new getExperimentStatus_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
       this.airavataExperimentId = null;
-      this.gatewayId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public launchExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getExperimentStatus_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -94423,7 +95965,7 @@ public class Airavata {
       return this.airavataExperimentId;
     }
 
-    public launchExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+    public getExperimentStatus_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
       this.airavataExperimentId = airavataExperimentId;
       return this;
     }
@@ -94443,30 +95985,6 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getGatewayId() {
-      return this.gatewayId;
-    }
-
-    public launchExperiment_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 void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case AUTHZ_TOKEN:
@@ -94485,14 +96003,6 @@ public class Airavata {
         }
         break;
 
-      case GATEWAY_ID:
-        if (value == null) {
-          unsetGatewayId();
-        } else {
-          setGatewayId((java.lang.String)value);
-        }
-        break;
-
       }
     }
 
@@ -94504,9 +96014,6 @@ public class Airavata {
       case AIRAVATA_EXPERIMENT_ID:
         return getAiravataExperimentId();
 
-      case GATEWAY_ID:
-        return getGatewayId();
-
       }
       throw new java.lang.IllegalStateException();
     }
@@ -94522,8 +96029,6 @@ public class Airavata {
         return isSetAuthzToken();
       case AIRAVATA_EXPERIMENT_ID:
         return isSetAiravataExperimentId();
-      case GATEWAY_ID:
-        return isSetGatewayId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -94532,12 +96037,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof launchExperiment_args)
-        return this.equals((launchExperiment_args)that);
+      if (that instanceof getExperimentStatus_args)
+        return this.equals((getExperimentStatus_args)that);
       return false;
     }
 
-    public boolean equals(launchExperiment_args that) {
+    public boolean equals(getExperimentStatus_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -94561,15 +96066,6 @@ public class Airavata {
           return false;
       }
 
-      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;
-      }
-
       return true;
     }
 
@@ -94585,15 +96081,11 @@ public class Airavata {
       if (isSetAiravataExperimentId())
         hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
-      if (isSetGatewayId())
-        hashCode = hashCode * 8191 + gatewayId.hashCode();
-
       return hashCode;
     }
 
     @Override
-    public int compareTo(launchExperiment_args other) {
+    public int compareTo(getExperimentStatus_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -94620,16 +96112,6 @@ public class Airavata {
           return lastComparison;
         }
       }
-      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;
-        }
-      }
       return 0;
     }
 
@@ -94647,7 +96129,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("launchExperiment_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentStatus_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -94665,14 +96147,6 @@ public class Airavata {
         sb.append(this.airavataExperimentId);
       }
       first = false;
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -94685,9 +96159,6 @@ public class Airavata {
       if (airavataExperimentId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
       }
-      if (gatewayId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
-      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -94710,15 +96181,15 @@ public class Airavata {
       }
     }
 
-    private static class launchExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public launchExperiment_argsStandardScheme getScheme() {
-        return new launchExperiment_argsStandardScheme();
+    private static class getExperimentStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentStatus_argsStandardScheme getScheme() {
+        return new getExperimentStatus_argsStandardScheme();
       }
     }
 
-    private static class launchExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_args> {
+    private static class getExperimentStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentStatus_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -94745,14 +96216,6 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // 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;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -94764,7 +96227,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -94778,43 +96241,35 @@ public class Airavata {
           oprot.writeString(struct.airavataExperimentId);
           oprot.writeFieldEnd();
         }
-        if (struct.gatewayId != null) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class launchExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public launchExperiment_argsTupleScheme getScheme() {
-        return new launchExperiment_argsTupleScheme();
+    private static class getExperimentStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentStatus_argsTupleScheme getScheme() {
+        return new getExperimentStatus_argsTupleScheme();
       }
     }
 
-    private static class launchExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_args> {
+    private static class getExperimentStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentStatus_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
-        oprot.writeString(struct.gatewayId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
         struct.airavataExperimentId = iprot.readString();
         struct.setAiravataExperimentIdIsSet(true);
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
       }
     }
 
@@ -94823,18 +96278,20 @@ public class Airavata {
     }
   }
 
-  public static class launchExperiment_result implements org.apache.thrift.TBase<launchExperiment_result, launchExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_result");
+  public static class getExperimentStatus_result implements org.apache.thrift.TBase<getExperimentStatus_result, getExperimentStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentStatus_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentStatus_resultTupleSchemeFactory();
 
+    public org.apache.airavata.model.status.ExperimentStatus success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -94843,6 +96300,7 @@ public class Airavata {
 
     /** 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"),
       IRE((short)1, "ire"),
       ENF((short)2, "enf"),
       ACE((short)3, "ace"),
@@ -94862,6 +96320,8 @@ public class Airavata {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // IRE
             return IRE;
           case 2: // ENF
@@ -94915,6 +96375,8 @@ public class Airavata {
     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.status.ExperimentStatus.class)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -94926,13 +96388,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchExperiment_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentStatus_result.class, metaDataMap);
     }
 
-    public launchExperiment_result() {
+    public getExperimentStatus_result() {
     }
 
-    public launchExperiment_result(
+    public getExperimentStatus_result(
+      org.apache.airavata.model.status.ExperimentStatus success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -94940,6 +96403,7 @@ public class Airavata {
       org.apache.airavata.model.error.AuthorizationException ae)
     {
       this();
+      this.success = success;
       this.ire = ire;
       this.enf = enf;
       this.ace = ace;
@@ -94950,7 +96414,10 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public launchExperiment_result(launchExperiment_result other) {
+    public getExperimentStatus_result(getExperimentStatus_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.status.ExperimentStatus(other.success);
+      }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -94968,12 +96435,13 @@ public class Airavata {
       }
     }
 
-    public launchExperiment_result deepCopy() {
-      return new launchExperiment_result(this);
+    public getExperimentStatus_result deepCopy() {
+      return new getExperimentStatus_result(this);
     }
 
     @Override
     public void clear() {
+      this.success = null;
       this.ire = null;
       this.enf = null;
       this.ace = null;
@@ -94981,11 +96449,35 @@ public class Airavata {
       this.ae = null;
     }
 
+    public org.apache.airavata.model.status.ExperimentStatus getSuccess() {
+      return this.success;
+    }
+
+    public getExperimentStatus_result setSuccess(org.apache.airavata.model.status.ExperimentStatus 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.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public launchExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getExperimentStatus_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -95009,7 +96501,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public launchExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public getExperimentStatus_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -95033,7 +96525,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public launchExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getExperimentStatus_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -95057,7 +96549,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public launchExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getExperimentStatus_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -95081,7 +96573,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public launchExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getExperimentStatus_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -95103,6 +96595,14 @@ public class Airavata {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((org.apache.airavata.model.status.ExperimentStatus)value);
+        }
+        break;
+
       case IRE:
         if (value == null) {
           unsetIre();
@@ -95148,6 +96648,9 @@ public class Airavata {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case IRE:
         return getIre();
 
@@ -95174,6 +96677,8 @@ public class Airavata {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case IRE:
         return isSetIre();
       case ENF:
@@ -95192,17 +96697,26 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof launchExperiment_result)
-        return this.equals((launchExperiment_result)that);
+      if (that instanceof getExperimentStatus_result)
+        return this.equals((getExperimentStatus_result)that);
       return false;
     }
 
-    public boolean equals(launchExperiment_result that) {
+    public boolean equals(getExperimentStatus_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_ire = true && this.isSetIre();
       boolean that_present_ire = true && that.isSetIre();
       if (this_present_ire || that_present_ire) {
@@ -95255,6 +96769,10 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
         hashCode = hashCode * 8191 + ire.hashCode();
@@ -95279,13 +96797,23 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(launchExperiment_result other) {
+    public int compareTo(getExperimentStatus_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(isSetIre()).compareTo(other.isSetIre());
       if (lastComparison != 0) {
         return lastComparison;
@@ -95353,9 +96881,17 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("launchExperiment_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentStatus_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("ire:");
       if (this.ire == null) {
         sb.append("null");
@@ -95402,6 +96938,9 @@ public class Airavata {
     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 {
@@ -95420,15 +96959,15 @@ public class Airavata {
       }
     }
 
-    private static class launchExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public launchExperiment_resultStandardScheme getScheme() {
-        return new launchExperiment_resultStandardScheme();
+    private static class getExperimentStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentStatus_resultStandardScheme getScheme() {
+        return new getExperimentStatus_resultStandardScheme();
       }
     }
 
-    private static class launchExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_result> {
+    private static class getExperimentStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentStatus_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentStatus_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -95438,6 +96977,15 @@ public class Airavata {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new org.apache.airavata.model.status.ExperimentStatus();
+                struct.success.read(iprot);
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             case 1: // IRE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
@@ -95494,10 +97042,15 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentStatus_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.ire != null) {
           oprot.writeFieldBegin(IRE_FIELD_DESC);
           struct.ire.write(oprot);
@@ -95529,34 +97082,40 @@ public class Airavata {
 
     }
 
-    private static class launchExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public launchExperiment_resultTupleScheme getScheme() {
-        return new launchExperiment_resultTupleScheme();
+    private static class getExperimentStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentStatus_resultTupleScheme getScheme() {
+        return new getExperimentStatus_resultTupleScheme();
       }
     }
 
-    private static class launchExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_result> {
+    private static class getExperimentStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentStatus_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_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.isSetIre()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        if (struct.isSetEnf()) {
+        if (struct.isSetIre()) {
           optionals.set(1);
         }
-        if (struct.isSetAce()) {
+        if (struct.isSetEnf()) {
           optionals.set(2);
         }
-        if (struct.isSetAse()) {
+        if (struct.isSetAce()) {
           optionals.set(3);
         }
-        if (struct.isSetAe()) {
+        if (struct.isSetAse()) {
           optionals.set(4);
         }
-        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetAe()) {
+          optionals.set(5);
+        }
+        oprot.writeBitSet(optionals, 6);
+        if (struct.isSetSuccess()) {
+          struct.success.write(oprot);
+        }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
         }
@@ -95575,30 +97134,35 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_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(5);
+        java.util.BitSet incoming = iprot.readBitSet(6);
         if (incoming.get(0)) {
+          struct.success = new org.apache.airavata.model.status.ExperimentStatus();
+          struct.success.read(iprot);
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
           struct.ire.read(iprot);
           struct.setIreIsSet(true);
         }
-        if (incoming.get(1)) {
+        if (incoming.get(2)) {
           struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
           struct.enf.read(iprot);
           struct.setEnfIsSet(true);
         }
-        if (incoming.get(2)) {
+        if (incoming.get(3)) {
           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
           struct.ace.read(iprot);
           struct.setAceIsSet(true);
         }
-        if (incoming.get(3)) {
+        if (incoming.get(4)) {
           struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
           struct.ase.read(iprot);
           struct.setAseIsSet(true);
         }
-        if (incoming.get(4)) {
+        if (incoming.get(5)) {
           struct.ae = new org.apache.airavata.model.error.AuthorizationException();
           struct.ae.read(iprot);
           struct.setAeIsSet(true);
@@ -95611,14 +97175,14 @@ public class Airavata {
     }
   }
 
-  public static class getExperimentStatus_args implements org.apache.thrift.TBase<getExperimentStatus_args, getExperimentStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_args");
+  public static class getExperimentOutputs_args implements org.apache.thrift.TBase<getExperimentOutputs_args, getExperimentOutputs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentOutputs_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentOutputs_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentStatus_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentStatus_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentOutputs_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentOutputs_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String airavataExperimentId; // required
@@ -95693,13 +97257,13 @@ public class Airavata {
       tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", 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(getExperimentStatus_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentOutputs_args.class, metaDataMap);
     }
 
-    public getExperimentStatus_args() {
+    public getExperimentOutputs_args() {
     }
 
-    public getExperimentStatus_args(
+    public getExperimentOutputs_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
       java.lang.String airavataExperimentId)
     {
@@ -95711,7 +97275,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getExperimentStatus_args(getExperimentStatus_args other) {
+    public getExperimentOutputs_args(getExperimentOutputs_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
@@ -95720,8 +97284,8 @@ public class Airavata {
       }
     }
 
-    public getExperimentStatus_args deepCopy() {
-      return new getExperimentStatus_args(this);
+    public getExperimentOutputs_args deepCopy() {
+      return new getExperimentOutputs_args(this);
     }
 
     @Override
@@ -95734,7 +97298,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public getExperimentStatus_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getExperimentOutputs_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -95758,7 +97322,7 @@ public class Airavata {
       return this.airavataExperimentId;
     }
 
-    public getExperimentStatus_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+    public getExperimentOutputs_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
       this.airavataExperimentId = airavataExperimentId;
       return this;
     }
@@ -95830,12 +97394,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getExperimentStatus_args)
-        return this.equals((getExperimentStatus_args)that);
+      if (that instanceof getExperimentOutputs_args)
+        return this.equals((getExperimentOutputs_args)that);
       return false;
     }
 
-    public boolean equals(getExperimentStatus_args that) {
+    public boolean equals(getExperimentOutputs_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -95878,7 +97442,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getExperimentStatus_args other) {
+    public int compareTo(getExperimentOutputs_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -95922,7 +97486,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentStatus_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentOutputs_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -95974,15 +97538,15 @@ public class Airavata {
       }
     }
 
-    private static class getExperimentStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentStatus_argsStandardScheme getScheme() {
-        return new getExperimentStatus_argsStandardScheme();
+    private static class getExperimentOutputs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentOutputs_argsStandardScheme getScheme() {
+        return new getExperimentOutputs_argsStandardScheme();
       }
     }
 
-    private static class getExperimentStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentStatus_args> {
+    private static class getExperimentOutputs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentOutputs_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -96020,7 +97584,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -96040,23 +97604,23 @@ public class Airavata {
 
     }
 
-    private static class getExperimentStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentStatus_argsTupleScheme getScheme() {
-        return new getExperimentStatus_argsTupleScheme();
+    private static class getExperimentOutputs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentOutputs_argsTupleScheme getScheme() {
+        return new getExperimentOutputs_argsTupleScheme();
       }
     }
 
-    private static class getExperimentStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentStatus_args> {
+    private static class getExperimentOutputs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentOutputs_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
@@ -96071,20 +97635,20 @@ public class Airavata {
     }
   }
 
-  public static class getExperimentStatus_result implements org.apache.thrift.TBase<getExperimentStatus_result, getExperimentStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_result");
+  public static class getExperimentOutputs_result implements org.apache.thrift.TBase<getExperimentOutputs_result, getExperimentOutputs_result._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentOutputs_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentOutputs_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentStatus_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentStatus_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentOutputs_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentOutputs_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.status.ExperimentStatus success; // required
+    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -96169,7 +97733,8 @@ public class Airavata {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ExperimentStatus.class)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -96181,14 +97746,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentStatus_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentOutputs_result.class, metaDataMap);
     }
 
-    public getExperimentStatus_result() {
+    public getExperimentOutputs_result() {
     }
 
-    public getExperimentStatus_result(
-      org.apache.airavata.model.status.ExperimentStatus success,
+    public getExperimentOutputs_result(
+      java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -96207,9 +97772,13 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getExperimentStatus_result(getExperimentStatus_result other) {
+    public getExperimentOutputs_result(getExperimentOutputs_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.status.ExperimentStatus(other.success);
+        java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.success.size());
+        for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+        }
+        this.success = __this__success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -96228,8 +97797,8 @@ public class Airavata {
       }
     }
 
-    public getExperimentStatus_result deepCopy() {
-      return new getExperimentStatus_result(this);
+    public getExperimentOutputs_result deepCopy() {
+      return new getExperimentOutputs_result(this);
     }
 
     @Override
@@ -96242,11 +97811,26 @@ public class Airavata {
       this.ae = null;
     }
 
-    public org.apache.airavata.model.status.ExperimentStatus getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getSuccess() {
       return this.success;
     }
 
-    public getExperimentStatus_result setSuccess(org.apache.airavata.model.status.ExperimentStatus success) {
+    public getExperimentOutputs_result setSuccess(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success) {
       this.success = success;
       return this;
     }
@@ -96270,7 +97854,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getExperimentStatus_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getExperimentOutputs_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -96294,7 +97878,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public getExperimentStatus_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public getExperimentOutputs_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -96318,7 +97902,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getExperimentStatus_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getExperimentOutputs_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -96342,7 +97926,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getExperimentStatus_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getExperimentOutputs_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -96366,7 +97950,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getExperimentStatus_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getExperimentOutputs_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -96392,7 +97976,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.status.ExperimentStatus)value);
+          setSuccess((java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
         }
         break;
 
@@ -96490,12 +98074,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getExperimentStatus_result)
-        return this.equals((getExperimentStatus_result)that);
+      if (that instanceof getExperimentOutputs_result)
+        return this.equals((getExperimentOutputs_result)that);
       return false;
     }
 
-    public boolean equals(getExperimentStatus_result that) {
+    public boolean equals(getExperimentOutputs_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -96590,7 +98174,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getExperimentStatus_result other) {
+    public int compareTo(getExperimentOutputs_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -96674,7 +98258,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentStatus_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentOutputs_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -96731,9 +98315,6 @@ public class Airavata {
     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 {
@@ -96752,15 +98333,15 @@ public class Airavata {
       }
     }
 
-    private static class getExperimentStatus_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentStatus_resultStandardScheme getScheme() {
-        return new getExperimentStatus_resultStandardScheme();
+    private static class getExperimentOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentOutputs_resultStandardScheme getScheme() {
+        return new getExperimentOutputs_resultStandardScheme();
       }
     }
 
-    private static class getExperimentStatus_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentStatus_result> {
+    private static class getExperimentOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentOutputs_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentStatus_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -96771,9 +98352,19 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.status.ExperimentStatus();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list120 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list120.size);
+                  org.apache.airavata.model.application.io.OutputDataObjectType _elem121;
+                  for (int _i122 = 0; _i122 < _list120.size; ++_i122)
+                  {
+                    _elem121 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                    _elem121.read(iprot);
+                    struct.success.add(_elem121);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -96835,13 +98426,20 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentStatus_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter123 : struct.success)
+            {
+              _iter123.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -96875,16 +98473,16 @@ public class Airavata {
 
     }
 
-    private static class getExperimentStatus_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentStatus_resultTupleScheme getScheme() {
-        return new getExperimentStatus_resultTupleScheme();
+    private static class getExperimentOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getExperimentOutputs_resultTupleScheme getScheme() {
+        return new getExperimentOutputs_resultTupleScheme();
       }
     }
 
-    private static class getExperimentStatus_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentStatus_result> {
+    private static class getExperimentOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentOutputs_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_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()) {
@@ -96907,7 +98505,13 @@ public class Airavata {
         }
         oprot.writeBitSet(optionals, 6);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter124 : struct.success)
+            {
+              _iter124.write(oprot);
+            }
+          }
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -96927,12 +98531,21 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_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(6);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.status.ExperimentStatus();
-          struct.success.read(iprot);
+          {
+            org.apache.thrift.protocol.TList _list125 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list125.size);
+            org.apache.airavata.model.application.io.OutputDataObjectType _elem126;
+            for (int _i127 = 0; _i127 < _list125.size; ++_i127)
+            {
+              _elem126 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+              _elem126.read(iprot);
+              struct.success.add(_elem126);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -96968,14 +98581,14 @@ public class Airavata {
     }
   }
 
-  public static class getExperimentOutputs_args implements org.apache.thrift.TBase<getExperimentOutputs_args, getExperimentOutputs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentOutputs_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentOutputs_args");
+  public static class getIntermediateOutputs_args implements org.apache.thrift.TBase<getIntermediateOutputs_args, getIntermediateOutputs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getIntermediateOutputs_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIntermediateOutputs_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentOutputs_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentOutputs_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getIntermediateOutputs_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getIntermediateOutputs_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String airavataExperimentId; // required
@@ -97050,13 +98663,13 @@ public class Airavata {
       tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", 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(getExperimentOutputs_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getIntermediateOutputs_args.class, metaDataMap);
     }
 
-    public getExperimentOutputs_args() {
+    public getIntermediateOutputs_args() {
     }
 
-    public getExperimentOutputs_args(
+    public getIntermediateOutputs_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
       java.lang.String airavataExperimentId)
     {
@@ -97068,7 +98681,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getExperimentOutputs_args(getExperimentOutputs_args other) {
+    public getIntermediateOutputs_args(getIntermediateOutputs_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
@@ -97077,8 +98690,8 @@ public class Airavata {
       }
     }
 
-    public getExperimentOutputs_args deepCopy() {
-      return new getExperimentOutputs_args(this);
+    public getIntermediateOutputs_args deepCopy() {
+      return new getIntermediateOutputs_args(this);
     }
 
     @Override
@@ -97091,7 +98704,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public getExperimentOutputs_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getIntermediateOutputs_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -97115,7 +98728,7 @@ public class Airavata {
       return this.airavataExperimentId;
     }
 
-    public getExperimentOutputs_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+    public getIntermediateOutputs_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
       this.airavataExperimentId = airavataExperimentId;
       return this;
     }
@@ -97187,12 +98800,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getExperimentOutputs_args)
-        return this.equals((getExperimentOutputs_args)that);
+      if (that instanceof getIntermediateOutputs_args)
+        return this.equals((getIntermediateOutputs_args)that);
       return false;
     }
 
-    public boolean equals(getExperimentOutputs_args that) {
+    public boolean equals(getIntermediateOutputs_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -97235,7 +98848,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getExperimentOutputs_args other) {
+    public int compareTo(getIntermediateOutputs_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -97279,7 +98892,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentOutputs_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getIntermediateOutputs_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -97331,15 +98944,15 @@ public class Airavata {
       }
     }
 
-    private static class getExperimentOutputs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentOutputs_argsStandardScheme getScheme() {
-        return new getExperimentOutputs_argsStandardScheme();
+    private static class getIntermediateOutputs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getIntermediateOutputs_argsStandardScheme getScheme() {
+        return new getIntermediateOutputs_argsStandardScheme();
       }
     }
 
-    private static class getExperimentOutputs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentOutputs_args> {
+    private static class getIntermediateOutputs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getIntermediateOutputs_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -97377,7 +98990,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -97397,23 +99010,23 @@ public class Airavata {
 
     }
 
-    private static class getExperimentOutputs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentOutputs_argsTupleScheme getScheme() {
-        return new getExperimentOutputs_argsTupleScheme();
+    private static class getIntermediateOutputs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getIntermediateOutputs_argsTupleScheme getScheme() {
+        return new getIntermediateOutputs_argsTupleScheme();
       }
     }
 
-    private static class getExperimentOutputs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentOutputs_args> {
+    private static class getIntermediateOutputs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getIntermediateOutputs_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
@@ -97428,8 +99041,8 @@ public class Airavata {
     }
   }
 
-  public static class getExperimentOutputs_result implements org.apache.thrift.TBase<getExperimentOutputs_result, getExperimentOutputs_result._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentOutputs_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentOutputs_result");
+  public static class getIntermediateOutputs_result implements org.apache.thrift.TBase<getIntermediateOutputs_result, getIntermediateOutputs_result._Fields>, java.io.Serializable, Cloneable, Comparable<getIntermediateOutputs_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIntermediateOutputs_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
@@ -97438,8 +99051,8 @@ public class Airavata {
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentOutputs_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentOutputs_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getIntermediateOutputs_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getIntermediateOutputs_resultTupleSchemeFactory();
 
     public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
@@ -97539,13 +99152,13 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentOutputs_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getIntermediateOutputs_result.class, metaDataMap);
     }
 
-    public getExperimentOutputs_result() {
+    public getIntermediateOutputs_result() {
     }
 
-    public getExperimentOutputs_result(
+    public getIntermediateOutputs_result(
       java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
@@ -97565,7 +99178,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getExperimentOutputs_result(getExperimentOutputs_result other) {
+    public getIntermediateOutputs_result(getIntermediateOutputs_result other) {
       if (other.isSetSuccess()) {
         java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.success.size());
         for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.success) {
@@ -97590,8 +99203,8 @@ public class Airavata {
       }
     }
 
-    public getExperimentOutputs_result deepCopy() {
-      return new getExperimentOutputs_result(this);
+    public getIntermediateOutputs_result deepCopy() {
+      return new getIntermediateOutputs_result(this);
     }
 
     @Override
@@ -97623,7 +99236,7 @@ public class Airavata {
       return this.success;
     }
 
-    public getExperimentOutputs_result setSuccess(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success) {
+    public getIntermediateOutputs_result setSuccess(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success) {
       this.success = success;
       return this;
     }
@@ -97647,7 +99260,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getExperimentOutputs_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getIntermediateOutputs_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -97671,7 +99284,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public getExperimentOutputs_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public getIntermediateOutputs_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -97695,7 +99308,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getExperimentOutputs_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getIntermediateOutputs_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -97719,7 +99332,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getExperimentOutputs_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getIntermediateOutputs_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -97743,7 +99356,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getExperimentOutputs_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getIntermediateOutputs_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -97867,12 +99480,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getExperimentOutputs_result)
-        return this.equals((getExperimentOutputs_result)that);
+      if (that instanceof getIntermediateOutputs_result)
+        return this.equals((getIntermediateOutputs_result)that);
       return false;
     }
 
-    public boolean equals(getExperimentOutputs_result that) {
+    public boolean equals(getIntermediateOutputs_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -97967,7 +99580,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getExperimentOutputs_result other) {
+    public int compareTo(getIntermediateOutputs_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -98051,7 +99664,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentOutputs_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getIntermediateOutputs_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -98126,15 +99739,15 @@ public class Airavata {
       }
     }
 
-    private static class getExperimentOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentOutputs_resultStandardScheme getScheme() {
-        return new getExperimentOutputs_resultStandardScheme();
+    private static class getIntermediateOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getIntermediateOutputs_resultStandardScheme getScheme() {
+        return new getIntermediateOutputs_resultStandardScheme();
       }
     }
 
-    private static class getExperimentOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentOutputs_result> {
+    private static class getIntermediateOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getIntermediateOutputs_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -98147,14 +99760,14 @@ public class Airavata {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list120 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list120.size);
-                  org.apache.airavata.model.application.io.OutputDataObjectType _elem121;
-                  for (int _i122 = 0; _i122 < _list120.size; ++_i122)
+                  org.apache.thrift.protocol.TList _list128 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list128.size);
+                  org.apache.airavata.model.application.io.OutputDataObjectType _elem129;
+                  for (int _i130 = 0; _i130 < _list128.size; ++_i130)
                   {
-                    _elem121 = new org.apache.airavata.model.application.io.OutputDataObjectType();
-                    _elem121.read(iprot);
-                    struct.success.add(_elem121);
+                    _elem129 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                    _elem129.read(iprot);
+                    struct.success.add(_elem129);
                   }
                   iprot.readListEnd();
                 }
@@ -98219,7 +99832,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -98227,9 +99840,9 @@ public class Airavata {
           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.application.io.OutputDataObjectType _iter123 : struct.success)
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter131 : struct.success)
             {
-              _iter123.write(oprot);
+              _iter131.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -98266,16 +99879,16 @@ public class Airavata {
 
     }
 
-    private static class getExperimentOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getExperimentOutputs_resultTupleScheme getScheme() {
-        return new getExperimentOutputs_resultTupleScheme();
+    private static class getIntermediateOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getIntermediateOutputs_resultTupleScheme getScheme() {
+        return new getIntermediateOutputs_resultTupleScheme();
       }
     }
 
-    private static class getExperimentOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentOutputs_result> {
+    private static class getIntermediateOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getIntermediateOutputs_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_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()) {
@@ -98300,9 +99913,9 @@ public class Airavata {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter124 : struct.success)
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter132 : struct.success)
             {
-              _iter124.write(oprot);
+              _iter132.write(oprot);
             }
           }
         }
@@ -98324,19 +99937,19 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_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(6);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list125 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list125.size);
-            org.apache.airavata.model.application.io.OutputDataObjectType _elem126;
-            for (int _i127 = 0; _i127 < _list125.size; ++_i127)
+            org.apache.thrift.protocol.TList _list133 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list133.size);
+            org.apache.airavata.model.application.io.OutputDataObjectType _elem134;
+            for (int _i135 = 0; _i135 < _list133.size; ++_i135)
             {
-              _elem126 = new org.apache.airavata.model.application.io.OutputDataObjectType();
-              _elem126.read(iprot);
-              struct.success.add(_elem126);
+              _elem134 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+              _elem134.read(iprot);
+              struct.success.add(_elem134);
             }
           }
           struct.setSuccessIsSet(true);
@@ -98374,14 +99987,14 @@ public class Airavata {
     }
   }
 
-  public static class getIntermediateOutputs_args implements org.apache.thrift.TBase<getIntermediateOutputs_args, getIntermediateOutputs_args._Fields>, java.io.Serializable, Cloneable, Comparable<getIntermediateOutputs_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIntermediateOutputs_args");
+  public static class getJobStatuses_args implements org.apache.thrift.TBase<getJobStatuses_args, getJobStatuses_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJobStatuses_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobStatuses_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getIntermediateOutputs_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getIntermediateOutputs_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobStatuses_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobStatuses_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String airavataExperimentId; // required
@@ -98456,13 +100069,13 @@ public class Airavata {
       tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", 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(getIntermediateOutputs_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobStatuses_args.class, metaDataMap);
     }
 
-    public getIntermediateOutputs_args() {
+    public getJobStatuses_args() {
     }
 
-    public getIntermediateOutputs_args(
+    public getJobStatuses_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
       java.lang.String airavataExperimentId)
     {
@@ -98474,7 +100087,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getIntermediateOutputs_args(getIntermediateOutputs_args other) {
+    public getJobStatuses_args(getJobStatuses_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
@@ -98483,8 +100096,8 @@ public class Airavata {
       }
     }
 
-    public getIntermediateOutputs_args deepCopy() {
-      return new getIntermediateOutputs_args(this);
+    public getJobStatuses_args deepCopy() {
+      return new getJobStatuses_args(this);
     }
 
     @Override
@@ -98497,7 +100110,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public getIntermediateOutputs_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getJobStatuses_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -98521,7 +100134,7 @@ public class Airavata {
       return this.airavataExperimentId;
     }
 
-    public getIntermediateOutputs_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+    public getJobStatuses_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
       this.airavataExperimentId = airavataExperimentId;
       return this;
     }
@@ -98593,12 +100206,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getIntermediateOutputs_args)
-        return this.equals((getIntermediateOutputs_args)that);
+      if (that instanceof getJobStatuses_args)
+        return this.equals((getJobStatuses_args)that);
       return false;
     }
 
-    public boolean equals(getIntermediateOutputs_args that) {
+    public boolean equals(getJobStatuses_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -98641,7 +100254,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getIntermediateOutputs_args other) {
+    public int compareTo(getJobStatuses_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -98685,7 +100298,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getIntermediateOutputs_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobStatuses_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -98737,15 +100350,15 @@ public class Airavata {
       }
     }
 
-    private static class getIntermediateOutputs_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getIntermediateOutputs_argsStandardScheme getScheme() {
-        return new getIntermediateOutputs_argsStandardScheme();
+    private static class getJobStatuses_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobStatuses_argsStandardScheme getScheme() {
+        return new getJobStatuses_argsStandardScheme();
       }
     }
 
-    private static class getIntermediateOutputs_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getIntermediateOutputs_args> {
+    private static class getJobStatuses_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobStatuses_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobStatuses_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -98783,7 +100396,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobStatuses_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -98803,23 +100416,23 @@ public class Airavata {
 
     }
 
-    private static class getIntermediateOutputs_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getIntermediateOutputs_argsTupleScheme getScheme() {
-        return new getIntermediateOutputs_argsTupleScheme();
+    private static class getJobStatuses_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobStatuses_argsTupleScheme getScheme() {
+        return new getJobStatuses_argsTupleScheme();
       }
     }
 
-    private static class getIntermediateOutputs_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getIntermediateOutputs_args> {
+    private static class getJobStatuses_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobStatuses_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
@@ -98834,20 +100447,20 @@ public class Airavata {
     }
   }
 
-  public static class getIntermediateOutputs_result implements org.apache.thrift.TBase<getIntermediateOutputs_result, getIntermediateOutputs_result._Fields>, java.io.Serializable, Cloneable, Comparable<getIntermediateOutputs_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getIntermediateOutputs_result");
+  public static class getJobStatuses_result implements org.apache.thrift.TBase<getJobStatuses_result, getJobStatuses_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJobStatuses_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobStatuses_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.MAP, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getIntermediateOutputs_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getIntermediateOutputs_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobStatuses_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobStatuses_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success; // required
+    public java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -98932,8 +100545,9 @@ public class Airavata {
     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.application.io.OutputDataObjectType.class))));
+          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -98945,14 +100559,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getIntermediateOutputs_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobStatuses_result.class, metaDataMap);
     }
 
-    public getIntermediateOutputs_result() {
+    public getJobStatuses_result() {
     }
 
-    public getIntermediateOutputs_result(
-      java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success,
+    public getJobStatuses_result(
+      java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -98971,11 +100585,19 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getIntermediateOutputs_result(getIntermediateOutputs_result other) {
+    public getJobStatuses_result(getJobStatuses_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.success.size());
-        for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+        java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> __this__success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(other.success.size());
+        for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> other_element : other.success.entrySet()) {
+
+          java.lang.String other_element_key = other_element.getKey();
+          org.apache.airavata.model.status.JobStatus other_element_value = other_element.getValue();
+
+          java.lang.String __this__success_copy_key = other_element_key;
+
+          org.apache.airavata.model.status.JobStatus __this__success_copy_value = new org.apache.airavata.model.status.JobStatus(other_element_value);
+
+          __this__success.put(__this__success_copy_key, __this__success_copy_value);
         }
         this.success = __this__success;
       }
@@ -98996,8 +100618,8 @@ public class Airavata {
       }
     }
 
-    public getIntermediateOutputs_result deepCopy() {
-      return new getIntermediateOutputs_result(this);
+    public getJobStatuses_result deepCopy() {
+      return new getJobStatuses_result(this);
     }
 
     @Override
@@ -99014,22 +100636,18 @@ public class Airavata {
       return (this.success == null) ? 0 : this.success.size();
     }
 
-    public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    public void putToSuccess(java.lang.String key, org.apache.airavata.model.status.JobStatus val) {
       if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+        this.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>();
       }
-      this.success.add(elem);
+      this.success.put(key, val);
     }
 
-    public java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> getSuccess() {
+    public java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> getSuccess() {
       return this.success;
     }
 
-    public getIntermediateOutputs_result setSuccess(java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType> success) {
+    public getJobStatuses_result setSuccess(java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success) {
       this.success = success;
       return this;
     }
@@ -99053,7 +100671,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getIntermediateOutputs_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getJobStatuses_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -99077,7 +100695,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public getIntermediateOutputs_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public getJobStatuses_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -99101,7 +100719,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getIntermediateOutputs_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getJobStatuses_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -99125,7 +100743,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getIntermediateOutputs_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getJobStatuses_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -99149,7 +100767,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getIntermediateOutputs_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getJobStatuses_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -99175,7 +100793,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+          setSuccess((java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>)value);
         }
         break;
 
@@ -99273,12 +100891,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getIntermediateOutputs_result)
-        return this.equals((getIntermediateOutputs_result)that);
+      if (that instanceof getJobStatuses_result)
+        return this.equals((getJobStatuses_result)that);
       return false;
     }
 
-    public boolean equals(getIntermediateOutputs_result that) {
+    public boolean equals(getJobStatuses_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -99373,7 +100991,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getIntermediateOutputs_result other) {
+    public int compareTo(getJobStatuses_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -99457,7 +101075,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getIntermediateOutputs_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobStatuses_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -99532,15 +101150,15 @@ public class Airavata {
       }
     }
 
-    private static class getIntermediateOutputs_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getIntermediateOutputs_resultStandardScheme getScheme() {
-        return new getIntermediateOutputs_resultStandardScheme();
+    private static class getJobStatuses_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobStatuses_resultStandardScheme getScheme() {
+        return new getJobStatuses_resultStandardScheme();
       }
     }
 
-    private static class getIntermediateOutputs_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getIntermediateOutputs_result> {
+    private static class getJobStatuses_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobStatuses_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobStatuses_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -99551,18 +101169,20 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                 {
-                  org.apache.thrift.protocol.TList _list128 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list128.size);
-                  org.apache.airavata.model.application.io.OutputDataObjectType _elem129;
-                  for (int _i130 = 0; _i130 < _list128.size; ++_i130)
+                  org.apache.thrift.protocol.TMap _map136 = iprot.readMapBegin();
+                  struct.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(2*_map136.size);
+                  java.lang.String _key137;
+                  org.apache.airavata.model.status.JobStatus _val138;
+                  for (int _i139 = 0; _i139 < _map136.size; ++_i139)
                   {
-                    _elem129 = new org.apache.airavata.model.application.io.OutputDataObjectType();
-                    _elem129.read(iprot);
-                    struct.success.add(_elem129);
+                    _key137 = iprot.readString();
+                    _val138 = new org.apache.airavata.model.status.JobStatus();
+                    _val138.read(iprot);
+                    struct.success.put(_key137, _val138);
                   }
-                  iprot.readListEnd();
+                  iprot.readMapEnd();
                 }
                 struct.setSuccessIsSet(true);
               } else { 
@@ -99625,19 +101245,20 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobStatuses_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.application.io.OutputDataObjectType _iter131 : struct.success)
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> _iter140 : struct.success.entrySet())
             {
-              _iter131.write(oprot);
+              oprot.writeString(_iter140.getKey());
+              _iter140.getValue().write(oprot);
             }
-            oprot.writeListEnd();
+            oprot.writeMapEnd();
           }
           oprot.writeFieldEnd();
         }
@@ -99672,16 +101293,16 @@ public class Airavata {
 
     }
 
-    private static class getIntermediateOutputs_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getIntermediateOutputs_resultTupleScheme getScheme() {
-        return new getIntermediateOutputs_resultTupleScheme();
+    private static class getJobStatuses_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobStatuses_resultTupleScheme getScheme() {
+        return new getJobStatuses_resultTupleScheme();
       }
     }
 
-    private static class getIntermediateOutputs_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getIntermediateOutputs_result> {
+    private static class getJobStatuses_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobStatuses_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_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()) {
@@ -99706,9 +101327,10 @@ public class Airavata {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter132 : struct.success)
+            for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> _iter141 : struct.success.entrySet())
             {
-              _iter132.write(oprot);
+              oprot.writeString(_iter141.getKey());
+              _iter141.getValue().write(oprot);
             }
           }
         }
@@ -99730,19 +101352,21 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getIntermediateOutputs_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_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(6);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TList _list133 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list133.size);
-            org.apache.airavata.model.application.io.OutputDataObjectType _elem134;
-            for (int _i135 = 0; _i135 < _list133.size; ++_i135)
+            org.apache.thrift.protocol.TMap _map142 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(2*_map142.size);
+            java.lang.String _key143;
+            org.apache.airavata.model.status.JobStatus _val144;
+            for (int _i145 = 0; _i145 < _map142.size; ++_i145)
             {
-              _elem134 = new org.apache.airavata.model.application.io.OutputDataObjectType();
-              _elem134.read(iprot);
-              struct.success.add(_elem134);
+              _key143 = iprot.readString();
+              _val144 = new org.apache.airavata.model.status.JobStatus();
+              _val144.read(iprot);
+              struct.success.put(_key143, _val144);
             }
           }
           struct.setSuccessIsSet(true);
@@ -99780,14 +101404,14 @@ public class Airavata {
     }
   }
 
-  public static class getJobStatuses_args implements org.apache.thrift.TBase<getJobStatuses_args, getJobStatuses_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJobStatuses_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobStatuses_args");
+  public static class getJobDetails_args implements org.apache.thrift.TBase<getJobDetails_args, getJobDetails_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJobDetails_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobDetails_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobStatuses_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobStatuses_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobDetails_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobDetails_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String airavataExperimentId; // required
@@ -99862,13 +101486,13 @@ public class Airavata {
       tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", 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(getJobStatuses_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobDetails_args.class, metaDataMap);
     }
 
-    public getJobStatuses_args() {
+    public getJobDetails_args() {
     }
 
-    public getJobStatuses_args(
+    public getJobDetails_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
       java.lang.String airavataExperimentId)
     {
@@ -99880,7 +101504,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobStatuses_args(getJobStatuses_args other) {
+    public getJobDetails_args(getJobDetails_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
@@ -99889,8 +101513,8 @@ public class Airavata {
       }
     }
 
-    public getJobStatuses_args deepCopy() {
-      return new getJobStatuses_args(this);
+    public getJobDetails_args deepCopy() {
+      return new getJobDetails_args(this);
     }
 
     @Override
@@ -99903,7 +101527,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public getJobStatuses_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getJobDetails_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -99927,7 +101551,7 @@ public class Airavata {
       return this.airavataExperimentId;
     }
 
-    public getJobStatuses_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+    public getJobDetails_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
       this.airavataExperimentId = airavataExperimentId;
       return this;
     }
@@ -99999,12 +101623,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobStatuses_args)
-        return this.equals((getJobStatuses_args)that);
+      if (that instanceof getJobDetails_args)
+        return this.equals((getJobDetails_args)that);
       return false;
     }
 
-    public boolean equals(getJobStatuses_args that) {
+    public boolean equals(getJobDetails_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -100047,7 +101671,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getJobStatuses_args other) {
+    public int compareTo(getJobDetails_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -100091,7 +101715,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobStatuses_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobDetails_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -100143,15 +101767,15 @@ public class Airavata {
       }
     }
 
-    private static class getJobStatuses_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobStatuses_argsStandardScheme getScheme() {
-        return new getJobStatuses_argsStandardScheme();
+    private static class getJobDetails_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobDetails_argsStandardScheme getScheme() {
+        return new getJobDetails_argsStandardScheme();
       }
     }
 
-    private static class getJobStatuses_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobStatuses_args> {
+    private static class getJobDetails_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobDetails_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobStatuses_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobDetails_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -100189,7 +101813,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobStatuses_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobDetails_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -100209,23 +101833,23 @@ public class Airavata {
 
     }
 
-    private static class getJobStatuses_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobStatuses_argsTupleScheme getScheme() {
-        return new getJobStatuses_argsTupleScheme();
+    private static class getJobDetails_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobDetails_argsTupleScheme getScheme() {
+        return new getJobDetails_argsTupleScheme();
       }
     }
 
-    private static class getJobStatuses_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobStatuses_args> {
+    private static class getJobDetails_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobDetails_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getJobDetails_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.airavataExperimentId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getJobDetails_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
@@ -100240,20 +101864,20 @@ public class Airavata {
     }
   }
 
-  public static class getJobStatuses_result implements org.apache.thrift.TBase<getJobStatuses_result, getJobStatuses_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJobStatuses_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobStatuses_result");
+  public static class getJobDetails_result implements org.apache.thrift.TBase<getJobDetails_result, getJobDetails_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJobDetails_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobDetails_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.MAP, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobStatuses_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobStatuses_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobDetails_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobDetails_resultTupleSchemeFactory();
 
-    public java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success; // required
+    public java.util.List<org.apache.airavata.model.job.JobModel> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -100338,9 +101962,8 @@ public class Airavata {
     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.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class))));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -100352,14 +101975,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobStatuses_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobDetails_result.class, metaDataMap);
     }
 
-    public getJobStatuses_result() {
+    public getJobDetails_result() {
     }
 
-    public getJobStatuses_result(
-      java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success,
+    public getJobDetails_result(
+      java.util.List<org.apache.airavata.model.job.JobModel> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -100378,19 +102001,11 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobStatuses_result(getJobStatuses_result other) {
+    public getJobDetails_result(getJobDetails_result other) {
       if (other.isSetSuccess()) {
-        java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> __this__success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(other.success.size());
-        for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> other_element : other.success.entrySet()) {
-
-          java.lang.String other_element_key = other_element.getKey();
-          org.apache.airavata.model.status.JobStatus other_element_value = other_element.getValue();
-
-          java.lang.String __this__success_copy_key = other_element_key;
-
-          org.apache.airavata.model.status.JobStatus __this__success_copy_value = new org.apache.airavata.model.status.JobStatus(other_element_value);
-
-          __this__success.put(__this__success_copy_key, __this__success_copy_value);
+        java.util.List<org.apache.airavata.model.job.JobModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(other.success.size());
+        for (org.apache.airavata.model.job.JobModel other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.job.JobModel(other_element));
         }
         this.success = __this__success;
       }
@@ -100411,8 +102026,8 @@ public class Airavata {
       }
     }
 
-    public getJobStatuses_result deepCopy() {
-      return new getJobStatuses_result(this);
+    public getJobDetails_result deepCopy() {
+      return new getJobDetails_result(this);
     }
 
     @Override
@@ -100429,18 +102044,22 @@ public class Airavata {
       return (this.success == null) ? 0 : this.success.size();
     }
 
-    public void putToSuccess(java.lang.String key, org.apache.airavata.model.status.JobStatus val) {
+    public java.util.Iterator<org.apache.airavata.model.job.JobModel> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.job.JobModel elem) {
       if (this.success == null) {
-        this.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>();
+        this.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>();
       }
-      this.success.put(key, val);
+      this.success.add(elem);
     }
 
-    public java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> getSuccess() {
+    public java.util.List<org.apache.airavata.model.job.JobModel> getSuccess() {
       return this.success;
     }
 
-    public getJobStatuses_result setSuccess(java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus> success) {
+    public getJobDetails_result setSuccess(java.util.List<org.apache.airavata.model.job.JobModel> success) {
       this.success = success;
       return this;
     }
@@ -100464,7 +102083,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getJobStatuses_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getJobDetails_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -100488,7 +102107,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public getJobStatuses_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public getJobDetails_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -100512,7 +102131,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getJobStatuses_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getJobDetails_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -100536,7 +102155,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getJobStatuses_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getJobDetails_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -100560,7 +102179,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getJobStatuses_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getJobDetails_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -100586,7 +102205,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>)value);
+          setSuccess((java.util.List<org.apache.airavata.model.job.JobModel>)value);
         }
         break;
 
@@ -100684,12 +102303,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobStatuses_result)
-        return this.equals((getJobStatuses_result)that);
+      if (that instanceof getJobDetails_result)
+        return this.equals((getJobDetails_result)that);
       return false;
     }
 
-    public boolean equals(getJobStatuses_result that) {
+    public boolean equals(getJobDetails_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -100784,7 +102403,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getJobStatuses_result other) {
+    public int compareTo(getJobDetails_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -100868,7 +102487,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobStatuses_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobDetails_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -100943,15 +102562,15 @@ public class Airavata {
       }
     }
 
-    private static class getJobStatuses_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobStatuses_resultStandardScheme getScheme() {
-        return new getJobStatuses_resultStandardScheme();
+    private static class getJobDetails_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobDetails_resultStandardScheme getScheme() {
+        return new getJobDetails_resultStandardScheme();
       }
     }
 
-    private static class getJobStatuses_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobStatuses_result> {
+    private static class getJobDetails_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobDetails_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobStatuses_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobDetails_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -100962,20 +102581,18 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TMap _map136 = iprot.readMapBegin();
-                  struct.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(2*_map136.size);
-                  java.lang.String _key137;
-                  org.apache.airavata.model.status.JobStatus _val138;
-                  for (int _i139 = 0; _i139 < _map136.size; ++_i139)
+                  org.apache.thrift.protocol.TList _list146 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list146.size);
+                  org.apache.airavata.model.job.JobModel _elem147;
+                  for (int _i148 = 0; _i148 < _list146.size; ++_i148)
                   {
-                    _key137 = iprot.readString();
-                    _val138 = new org.apache.airavata.model.status.JobStatus();
-                    _val138.read(iprot);
-                    struct.success.put(_key137, _val138);
+                    _elem147 = new org.apache.airavata.model.job.JobModel();
+                    _elem147.read(iprot);
+                    struct.success.add(_elem147);
                   }
-                  iprot.readMapEnd();
+                  iprot.readListEnd();
                 }
                 struct.setSuccessIsSet(true);
               } else { 
@@ -101038,20 +102655,19 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobStatuses_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobDetails_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
-            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> _iter140 : struct.success.entrySet())
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.job.JobModel _iter149 : struct.success)
             {
-              oprot.writeString(_iter140.getKey());
-              _iter140.getValue().write(oprot);
+              _iter149.write(oprot);
             }
-            oprot.writeMapEnd();
+            oprot.writeListEnd();
           }
           oprot.writeFieldEnd();
         }
@@ -101086,16 +102702,16 @@ public class Airavata {
 
     }
 
-    private static class getJobStatuses_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobStatuses_resultTupleScheme getScheme() {
-        return new getJobStatuses_resultTupleScheme();
+    private static class getJobDetails_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getJobDetails_resultTupleScheme getScheme() {
+        return new getJobDetails_resultTupleScheme();
       }
     }
 
-    private static class getJobStatuses_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobStatuses_result> {
+    private static class getJobDetails_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobDetails_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getJobDetails_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()) {
@@ -101120,10 +102736,9 @@ public class Airavata {
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (java.util.Map.Entry<java.lang.String, org.apache.airavata.model.status.JobStatus> _iter141 : struct.success.entrySet())
+            for (org.apache.airavata.model.job.JobModel _iter150 : struct.success)
             {
-              oprot.writeString(_iter141.getKey());
-              _iter141.getValue().write(oprot);
+              _iter150.write(oprot);
             }
           }
         }
@@ -101145,21 +102760,19 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobStatuses_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getJobDetails_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(6);
         if (incoming.get(0)) {
           {
-            org.apache.thrift.protocol.TMap _map142 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.HashMap<java.lang.String,org.apache.airavata.model.status.JobStatus>(2*_map142.size);
-            java.lang.String _key143;
-            org.apache.airavata.model.status.JobStatus _val144;
-            for (int _i145 = 0; _i145 < _map142.size; ++_i145)
+            org.apache.thrift.protocol.TList _list151 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list151.size);
+            org.apache.airavata.model.job.JobModel _elem152;
+            for (int _i153 = 0; _i153 < _list151.size; ++_i153)
             {
-              _key143 = iprot.readString();
-              _val144 = new org.apache.airavata.model.status.JobStatus();
-              _val144.read(iprot);
-              struct.success.put(_key143, _val144);
+              _elem152 = new org.apache.airavata.model.job.JobModel();
+              _elem152.read(iprot);
+              struct.success.add(_elem152);
             }
           }
           struct.setSuccessIsSet(true);
@@ -101197,22 +102810,28 @@ public class Airavata {
     }
   }
 
-  public static class getJobDetails_args implements org.apache.thrift.TBase<getJobDetails_args, getJobDetails_args._Fields>, java.io.Serializable, Cloneable, Comparable<getJobDetails_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobDetails_args");
+  public static class cloneExperiment_args implements org.apache.thrift.TBase<cloneExperiment_args, cloneExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperiment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField EXISTING_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("existingExperimentID", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentName", org.apache.thrift.protocol.TType.STRING, (short)3);
+    private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentProjectId", org.apache.thrift.protocol.TType.STRING, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobDetails_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobDetails_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperiment_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperiment_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String airavataExperimentId; // required
+    public java.lang.String existingExperimentID; // required
+    public java.lang.String newExperimentName; // required
+    public java.lang.String newExperimentProjectId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId");
+      EXISTING_EXPERIMENT_ID((short)2, "existingExperimentID"),
+      NEW_EXPERIMENT_NAME((short)3, "newExperimentName"),
+      NEW_EXPERIMENT_PROJECT_ID((short)4, "newExperimentProjectId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -101229,8 +102848,12 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // AIRAVATA_EXPERIMENT_ID
-            return AIRAVATA_EXPERIMENT_ID;
+          case 2: // EXISTING_EXPERIMENT_ID
+            return EXISTING_EXPERIMENT_ID;
+          case 3: // NEW_EXPERIMENT_NAME
+            return NEW_EXPERIMENT_NAME;
+          case 4: // NEW_EXPERIMENT_PROJECT_ID
+            return NEW_EXPERIMENT_PROJECT_ID;
           default:
             return null;
         }
@@ -101276,51 +102899,67 @@ public class Airavata {
       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.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.EXISTING_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("existingExperimentID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.NEW_EXPERIMENT_NAME, new org.apache.thrift.meta_data.FieldMetaData("newExperimentName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.NEW_EXPERIMENT_PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("newExperimentProjectId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobDetails_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_args.class, metaDataMap);
     }
 
-    public getJobDetails_args() {
+    public cloneExperiment_args() {
     }
 
-    public getJobDetails_args(
+    public cloneExperiment_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String airavataExperimentId)
+      java.lang.String existingExperimentID,
+      java.lang.String newExperimentName,
+      java.lang.String newExperimentProjectId)
     {
       this();
       this.authzToken = authzToken;
-      this.airavataExperimentId = airavataExperimentId;
+      this.existingExperimentID = existingExperimentID;
+      this.newExperimentName = newExperimentName;
+      this.newExperimentProjectId = newExperimentProjectId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobDetails_args(getJobDetails_args other) {
+    public cloneExperiment_args(cloneExperiment_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetAiravataExperimentId()) {
-        this.airavataExperimentId = other.airavataExperimentId;
+      if (other.isSetExistingExperimentID()) {
+        this.existingExperimentID = other.existingExperimentID;
+      }
+      if (other.isSetNewExperimentName()) {
+        this.newExperimentName = other.newExperimentName;
+      }
+      if (other.isSetNewExperimentProjectId()) {
+        this.newExperimentProjectId = other.newExperimentProjectId;
       }
     }
 
-    public getJobDetails_args deepCopy() {
-      return new getJobDetails_args(this);
+    public cloneExperiment_args deepCopy() {
+      return new cloneExperiment_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.airavataExperimentId = null;
+      this.existingExperimentID = null;
+      this.newExperimentName = null;
+      this.newExperimentProjectId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public getJobDetails_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public cloneExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -101340,27 +102979,75 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getAiravataExperimentId() {
-      return this.airavataExperimentId;
+    public java.lang.String getExistingExperimentID() {
+      return this.existingExperimentID;
     }
 
-    public getJobDetails_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
-      this.airavataExperimentId = airavataExperimentId;
+    public cloneExperiment_args setExistingExperimentID(java.lang.String existingExperimentID) {
+      this.existingExperimentID = existingExperimentID;
       return this;
     }
 
-    public void unsetAiravataExperimentId() {
-      this.airavataExperimentId = null;
+    public void unsetExistingExperimentID() {
+      this.existingExperimentID = null;
     }
 
-    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
-    public boolean isSetAiravataExperimentId() {
-      return this.airavataExperimentId != null;
+    /** Returns true if field existingExperimentID is set (has been assigned a value) and false otherwise */
+    public boolean isSetExistingExperimentID() {
+      return this.existingExperimentID != null;
     }
 
-    public void setAiravataExperimentIdIsSet(boolean value) {
+    public void setExistingExperimentIDIsSet(boolean value) {
       if (!value) {
-        this.airavataExperimentId = null;
+        this.existingExperimentID = null;
+      }
+    }
+
+    public java.lang.String getNewExperimentName() {
+      return this.newExperimentName;
+    }
+
+    public cloneExperiment_args setNewExperimentName(java.lang.String newExperimentName) {
+      this.newExperimentName = newExperimentName;
+      return this;
+    }
+
+    public void unsetNewExperimentName() {
+      this.newExperimentName = null;
+    }
+
+    /** Returns true if field newExperimentName is set (has been assigned a value) and false otherwise */
+    public boolean isSetNewExperimentName() {
+      return this.newExperimentName != null;
+    }
+
+    public void setNewExperimentNameIsSet(boolean value) {
+      if (!value) {
+        this.newExperimentName = null;
+      }
+    }
+
+    public java.lang.String getNewExperimentProjectId() {
+      return this.newExperimentProjectId;
+    }
+
+    public cloneExperiment_args setNewExperimentProjectId(java.lang.String newExperimentProjectId) {
+      this.newExperimentProjectId = newExperimentProjectId;
+      return this;
+    }
+
+    public void unsetNewExperimentProjectId() {
+      this.newExperimentProjectId = null;
+    }
+
+    /** Returns true if field newExperimentProjectId is set (has been assigned a value) and false otherwise */
+    public boolean isSetNewExperimentProjectId() {
+      return this.newExperimentProjectId != null;
+    }
+
+    public void setNewExperimentProjectIdIsSet(boolean value) {
+      if (!value) {
+        this.newExperimentProjectId = null;
       }
     }
 
@@ -101374,11 +103061,27 @@ public class Airavata {
         }
         break;
 
-      case AIRAVATA_EXPERIMENT_ID:
+      case EXISTING_EXPERIMENT_ID:
         if (value == null) {
-          unsetAiravataExperimentId();
+          unsetExistingExperimentID();
         } else {
-          setAiravataExperimentId((java.lang.String)value);
+          setExistingExperimentID((java.lang.String)value);
+        }
+        break;
+
+      case NEW_EXPERIMENT_NAME:
+        if (value == null) {
+          unsetNewExperimentName();
+        } else {
+          setNewExperimentName((java.lang.String)value);
+        }
+        break;
+
+      case NEW_EXPERIMENT_PROJECT_ID:
+        if (value == null) {
+          unsetNewExperimentProjectId();
+        } else {
+          setNewExperimentProjectId((java.lang.String)value);
         }
         break;
 
@@ -101390,8 +103093,14 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case AIRAVATA_EXPERIMENT_ID:
-        return getAiravataExperimentId();
+      case EXISTING_EXPERIMENT_ID:
+        return getExistingExperimentID();
+
+      case NEW_EXPERIMENT_NAME:
+        return getNewExperimentName();
+
+      case NEW_EXPERIMENT_PROJECT_ID:
+        return getNewExperimentProjectId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -101406,8 +103115,12 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case AIRAVATA_EXPERIMENT_ID:
-        return isSetAiravataExperimentId();
+      case EXISTING_EXPERIMENT_ID:
+        return isSetExistingExperimentID();
+      case NEW_EXPERIMENT_NAME:
+        return isSetNewExperimentName();
+      case NEW_EXPERIMENT_PROJECT_ID:
+        return isSetNewExperimentProjectId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -101416,12 +103129,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobDetails_args)
-        return this.equals((getJobDetails_args)that);
+      if (that instanceof cloneExperiment_args)
+        return this.equals((cloneExperiment_args)that);
       return false;
     }
 
-    public boolean equals(getJobDetails_args that) {
+    public boolean equals(cloneExperiment_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -101436,12 +103149,30 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
-      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
-      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
-        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
+      boolean this_present_existingExperimentID = true && this.isSetExistingExperimentID();
+      boolean that_present_existingExperimentID = true && that.isSetExistingExperimentID();
+      if (this_present_existingExperimentID || that_present_existingExperimentID) {
+        if (!(this_present_existingExperimentID && that_present_existingExperimentID))
           return false;
-        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
+        if (!this.existingExperimentID.equals(that.existingExperimentID))
+          return false;
+      }
+
+      boolean this_present_newExperimentName = true && this.isSetNewExperimentName();
+      boolean that_present_newExperimentName = true && that.isSetNewExperimentName();
+      if (this_present_newExperimentName || that_present_newExperimentName) {
+        if (!(this_present_newExperimentName && that_present_newExperimentName))
+          return false;
+        if (!this.newExperimentName.equals(that.newExperimentName))
+          return false;
+      }
+
+      boolean this_present_newExperimentProjectId = true && this.isSetNewExperimentProjectId();
+      boolean that_present_newExperimentProjectId = true && that.isSetNewExperimentProjectId();
+      if (this_present_newExperimentProjectId || that_present_newExperimentProjectId) {
+        if (!(this_present_newExperimentProjectId && that_present_newExperimentProjectId))
+          return false;
+        if (!this.newExperimentProjectId.equals(that.newExperimentProjectId))
           return false;
       }
 
@@ -101456,15 +103187,23 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
-      if (isSetAiravataExperimentId())
-        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetExistingExperimentID()) ? 131071 : 524287);
+      if (isSetExistingExperimentID())
+        hashCode = hashCode * 8191 + existingExperimentID.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetNewExperimentName()) ? 131071 : 524287);
+      if (isSetNewExperimentName())
+        hashCode = hashCode * 8191 + newExperimentName.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetNewExperimentProjectId()) ? 131071 : 524287);
+      if (isSetNewExperimentProjectId())
+        hashCode = hashCode * 8191 + newExperimentProjectId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getJobDetails_args other) {
+    public int compareTo(cloneExperiment_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -101481,12 +103220,32 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
+      lastComparison = java.lang.Boolean.valueOf(isSetExistingExperimentID()).compareTo(other.isSetExistingExperimentID());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetAiravataExperimentId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
+      if (isSetExistingExperimentID()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.existingExperimentID, other.existingExperimentID);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetNewExperimentName()).compareTo(other.isSetNewExperimentName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetNewExperimentName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newExperimentName, other.newExperimentName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetNewExperimentProjectId()).compareTo(other.isSetNewExperimentProjectId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetNewExperimentProjectId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newExperimentProjectId, other.newExperimentProjectId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -101508,7 +103267,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobDetails_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperiment_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -101519,11 +103278,27 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("airavataExperimentId:");
-      if (this.airavataExperimentId == null) {
+      sb.append("existingExperimentID:");
+      if (this.existingExperimentID == null) {
         sb.append("null");
       } else {
-        sb.append(this.airavataExperimentId);
+        sb.append(this.existingExperimentID);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("newExperimentName:");
+      if (this.newExperimentName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.newExperimentName);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("newExperimentProjectId:");
+      if (this.newExperimentProjectId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.newExperimentProjectId);
       }
       first = false;
       sb.append(")");
@@ -101535,9 +103310,6 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
-      if (airavataExperimentId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
-      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -101560,15 +103332,15 @@ public class Airavata {
       }
     }
 
-    private static class getJobDetails_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobDetails_argsStandardScheme getScheme() {
-        return new getJobDetails_argsStandardScheme();
+    private static class cloneExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperiment_argsStandardScheme getScheme() {
+        return new cloneExperiment_argsStandardScheme();
       }
     }
 
-    private static class getJobDetails_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobDetails_args> {
+    private static class cloneExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperiment_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobDetails_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -101587,10 +103359,26 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // AIRAVATA_EXPERIMENT_ID
+            case 2: // EXISTING_EXPERIMENT_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.airavataExperimentId = iprot.readString();
-                struct.setAiravataExperimentIdIsSet(true);
+                struct.existingExperimentID = iprot.readString();
+                struct.setExistingExperimentIDIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // NEW_EXPERIMENT_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.newExperimentName = iprot.readString();
+                struct.setNewExperimentNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // NEW_EXPERIMENT_PROJECT_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.newExperimentProjectId = iprot.readString();
+                struct.setNewExperimentProjectIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -101606,7 +103394,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobDetails_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperiment_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -101615,9 +103403,19 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.airavataExperimentId != null) {
-          oprot.writeFieldBegin(AIRAVATA_EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.airavataExperimentId);
+        if (struct.existingExperimentID != null) {
+          oprot.writeFieldBegin(EXISTING_EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.existingExperimentID);
+          oprot.writeFieldEnd();
+        }
+        if (struct.newExperimentName != null) {
+          oprot.writeFieldBegin(NEW_EXPERIMENT_NAME_FIELD_DESC);
+          oprot.writeString(struct.newExperimentName);
+          oprot.writeFieldEnd();
+        }
+        if (struct.newExperimentProjectId != null) {
+          oprot.writeFieldBegin(NEW_EXPERIMENT_PROJECT_ID_FIELD_DESC);
+          oprot.writeString(struct.newExperimentProjectId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -101626,29 +103424,59 @@ public class Airavata {
 
     }
 
-    private static class getJobDetails_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobDetails_argsTupleScheme getScheme() {
-        return new getJobDetails_argsTupleScheme();
+    private static class cloneExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperiment_argsTupleScheme getScheme() {
+        return new cloneExperiment_argsTupleScheme();
       }
     }
 
-    private static class getJobDetails_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobDetails_args> {
+    private static class cloneExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperiment_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobDetails_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        oprot.writeString(struct.airavataExperimentId);
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetExistingExperimentID()) {
+          optionals.set(0);
+        }
+        if (struct.isSetNewExperimentName()) {
+          optionals.set(1);
+        }
+        if (struct.isSetNewExperimentProjectId()) {
+          optionals.set(2);
+        }
+        oprot.writeBitSet(optionals, 3);
+        if (struct.isSetExistingExperimentID()) {
+          oprot.writeString(struct.existingExperimentID);
+        }
+        if (struct.isSetNewExperimentName()) {
+          oprot.writeString(struct.newExperimentName);
+        }
+        if (struct.isSetNewExperimentProjectId()) {
+          oprot.writeString(struct.newExperimentProjectId);
+        }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobDetails_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.airavataExperimentId = iprot.readString();
-        struct.setAiravataExperimentIdIsSet(true);
+        java.util.BitSet incoming = iprot.readBitSet(3);
+        if (incoming.get(0)) {
+          struct.existingExperimentID = iprot.readString();
+          struct.setExistingExperimentIDIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.newExperimentName = iprot.readString();
+          struct.setNewExperimentNameIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.newExperimentProjectId = iprot.readString();
+          struct.setNewExperimentProjectIdIsSet(true);
+        }
       }
     }
 
@@ -101657,25 +103485,27 @@ public class Airavata {
     }
   }
 
-  public static class getJobDetails_result implements org.apache.thrift.TBase<getJobDetails_result, getJobDetails_result._Fields>, java.io.Serializable, Cloneable, Comparable<getJobDetails_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getJobDetails_result");
+  public static class cloneExperiment_result implements org.apache.thrift.TBase<cloneExperiment_result, cloneExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+    private static final org.apache.thrift.protocol.TField PNFE_FIELD_DESC = new org.apache.thrift.protocol.TField("pnfe", org.apache.thrift.protocol.TType.STRUCT, (short)6);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getJobDetails_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getJobDetails_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperiment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperiment_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.job.JobModel> success; // required
+    public java.lang.String success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
     public org.apache.airavata.model.error.AuthorizationException ae; // required
+    public org.apache.airavata.model.error.ProjectNotFoundException pnfe; // 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 {
@@ -101684,7 +103514,8 @@ public class Airavata {
       ENF((short)2, "enf"),
       ACE((short)3, "ace"),
       ASE((short)4, "ase"),
-      AE((short)5, "ae");
+      AE((short)5, "ae"),
+      PNFE((short)6, "pnfe");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -101711,6 +103542,8 @@ public class Airavata {
             return ASE;
           case 5: // AE
             return AE;
+          case 6: // PNFE
+            return PNFE;
           default:
             return null;
         }
@@ -101755,8 +103588,7 @@ public class Airavata {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class))));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -101767,20 +103599,23 @@ public class Airavata {
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataSystemException.class)));
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
+      tmpMap.put(_Fields.PNFE, new org.apache.thrift.meta_data.FieldMetaData("pnfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ProjectNotFoundException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getJobDetails_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_result.class, metaDataMap);
     }
 
-    public getJobDetails_result() {
+    public cloneExperiment_result() {
     }
 
-    public getJobDetails_result(
-      java.util.List<org.apache.airavata.model.job.JobModel> success,
+    public cloneExperiment_result(
+      java.lang.String success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
-      org.apache.airavata.model.error.AuthorizationException ae)
+      org.apache.airavata.model.error.AuthorizationException ae,
+      org.apache.airavata.model.error.ProjectNotFoundException pnfe)
     {
       this();
       this.success = success;
@@ -101789,18 +103624,15 @@ public class Airavata {
       this.ace = ace;
       this.ase = ase;
       this.ae = ae;
+      this.pnfe = pnfe;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getJobDetails_result(getJobDetails_result other) {
+    public cloneExperiment_result(cloneExperiment_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.job.JobModel> __this__success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(other.success.size());
-        for (org.apache.airavata.model.job.JobModel other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.job.JobModel(other_element));
-        }
-        this.success = __this__success;
+        this.success = other.success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -101817,10 +103649,13 @@ public class Airavata {
       if (other.isSetAe()) {
         this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
       }
+      if (other.isSetPnfe()) {
+        this.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException(other.pnfe);
+      }
     }
 
-    public getJobDetails_result deepCopy() {
-      return new getJobDetails_result(this);
+    public cloneExperiment_result deepCopy() {
+      return new cloneExperiment_result(this);
     }
 
     @Override
@@ -101831,28 +103666,14 @@ public class Airavata {
       this.ace = null;
       this.ase = null;
       this.ae = null;
+      this.pnfe = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.job.JobModel> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.job.JobModel elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.job.JobModel> getSuccess() {
+    public java.lang.String getSuccess() {
       return this.success;
     }
 
-    public getJobDetails_result setSuccess(java.util.List<org.apache.airavata.model.job.JobModel> success) {
+    public cloneExperiment_result setSuccess(java.lang.String success) {
       this.success = success;
       return this;
     }
@@ -101876,7 +103697,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getJobDetails_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public cloneExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -101900,7 +103721,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public getJobDetails_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public cloneExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -101924,7 +103745,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getJobDetails_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public cloneExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -101948,7 +103769,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getJobDetails_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public cloneExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -101972,7 +103793,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getJobDetails_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public cloneExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -101992,13 +103813,37 @@ public class Airavata {
       }
     }
 
+    public org.apache.airavata.model.error.ProjectNotFoundException getPnfe() {
+      return this.pnfe;
+    }
+
+    public cloneExperiment_result setPnfe(org.apache.airavata.model.error.ProjectNotFoundException pnfe) {
+      this.pnfe = pnfe;
+      return this;
+    }
+
+    public void unsetPnfe() {
+      this.pnfe = null;
+    }
+
+    /** Returns true if field pnfe is set (has been assigned a value) and false otherwise */
+    public boolean isSetPnfe() {
+      return this.pnfe != null;
+    }
+
+    public void setPnfeIsSet(boolean value) {
+      if (!value) {
+        this.pnfe = 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.job.JobModel>)value);
+          setSuccess((java.lang.String)value);
         }
         break;
 
@@ -102042,6 +103887,14 @@ public class Airavata {
         }
         break;
 
+      case PNFE:
+        if (value == null) {
+          unsetPnfe();
+        } else {
+          setPnfe((org.apache.airavata.model.error.ProjectNotFoundException)value);
+        }
+        break;
+
       }
     }
 
@@ -102065,6 +103918,9 @@ public class Airavata {
       case AE:
         return getAe();
 
+      case PNFE:
+        return getPnfe();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -102088,6 +103944,8 @@ public class Airavata {
         return isSetAse();
       case AE:
         return isSetAe();
+      case PNFE:
+        return isSetPnfe();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -102096,12 +103954,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getJobDetails_result)
-        return this.equals((getJobDetails_result)that);
+      if (that instanceof cloneExperiment_result)
+        return this.equals((cloneExperiment_result)that);
       return false;
     }
 
-    public boolean equals(getJobDetails_result that) {
+    public boolean equals(cloneExperiment_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -102161,6 +104019,15 @@ public class Airavata {
           return false;
       }
 
+      boolean this_present_pnfe = true && this.isSetPnfe();
+      boolean that_present_pnfe = true && that.isSetPnfe();
+      if (this_present_pnfe || that_present_pnfe) {
+        if (!(this_present_pnfe && that_present_pnfe))
+          return false;
+        if (!this.pnfe.equals(that.pnfe))
+          return false;
+      }
+
       return true;
     }
 
@@ -102192,11 +104059,15 @@ public class Airavata {
       if (isSetAe())
         hashCode = hashCode * 8191 + ae.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetPnfe()) ? 131071 : 524287);
+      if (isSetPnfe())
+        hashCode = hashCode * 8191 + pnfe.hashCode();
+
       return hashCode;
     }
 
     @Override
-    public int compareTo(getJobDetails_result other) {
+    public int compareTo(cloneExperiment_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -102263,6 +104134,16 @@ public class Airavata {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetPnfe()).compareTo(other.isSetPnfe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetPnfe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pnfe, other.pnfe);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -102280,7 +104161,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getJobDetails_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperiment_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -102330,6 +104211,14 @@ public class Airavata {
         sb.append(this.ae);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("pnfe:");
+      if (this.pnfe == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.pnfe);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -102355,15 +104244,15 @@ public class Airavata {
       }
     }
 
-    private static class getJobDetails_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobDetails_resultStandardScheme getScheme() {
-        return new getJobDetails_resultStandardScheme();
+    private static class cloneExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperiment_resultStandardScheme getScheme() {
+        return new cloneExperiment_resultStandardScheme();
       }
     }
 
-    private static class getJobDetails_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getJobDetails_result> {
+    private static class cloneExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperiment_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getJobDetails_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -102374,19 +104263,8 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list146 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list146.size);
-                  org.apache.airavata.model.job.JobModel _elem147;
-                  for (int _i148 = 0; _i148 < _list146.size; ++_i148)
-                  {
-                    _elem147 = new org.apache.airavata.model.job.JobModel();
-                    _elem147.read(iprot);
-                    struct.success.add(_elem147);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -102437,6 +104315,15 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 6: // PNFE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
+                struct.pnfe.read(iprot);
+                struct.setPnfeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -102448,20 +104335,13 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getJobDetails_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperiment_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.job.JobModel _iter149 : struct.success)
-            {
-              _iter149.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
+          oprot.writeString(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -102489,22 +104369,27 @@ public class Airavata {
           struct.ae.write(oprot);
           oprot.writeFieldEnd();
         }
+        if (struct.pnfe != null) {
+          oprot.writeFieldBegin(PNFE_FIELD_DESC);
+          struct.pnfe.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class getJobDetails_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getJobDetails_resultTupleScheme getScheme() {
-        return new getJobDetails_resultTupleScheme();
+    private static class cloneExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperiment_resultTupleScheme getScheme() {
+        return new cloneExperiment_resultTupleScheme();
       }
     }
 
-    private static class getJobDetails_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getJobDetails_result> {
+    private static class cloneExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperiment_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getJobDetails_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_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()) {
@@ -102525,15 +104410,12 @@ public class Airavata {
         if (struct.isSetAe()) {
           optionals.set(5);
         }
-        oprot.writeBitSet(optionals, 6);
+        if (struct.isSetPnfe()) {
+          optionals.set(6);
+        }
+        oprot.writeBitSet(optionals, 7);
         if (struct.isSetSuccess()) {
-          {
-            oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.job.JobModel _iter150 : struct.success)
-            {
-              _iter150.write(oprot);
-            }
-          }
+          oprot.writeString(struct.success);
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -102550,24 +104432,17 @@ public class Airavata {
         if (struct.isSetAe()) {
           struct.ae.write(oprot);
         }
+        if (struct.isSetPnfe()) {
+          struct.pnfe.write(oprot);
+        }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getJobDetails_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_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(6);
+        java.util.BitSet incoming = iprot.readBitSet(7);
         if (incoming.get(0)) {
-          {
-            org.apache.thrift.protocol.TList _list151 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.job.JobModel>(_list151.size);
-            org.apache.airavata.model.job.JobModel _elem152;
-            for (int _i153 = 0; _i153 < _list151.size; ++_i153)
-            {
-              _elem152 = new org.apache.airavata.model.job.JobModel();
-              _elem152.read(iprot);
-              struct.success.add(_elem152);
-            }
-          }
+          struct.success = iprot.readString();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -102595,6 +104470,11 @@ public class Airavata {
           struct.ae.read(iprot);
           struct.setAeIsSet(true);
         }
+        if (incoming.get(6)) {
+          struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
+          struct.pnfe.read(iprot);
+          struct.setPnfeIsSet(true);
+        }
       }
     }
 
@@ -102603,16 +104483,16 @@ public class Airavata {
     }
   }
 
-  public static class cloneExperiment_args implements org.apache.thrift.TBase<cloneExperiment_args, cloneExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperiment_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_args");
+  public static class cloneExperimentByAdmin_args implements org.apache.thrift.TBase<cloneExperimentByAdmin_args, cloneExperimentByAdmin_args._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperimentByAdmin_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperimentByAdmin_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField EXISTING_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("existingExperimentID", org.apache.thrift.protocol.TType.STRING, (short)2);
     private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentName", org.apache.thrift.protocol.TType.STRING, (short)3);
     private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentProjectId", org.apache.thrift.protocol.TType.STRING, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperiment_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperiment_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperimentByAdmin_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperimentByAdmin_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String existingExperimentID; // required
@@ -102699,13 +104579,13 @@ public class Airavata {
       tmpMap.put(_Fields.NEW_EXPERIMENT_PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("newExperimentProjectId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperimentByAdmin_args.class, metaDataMap);
     }
 
-    public cloneExperiment_args() {
+    public cloneExperimentByAdmin_args() {
     }
 
-    public cloneExperiment_args(
+    public cloneExperimentByAdmin_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
       java.lang.String existingExperimentID,
       java.lang.String newExperimentName,
@@ -102721,7 +104601,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public cloneExperiment_args(cloneExperiment_args other) {
+    public cloneExperimentByAdmin_args(cloneExperimentByAdmin_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
@@ -102736,8 +104616,8 @@ public class Airavata {
       }
     }
 
-    public cloneExperiment_args deepCopy() {
-      return new cloneExperiment_args(this);
+    public cloneExperimentByAdmin_args deepCopy() {
+      return new cloneExperimentByAdmin_args(this);
     }
 
     @Override
@@ -102752,7 +104632,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public cloneExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public cloneExperimentByAdmin_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -102776,7 +104656,7 @@ public class Airavata {
       return this.existingExperimentID;
     }
 
-    public cloneExperiment_args setExistingExperimentID(java.lang.String existingExperimentID) {
+    public cloneExperimentByAdmin_args setExistingExperimentID(java.lang.String existingExperimentID) {
       this.existingExperimentID = existingExperimentID;
       return this;
     }
@@ -102800,7 +104680,7 @@ public class Airavata {
       return this.newExperimentName;
     }
 
-    public cloneExperiment_args setNewExperimentName(java.lang.String newExperimentName) {
+    public cloneExperimentByAdmin_args setNewExperimentName(java.lang.String newExperimentName) {
       this.newExperimentName = newExperimentName;
       return this;
     }
@@ -102824,7 +104704,7 @@ public class Airavata {
       return this.newExperimentProjectId;
     }
 
-    public cloneExperiment_args setNewExperimentProjectId(java.lang.String newExperimentProjectId) {
+    public cloneExperimentByAdmin_args setNewExperimentProjectId(java.lang.String newExperimentProjectId) {
       this.newExperimentProjectId = newExperimentProjectId;
       return this;
     }
@@ -102922,12 +104802,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof cloneExperiment_args)
-        return this.equals((cloneExperiment_args)that);
+      if (that instanceof cloneExperimentByAdmin_args)
+        return this.equals((cloneExperimentByAdmin_args)that);
       return false;
     }
 
-    public boolean equals(cloneExperiment_args that) {
+    public boolean equals(cloneExperimentByAdmin_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -102996,7 +104876,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(cloneExperiment_args other) {
+    public int compareTo(cloneExperimentByAdmin_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -103060,7 +104940,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperiment_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperimentByAdmin_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -103125,15 +105005,15 @@ public class Airavata {
       }
     }
 
-    private static class cloneExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperiment_argsStandardScheme getScheme() {
-        return new cloneExperiment_argsStandardScheme();
+    private static class cloneExperimentByAdmin_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_argsStandardScheme getScheme() {
+        return new cloneExperimentByAdmin_argsStandardScheme();
       }
     }
 
-    private static class cloneExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperiment_args> {
+    private static class cloneExperimentByAdmin_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperimentByAdmin_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -103187,7 +105067,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -103217,16 +105097,16 @@ public class Airavata {
 
     }
 
-    private static class cloneExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperiment_argsTupleScheme getScheme() {
-        return new cloneExperiment_argsTupleScheme();
+    private static class cloneExperimentByAdmin_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_argsTupleScheme getScheme() {
+        return new cloneExperimentByAdmin_argsTupleScheme();
       }
     }
 
-    private static class cloneExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperiment_args> {
+    private static class cloneExperimentByAdmin_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperimentByAdmin_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         java.util.BitSet optionals = new java.util.BitSet();
@@ -103252,7 +105132,7 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
@@ -103278,8 +105158,8 @@ public class Airavata {
     }
   }
 
-  public static class cloneExperiment_result implements org.apache.thrift.TBase<cloneExperiment_result, cloneExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperiment_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_result");
+  public static class cloneExperimentByAdmin_result implements org.apache.thrift.TBase<cloneExperimentByAdmin_result, cloneExperimentByAdmin_result._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperimentByAdmin_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperimentByAdmin_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
@@ -103289,8 +105169,8 @@ public class Airavata {
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
     private static final org.apache.thrift.protocol.TField PNFE_FIELD_DESC = new org.apache.thrift.protocol.TField("pnfe", org.apache.thrift.protocol.TType.STRUCT, (short)6);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperiment_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperiment_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperimentByAdmin_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperimentByAdmin_resultTupleSchemeFactory();
 
     public java.lang.String success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
@@ -103395,13 +105275,13 @@ public class Airavata {
       tmpMap.put(_Fields.PNFE, new org.apache.thrift.meta_data.FieldMetaData("pnfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ProjectNotFoundException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperimentByAdmin_result.class, metaDataMap);
     }
 
-    public cloneExperiment_result() {
+    public cloneExperimentByAdmin_result() {
     }
 
-    public cloneExperiment_result(
+    public cloneExperimentByAdmin_result(
       java.lang.String success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
@@ -103423,7 +105303,7 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public cloneExperiment_result(cloneExperiment_result other) {
+    public cloneExperimentByAdmin_result(cloneExperimentByAdmin_result other) {
       if (other.isSetSuccess()) {
         this.success = other.success;
       }
@@ -103447,8 +105327,8 @@ public class Airavata {
       }
     }
 
-    public cloneExperiment_result deepCopy() {
-      return new cloneExperiment_result(this);
+    public cloneExperimentByAdmin_result deepCopy() {
+      return new cloneExperimentByAdmin_result(this);
     }
 
     @Override
@@ -103466,7 +105346,7 @@ public class Airavata {
       return this.success;
     }
 
-    public cloneExperiment_result setSuccess(java.lang.String success) {
+    public cloneExperimentByAdmin_result setSuccess(java.lang.String success) {
       this.success = success;
       return this;
     }
@@ -103490,7 +105370,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public cloneExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public cloneExperimentByAdmin_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -103514,7 +105394,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public cloneExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public cloneExperimentByAdmin_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -103538,7 +105418,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public cloneExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public cloneExperimentByAdmin_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -103562,7 +105442,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public cloneExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public cloneExperimentByAdmin_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -103586,7 +105466,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public cloneExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public cloneExperimentByAdmin_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -103610,7 +105490,7 @@ public class Airavata {
       return this.pnfe;
     }
 
-    public cloneExperiment_result setPnfe(org.apache.airavata.model.error.ProjectNotFoundException pnfe) {
+    public cloneExperimentByAdmin_result setPnfe(org.apache.airavata.model.error.ProjectNotFoundException pnfe) {
       this.pnfe = pnfe;
       return this;
     }
@@ -103747,12 +105627,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof cloneExperiment_result)
-        return this.equals((cloneExperiment_result)that);
+      if (that instanceof cloneExperimentByAdmin_result)
+        return this.equals((cloneExperimentByAdmin_result)that);
       return false;
     }
 
-    public boolean equals(cloneExperiment_result that) {
+    public boolean equals(cloneExperimentByAdmin_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -103860,7 +105740,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(cloneExperiment_result other) {
+    public int compareTo(cloneExperimentByAdmin_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -103954,7 +105834,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperiment_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperimentByAdmin_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -104037,15 +105917,15 @@ public class Airavata {
       }
     }
 
-    private static class cloneExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperiment_resultStandardScheme getScheme() {
-        return new cloneExperiment_resultStandardScheme();
+    private static class cloneExperimentByAdmin_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_resultStandardScheme getScheme() {
+        return new cloneExperimentByAdmin_resultStandardScheme();
       }
     }
 
-    private static class cloneExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperiment_result> {
+    private static class cloneExperimentByAdmin_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperimentByAdmin_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -104128,7 +106008,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -104173,16 +106053,16 @@ public class Airavata {
 
     }
 
-    private static class cloneExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperiment_resultTupleScheme getScheme() {
-        return new cloneExperiment_resultTupleScheme();
+    private static class cloneExperimentByAdmin_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_resultTupleScheme getScheme() {
+        return new cloneExperimentByAdmin_resultTupleScheme();
       }
     }
 
-    private static class cloneExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperiment_result> {
+    private static class cloneExperimentByAdmin_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperimentByAdmin_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_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()) {
@@ -104231,7 +106111,7 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_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(7);
         if (incoming.get(0)) {
@@ -104276,28 +106156,25 @@ public class Airavata {
     }
   }
 
-  public static class cloneExperimentByAdmin_args implements org.apache.thrift.TBase<cloneExperimentByAdmin_args, cloneExperimentByAdmin_args._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperimentByAdmin_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperimentByAdmin_args");
+  public static class terminateExperiment_args implements org.apache.thrift.TBase<terminateExperiment_args, terminateExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField EXISTING_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("existingExperimentID", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentName", org.apache.thrift.protocol.TType.STRING, (short)3);
-    private static final org.apache.thrift.protocol.TField NEW_EXPERIMENT_PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperimentProjectId", org.apache.thrift.protocol.TType.STRING, (short)4);
+    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    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)3);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperimentByAdmin_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperimentByAdmin_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String existingExperimentID; // required
-    public java.lang.String newExperimentName; // required
-    public java.lang.String newExperimentProjectId; // required
+    public java.lang.String airavataExperimentId; // required
+    public java.lang.String gatewayId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      EXISTING_EXPERIMENT_ID((short)2, "existingExperimentID"),
-      NEW_EXPERIMENT_NAME((short)3, "newExperimentName"),
-      NEW_EXPERIMENT_PROJECT_ID((short)4, "newExperimentProjectId");
+      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId"),
+      GATEWAY_ID((short)3, "gatewayId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -104314,12 +106191,10 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // EXISTING_EXPERIMENT_ID
-            return EXISTING_EXPERIMENT_ID;
-          case 3: // NEW_EXPERIMENT_NAME
-            return NEW_EXPERIMENT_NAME;
-          case 4: // NEW_EXPERIMENT_PROJECT_ID
-            return NEW_EXPERIMENT_PROJECT_ID;
+          case 2: // AIRAVATA_EXPERIMENT_ID
+            return AIRAVATA_EXPERIMENT_ID;
+          case 3: // GATEWAY_ID
+            return GATEWAY_ID;
           default:
             return null;
         }
@@ -104365,67 +106240,59 @@ public class Airavata {
       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.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.EXISTING_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("existingExperimentID", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.NEW_EXPERIMENT_NAME, new org.apache.thrift.meta_data.FieldMetaData("newExperimentName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.NEW_EXPERIMENT_PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("newExperimentProjectId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperimentByAdmin_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_args.class, metaDataMap);
     }
 
-    public cloneExperimentByAdmin_args() {
+    public terminateExperiment_args() {
     }
 
-    public cloneExperimentByAdmin_args(
+    public terminateExperiment_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String existingExperimentID,
-      java.lang.String newExperimentName,
-      java.lang.String newExperimentProjectId)
+      java.lang.String airavataExperimentId,
+      java.lang.String gatewayId)
     {
       this();
       this.authzToken = authzToken;
-      this.existingExperimentID = existingExperimentID;
-      this.newExperimentName = newExperimentName;
-      this.newExperimentProjectId = newExperimentProjectId;
+      this.airavataExperimentId = airavataExperimentId;
+      this.gatewayId = gatewayId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public cloneExperimentByAdmin_args(cloneExperimentByAdmin_args other) {
+    public terminateExperiment_args(terminateExperiment_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetExistingExperimentID()) {
-        this.existingExperimentID = other.existingExperimentID;
-      }
-      if (other.isSetNewExperimentName()) {
-        this.newExperimentName = other.newExperimentName;
+      if (other.isSetAiravataExperimentId()) {
+        this.airavataExperimentId = other.airavataExperimentId;
       }
-      if (other.isSetNewExperimentProjectId()) {
-        this.newExperimentProjectId = other.newExperimentProjectId;
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
       }
     }
 
-    public cloneExperimentByAdmin_args deepCopy() {
-      return new cloneExperimentByAdmin_args(this);
+    public terminateExperiment_args deepCopy() {
+      return new terminateExperiment_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.existingExperimentID = null;
-      this.newExperimentName = null;
-      this.newExperimentProjectId = null;
+      this.airavataExperimentId = null;
+      this.gatewayId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public cloneExperimentByAdmin_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public terminateExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -104445,75 +106312,51 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getExistingExperimentID() {
-      return this.existingExperimentID;
-    }
-
-    public cloneExperimentByAdmin_args setExistingExperimentID(java.lang.String existingExperimentID) {
-      this.existingExperimentID = existingExperimentID;
-      return this;
-    }
-
-    public void unsetExistingExperimentID() {
-      this.existingExperimentID = null;
-    }
-
-    /** Returns true if field existingExperimentID is set (has been assigned a value) and false otherwise */
-    public boolean isSetExistingExperimentID() {
-      return this.existingExperimentID != null;
-    }
-
-    public void setExistingExperimentIDIsSet(boolean value) {
-      if (!value) {
-        this.existingExperimentID = null;
-      }
-    }
-
-    public java.lang.String getNewExperimentName() {
-      return this.newExperimentName;
+    public java.lang.String getAiravataExperimentId() {
+      return this.airavataExperimentId;
     }
 
-    public cloneExperimentByAdmin_args setNewExperimentName(java.lang.String newExperimentName) {
-      this.newExperimentName = newExperimentName;
+    public terminateExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+      this.airavataExperimentId = airavataExperimentId;
       return this;
     }
 
-    public void unsetNewExperimentName() {
-      this.newExperimentName = null;
+    public void unsetAiravataExperimentId() {
+      this.airavataExperimentId = null;
     }
 
-    /** Returns true if field newExperimentName is set (has been assigned a value) and false otherwise */
-    public boolean isSetNewExperimentName() {
-      return this.newExperimentName != null;
+    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAiravataExperimentId() {
+      return this.airavataExperimentId != null;
     }
 
-    public void setNewExperimentNameIsSet(boolean value) {
+    public void setAiravataExperimentIdIsSet(boolean value) {
       if (!value) {
-        this.newExperimentName = null;
+        this.airavataExperimentId = null;
       }
     }
 
-    public java.lang.String getNewExperimentProjectId() {
-      return this.newExperimentProjectId;
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
     }
 
-    public cloneExperimentByAdmin_args setNewExperimentProjectId(java.lang.String newExperimentProjectId) {
-      this.newExperimentProjectId = newExperimentProjectId;
+    public terminateExperiment_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
       return this;
     }
 
-    public void unsetNewExperimentProjectId() {
-      this.newExperimentProjectId = null;
+    public void unsetGatewayId() {
+      this.gatewayId = null;
     }
 
-    /** Returns true if field newExperimentProjectId is set (has been assigned a value) and false otherwise */
-    public boolean isSetNewExperimentProjectId() {
-      return this.newExperimentProjectId != 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 setNewExperimentProjectIdIsSet(boolean value) {
+    public void setGatewayIdIsSet(boolean value) {
       if (!value) {
-        this.newExperimentProjectId = null;
+        this.gatewayId = null;
       }
     }
 
@@ -104527,27 +106370,19 @@ public class Airavata {
         }
         break;
 
-      case EXISTING_EXPERIMENT_ID:
-        if (value == null) {
-          unsetExistingExperimentID();
-        } else {
-          setExistingExperimentID((java.lang.String)value);
-        }
-        break;
-
-      case NEW_EXPERIMENT_NAME:
+      case AIRAVATA_EXPERIMENT_ID:
         if (value == null) {
-          unsetNewExperimentName();
+          unsetAiravataExperimentId();
         } else {
-          setNewExperimentName((java.lang.String)value);
+          setAiravataExperimentId((java.lang.String)value);
         }
         break;
 
-      case NEW_EXPERIMENT_PROJECT_ID:
+      case GATEWAY_ID:
         if (value == null) {
-          unsetNewExperimentProjectId();
+          unsetGatewayId();
         } else {
-          setNewExperimentProjectId((java.lang.String)value);
+          setGatewayId((java.lang.String)value);
         }
         break;
 
@@ -104559,14 +106394,11 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case EXISTING_EXPERIMENT_ID:
-        return getExistingExperimentID();
-
-      case NEW_EXPERIMENT_NAME:
-        return getNewExperimentName();
+      case AIRAVATA_EXPERIMENT_ID:
+        return getAiravataExperimentId();
 
-      case NEW_EXPERIMENT_PROJECT_ID:
-        return getNewExperimentProjectId();
+      case GATEWAY_ID:
+        return getGatewayId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -104581,12 +106413,10 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case EXISTING_EXPERIMENT_ID:
-        return isSetExistingExperimentID();
-      case NEW_EXPERIMENT_NAME:
-        return isSetNewExperimentName();
-      case NEW_EXPERIMENT_PROJECT_ID:
-        return isSetNewExperimentProjectId();
+      case AIRAVATA_EXPERIMENT_ID:
+        return isSetAiravataExperimentId();
+      case GATEWAY_ID:
+        return isSetGatewayId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -104595,12 +106425,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof cloneExperimentByAdmin_args)
-        return this.equals((cloneExperimentByAdmin_args)that);
+      if (that instanceof terminateExperiment_args)
+        return this.equals((terminateExperiment_args)that);
       return false;
     }
 
-    public boolean equals(cloneExperimentByAdmin_args that) {
+    public boolean equals(terminateExperiment_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -104615,30 +106445,21 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_existingExperimentID = true && this.isSetExistingExperimentID();
-      boolean that_present_existingExperimentID = true && that.isSetExistingExperimentID();
-      if (this_present_existingExperimentID || that_present_existingExperimentID) {
-        if (!(this_present_existingExperimentID && that_present_existingExperimentID))
-          return false;
-        if (!this.existingExperimentID.equals(that.existingExperimentID))
-          return false;
-      }
-
-      boolean this_present_newExperimentName = true && this.isSetNewExperimentName();
-      boolean that_present_newExperimentName = true && that.isSetNewExperimentName();
-      if (this_present_newExperimentName || that_present_newExperimentName) {
-        if (!(this_present_newExperimentName && that_present_newExperimentName))
+      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
+      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
+      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
+        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
           return false;
-        if (!this.newExperimentName.equals(that.newExperimentName))
+        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
           return false;
       }
 
-      boolean this_present_newExperimentProjectId = true && this.isSetNewExperimentProjectId();
-      boolean that_present_newExperimentProjectId = true && that.isSetNewExperimentProjectId();
-      if (this_present_newExperimentProjectId || that_present_newExperimentProjectId) {
-        if (!(this_present_newExperimentProjectId && that_present_newExperimentProjectId))
+      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.newExperimentProjectId.equals(that.newExperimentProjectId))
+        if (!this.gatewayId.equals(that.gatewayId))
           return false;
       }
 
@@ -104653,23 +106474,19 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetExistingExperimentID()) ? 131071 : 524287);
-      if (isSetExistingExperimentID())
-        hashCode = hashCode * 8191 + existingExperimentID.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetNewExperimentName()) ? 131071 : 524287);
-      if (isSetNewExperimentName())
-        hashCode = hashCode * 8191 + newExperimentName.hashCode();
+      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
+      if (isSetAiravataExperimentId())
+        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetNewExperimentProjectId()) ? 131071 : 524287);
-      if (isSetNewExperimentProjectId())
-        hashCode = hashCode * 8191 + newExperimentProjectId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(cloneExperimentByAdmin_args other) {
+    public int compareTo(terminateExperiment_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -104686,32 +106503,22 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetExistingExperimentID()).compareTo(other.isSetExistingExperimentID());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetExistingExperimentID()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.existingExperimentID, other.existingExperimentID);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetNewExperimentName()).compareTo(other.isSetNewExperimentName());
+      lastComparison = java.lang.Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetNewExperimentName()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newExperimentName, other.newExperimentName);
+      if (isSetAiravataExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetNewExperimentProjectId()).compareTo(other.isSetNewExperimentProjectId());
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetNewExperimentProjectId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newExperimentProjectId, other.newExperimentProjectId);
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -104733,7 +106540,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperimentByAdmin_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("terminateExperiment_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -104744,27 +106551,19 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("existingExperimentID:");
-      if (this.existingExperimentID == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.existingExperimentID);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("newExperimentName:");
-      if (this.newExperimentName == null) {
+      sb.append("airavataExperimentId:");
+      if (this.airavataExperimentId == null) {
         sb.append("null");
       } else {
-        sb.append(this.newExperimentName);
+        sb.append(this.airavataExperimentId);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("newExperimentProjectId:");
-      if (this.newExperimentProjectId == null) {
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
         sb.append("null");
       } else {
-        sb.append(this.newExperimentProjectId);
+        sb.append(this.gatewayId);
       }
       first = false;
       sb.append(")");
@@ -104798,15 +106597,15 @@ public class Airavata {
       }
     }
 
-    private static class cloneExperimentByAdmin_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperimentByAdmin_argsStandardScheme getScheme() {
-        return new cloneExperimentByAdmin_argsStandardScheme();
+    private static class terminateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_argsStandardScheme getScheme() {
+        return new terminateExperiment_argsStandardScheme();
       }
     }
 
-    private static class cloneExperimentByAdmin_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperimentByAdmin_args> {
+    private static class terminateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<terminateExperiment_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -104825,26 +106624,18 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // EXISTING_EXPERIMENT_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.existingExperimentID = iprot.readString();
-                struct.setExistingExperimentIDIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 3: // NEW_EXPERIMENT_NAME
+            case 2: // AIRAVATA_EXPERIMENT_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.newExperimentName = iprot.readString();
-                struct.setNewExperimentNameIsSet(true);
+                struct.airavataExperimentId = iprot.readString();
+                struct.setAiravataExperimentIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 4: // NEW_EXPERIMENT_PROJECT_ID
+            case 3: // GATEWAY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.newExperimentProjectId = iprot.readString();
-                struct.setNewExperimentProjectIdIsSet(true);
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -104860,7 +106651,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -104869,19 +106660,14 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.existingExperimentID != null) {
-          oprot.writeFieldBegin(EXISTING_EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.existingExperimentID);
-          oprot.writeFieldEnd();
-        }
-        if (struct.newExperimentName != null) {
-          oprot.writeFieldBegin(NEW_EXPERIMENT_NAME_FIELD_DESC);
-          oprot.writeString(struct.newExperimentName);
+        if (struct.airavataExperimentId != null) {
+          oprot.writeFieldBegin(AIRAVATA_EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.airavataExperimentId);
           oprot.writeFieldEnd();
         }
-        if (struct.newExperimentProjectId != null) {
-          oprot.writeFieldBegin(NEW_EXPERIMENT_PROJECT_ID_FIELD_DESC);
-          oprot.writeString(struct.newExperimentProjectId);
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -104890,58 +106676,48 @@ public class Airavata {
 
     }
 
-    private static class cloneExperimentByAdmin_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperimentByAdmin_argsTupleScheme getScheme() {
-        return new cloneExperimentByAdmin_argsTupleScheme();
+    private static class terminateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_argsTupleScheme getScheme() {
+        return new terminateExperiment_argsTupleScheme();
       }
     }
 
-    private static class cloneExperimentByAdmin_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperimentByAdmin_args> {
+    private static class terminateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<terminateExperiment_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetExistingExperimentID()) {
+        if (struct.isSetAiravataExperimentId()) {
           optionals.set(0);
         }
-        if (struct.isSetNewExperimentName()) {
+        if (struct.isSetGatewayId()) {
           optionals.set(1);
         }
-        if (struct.isSetNewExperimentProjectId()) {
-          optionals.set(2);
-        }
-        oprot.writeBitSet(optionals, 3);
-        if (struct.isSetExistingExperimentID()) {
-          oprot.writeString(struct.existingExperimentID);
-        }
-        if (struct.isSetNewExperimentName()) {
-          oprot.writeString(struct.newExperimentName);
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetAiravataExperimentId()) {
+          oprot.writeString(struct.airavataExperimentId);
         }
-        if (struct.isSetNewExperimentProjectId()) {
-          oprot.writeString(struct.newExperimentProjectId);
+        if (struct.isSetGatewayId()) {
+          oprot.writeString(struct.gatewayId);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        java.util.BitSet incoming = iprot.readBitSet(3);
+        java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.existingExperimentID = iprot.readString();
-          struct.setExistingExperimentIDIsSet(true);
+          struct.airavataExperimentId = iprot.readString();
+          struct.setAiravataExperimentIdIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.newExperimentName = iprot.readString();
-          struct.setNewExperimentNameIsSet(true);
-        }
-        if (incoming.get(2)) {
-          struct.newExperimentProjectId = iprot.readString();
-          struct.setNewExperimentProjectIdIsSet(true);
+          struct.gatewayId = iprot.readString();
+          struct.setGatewayIdIsSet(true);
         }
       }
     }
@@ -104951,37 +106727,31 @@ public class Airavata {
     }
   }
 
-  public static class cloneExperimentByAdmin_result implements org.apache.thrift.TBase<cloneExperimentByAdmin_result, cloneExperimentByAdmin_result._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperimentByAdmin_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperimentByAdmin_result");
+  public static class terminateExperiment_result implements org.apache.thrift.TBase<terminateExperiment_result, terminateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_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 IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
-    private static final org.apache.thrift.protocol.TField PNFE_FIELD_DESC = new org.apache.thrift.protocol.TField("pnfe", org.apache.thrift.protocol.TType.STRUCT, (short)6);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new cloneExperimentByAdmin_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new cloneExperimentByAdmin_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_resultTupleSchemeFactory();
 
-    public java.lang.String success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
     public org.apache.airavata.model.error.AuthorizationException ae; // required
-    public org.apache.airavata.model.error.ProjectNotFoundException pnfe; // 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"),
       IRE((short)1, "ire"),
       ENF((short)2, "enf"),
       ACE((short)3, "ace"),
       ASE((short)4, "ase"),
-      AE((short)5, "ae"),
-      PNFE((short)6, "pnfe");
+      AE((short)5, "ae");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -104996,8 +106766,6 @@ public class Airavata {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 0: // SUCCESS
-            return SUCCESS;
           case 1: // IRE
             return IRE;
           case 2: // ENF
@@ -105008,8 +106776,6 @@ public class Airavata {
             return ASE;
           case 5: // AE
             return AE;
-          case 6: // PNFE
-            return PNFE;
           default:
             return null;
         }
@@ -105053,8 +106819,6 @@ public class Airavata {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -105065,41 +106829,32 @@ public class Airavata {
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataSystemException.class)));
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
-      tmpMap.put(_Fields.PNFE, new org.apache.thrift.meta_data.FieldMetaData("pnfe", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ProjectNotFoundException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperimentByAdmin_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_result.class, metaDataMap);
     }
 
-    public cloneExperimentByAdmin_result() {
+    public terminateExperiment_result() {
     }
 
-    public cloneExperimentByAdmin_result(
-      java.lang.String success,
+    public terminateExperiment_result(
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
-      org.apache.airavata.model.error.AuthorizationException ae,
-      org.apache.airavata.model.error.ProjectNotFoundException pnfe)
+      org.apache.airavata.model.error.AuthorizationException ae)
     {
       this();
-      this.success = success;
       this.ire = ire;
       this.enf = enf;
       this.ace = ace;
       this.ase = ase;
       this.ae = ae;
-      this.pnfe = pnfe;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public cloneExperimentByAdmin_result(cloneExperimentByAdmin_result other) {
-      if (other.isSetSuccess()) {
-        this.success = other.success;
-      }
+    public terminateExperiment_result(terminateExperiment_result other) {
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -105115,55 +106870,26 @@ public class Airavata {
       if (other.isSetAe()) {
         this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
       }
-      if (other.isSetPnfe()) {
-        this.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException(other.pnfe);
-      }
     }
 
-    public cloneExperimentByAdmin_result deepCopy() {
-      return new cloneExperimentByAdmin_result(this);
+    public terminateExperiment_result deepCopy() {
+      return new terminateExperiment_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
       this.ire = null;
       this.enf = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
-      this.pnfe = null;
-    }
-
-    public java.lang.String getSuccess() {
-      return this.success;
-    }
-
-    public cloneExperimentByAdmin_result setSuccess(java.lang.String success) {
-      this.success = success;
-      return this;
-    }
-
-    public void unsetSuccess() {
-      this.success = null;
-    }
-
-    /** Returns true if field success is set (has been assigned a value) and false otherwise */
-    public boolean isSetSuccess() {
-      return this.success != null;
-    }
-
-    public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
     }
 
     public org.apache.airavata.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public cloneExperimentByAdmin_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public terminateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -105187,7 +106913,7 @@ public class Airavata {
       return this.enf;
     }
 
-    public cloneExperimentByAdmin_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+    public terminateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
       this.enf = enf;
       return this;
     }
@@ -105211,7 +106937,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public cloneExperimentByAdmin_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public terminateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -105235,7 +106961,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public cloneExperimentByAdmin_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public terminateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -105259,7 +106985,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public cloneExperimentByAdmin_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public terminateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -105279,40 +107005,8 @@ public class Airavata {
       }
     }
 
-    public org.apache.airavata.model.error.ProjectNotFoundException getPnfe() {
-      return this.pnfe;
-    }
-
-    public cloneExperimentByAdmin_result setPnfe(org.apache.airavata.model.error.ProjectNotFoundException pnfe) {
-      this.pnfe = pnfe;
-      return this;
-    }
-
-    public void unsetPnfe() {
-      this.pnfe = null;
-    }
-
-    /** Returns true if field pnfe is set (has been assigned a value) and false otherwise */
-    public boolean isSetPnfe() {
-      return this.pnfe != null;
-    }
-
-    public void setPnfeIsSet(boolean value) {
-      if (!value) {
-        this.pnfe = null;
-      }
-    }
-
... 84850 lines suppressed ...

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

[airavata] 01/02: AIRAVATA-2797 Add isUserResourceProfileExists to API instead of isNull flag

Posted by ma...@apache.org.
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 d2811fbd0356688a14509ce640e7a4e981374884
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Jun 6 11:47:50 2018 -0400

    AIRAVATA-2797 Add isUserResourceProfileExists to API instead of isNull flag
---
 .../api/server/handler/AiravataServerHandler.java   | 18 ++++++++++++++++++
 .../api/service/handler/RegistryServerHandler.java  | 21 +++++++++++++++++++++
 .../airavata-apis/airavata_api.thrift               | 18 ++++++++++++++++++
 .../component-cpis/registry-api.thrift              | 15 +++++++++++++++
 .../user_resource_profile_model.thrift              |  4 ----
 5 files changed, 72 insertions(+), 4 deletions(-)

diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 49c32a6..7d0c5d8 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -4320,6 +4320,24 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    @Override
+    @SecurityCheck
+    public boolean isUserResourceProfileExists(AuthzToken authzToken, String userId, String gatewayID) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        RegistryService.Client regClient = registryClientPool.getResource();
+        try {
+            boolean result = regClient.isUserResourceProfileExists(userId, gatewayID);
+            registryClientPool.returnResource(regClient);
+            return result;
+        } catch (Exception e) {
+            logger.error("Error while checking existence of user resource profile for " + userId, e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while checking existence of user resource profile. More info : " + e.getMessage());
+            registryClientPool.returnBrokenResource(regClient);
+            throw exception;
+        }
+    }
+
     /**
      * Fetch the given User Resource Profile.
      *
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 2e491e5..59ac946 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
@@ -4298,6 +4298,27 @@ public class RegistryServerHandler implements RegistryService.Iface {
         }
     }
 
+    @Override
+    public boolean isUserResourceProfileExists(String userId, String gatewayId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayId)){
+                logger.error("user does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            return userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayId);
+        } catch (AppCatalogException e) {
+            logger.error("Error while checking existence of user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while checking existence of user resource profile. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error("Error while checking existence of user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while checking existence of user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     /**
      * Fetch the given Gateway Resource Profile.
      *
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 0a43ecb..5568b4c 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -3047,6 +3047,24 @@ service Airavata {
                 4: airavata_errors.AuthorizationException ae)
 
     /**
+     * Check if User Resource Profile exists.
+     *
+     * @param userId
+     *   The identifier for the requested user resource profile.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @return bool
+     *
+    */
+    bool isUserResourceProfileExists(1: required security_model.AuthzToken authzToken,
+                  2: required string userId, 3: required string gatewayID)
+        	throws (1: airavata_errors.InvalidRequestException ire,
+                  2: airavata_errors.AiravataClientException ace,
+                  3: airavata_errors.AiravataSystemException ase,
+                  4: airavata_errors.AuthorizationException ae)
+    /**
      * Fetch the given User Resource Profile.
      *
      * @param userId
diff --git a/thrift-interface-descriptions/component-cpis/registry-api.thrift b/thrift-interface-descriptions/component-cpis/registry-api.thrift
index 06c5ec2..361ca6a 100644
--- a/thrift-interface-descriptions/component-cpis/registry-api.thrift
+++ b/thrift-interface-descriptions/component-cpis/registry-api.thrift
@@ -2201,6 +2201,21 @@ service RegistryService {
                      throws (1: registry_api_errors.RegistryServiceException rse)
 
                /**
+                * Check if the given User Resource Profile exists.
+                *
+                * @param userId
+                *   The identifier for the requested User Resource Profile.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource Profile.
+                *
+                * @return true if User Resource Profile for these identifiers exists.
+                *
+               */
+               bool isUserResourceProfileExists(1: required string userId, 2: required string gatewayID)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
                 * Fetch the given User Resource Resource Profile.
                 *
                 * @param userId
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
index 2d48e2c..fc76e7c 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
@@ -99,9 +99,6 @@ struct UserStoragePreference {
  *
  *  identityServerPwdCredToken:
  *
- * isNull:
- *  Indicates that this instance is just a container for a null value.
- *
 */
 struct UserResourceProfile {
     1: required string userId,
@@ -111,5 +108,4 @@ struct UserResourceProfile {
     5: optional list<UserStoragePreference> userStoragePreferences,
     6: optional string identityServerTenant,
     7: optional string identityServerPwdCredToken,
-    8: optional bool isNull = false
 }
\ No newline at end of file

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