http://git-wip-us.apache.org/repos/asf/airavata/blob/0fda5a8f/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
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 4441999..bf248b7 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
@@ -736,6 +736,48 @@ public class Airavata {
     public org.apache.airavata.model.experiment.ExperimentModel 
getExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String 
airavataExperimentId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.airavata.model.error.AuthorizationException, 
org.apache.thrift.TException;
 
     /**
+     *   *
+     *   * Get Experiment by an admin user
+     *   *
+     *   * Used by an admin user to fetch previously created experiment 
metadata.
+     *   *
+     *   * @param airavataExperimentId
+     *   *    The unique identifier of the requested experiment. This ID is 
returned during the create experiment step.
+     *   *
+     *   * @return ExperimentModel
+     *   *   This method will return the previously stored experiment metadata.
+     *   *
+     *   * @throws org.apache.airavata.model.error.InvalidRequestException
+     *   *    For any incorrect forming of the request itself.
+     *   *
+     *   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
+     *   *    If the specified experiment is not previously created, then an 
Experiment Not Found Exception is thrown.
+     *   *
+     *   * @throws org.apache.airavata.model.error.AiravataClientException
+     *   *    The following list of exceptions are thrown which Airavata 
Client can take corrective actions to resolve:
+     *   *
+     *   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with 
Airavata as a one time administrative
+     *   *         step, then Airavata Registry will not have a provenance 
area setup. The client has to follow
+     *   *         gateway registration steps and retry this request.
+     *   *
+     *   *      AUTHENTICATION_FAILURE - How Authentication will be 
implemented is yet to be determined.
+     *   *         For now this is a place holder.
+     *   *
+     *   *      INVALID_AUTHORIZATION - This will throw an authorization 
exception. When a more robust security hand-shake
+     *   *         is implemented, the authorization will be more substantial.
+     *   *
+     *   * @throws org.apache.airavata.model.error.AiravataSystemException
+     *   *    This exception will be thrown for any Airavata Server side 
issues and if the problem cannot be corrected by the client
+     *   *       rather an Airavata Administrator will be notified to take 
corrective action.
+     *   *
+     * *
+     * 
+     * @param authzToken
+     * @param airavataExperimentId
+     */
+    public org.apache.airavata.model.experiment.ExperimentModel 
getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataExperimentId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.airavata.model.error.AuthorizationException, 
org.apache.thrift.TException;
+
+    /**
      * 
      * Get Complete Experiment Details
      * Fetch the completed nested tree structue of previously created 
experiment metadata which includes processes ->
@@ -3004,6 +3046,8 @@ public class Airavata {
 
     public void getExperiment(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
 
+    public void 
getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback 
resultHandler) throws org.apache.thrift.TException;
+
     public void 
getDetailedExperimentTree(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
 
     public void updateExperiment(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId, 
org.apache.airavata.model.experiment.ExperimentModel experiment, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException;
@@ -4636,6 +4680,45 @@ public class Airavata {
       throw new 
org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT,
 "getExperiment failed: unknown result");
     }
 
+    public org.apache.airavata.model.experiment.ExperimentModel 
getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataExperimentId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.airavata.model.error.AuthorizationException, 
org.apache.thrift.TException
+    {
+      send_getExperimentByAdmin(authzToken, airavataExperimentId);
+      return recv_getExperimentByAdmin();
+    }
+
+    public void 
send_getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId) throws org.apache.thrift.TException
+    {
+      getExperimentByAdmin_args args = new getExperimentByAdmin_args();
+      args.setAuthzToken(authzToken);
+      args.setAiravataExperimentId(airavataExperimentId);
+      sendBase("getExperimentByAdmin", args);
+    }
+
+    public org.apache.airavata.model.experiment.ExperimentModel 
recv_getExperimentByAdmin() throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.airavata.model.error.AuthorizationException, 
org.apache.thrift.TException
+    {
+      getExperimentByAdmin_result result = new getExperimentByAdmin_result();
+      receiveBase(result, "getExperimentByAdmin");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.enf != null) {
+        throw result.enf;
+      }
+      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,
 "getExperimentByAdmin failed: unknown result");
+    }
+
     public org.apache.airavata.model.experiment.ExperimentModel 
getDetailedExperimentTree(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId) throws 
org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
org.apache.airavata.model.error.AiravataClientException, 
org.apache.airavata.model.error.AiravataSystemException, 
org.apache.airavata.model.error.AuthorizationException, 
org.apache.thrift.TException
     {
       send_getDetailedExperimentTree(authzToken, airavataExperimentId);
@@ -10863,6 +10946,41 @@ public class Airavata {
       }
     }
 
+    public void 
getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, 
String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback 
resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getExperimentByAdmin_call method_call = new 
getExperimentByAdmin_call(authzToken, airavataExperimentId, resultHandler, 
this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getExperimentByAdmin_call extends 
org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String airavataExperimentId;
+      public 
getExperimentByAdmin_call(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId, 
org.apache.thrift.async.AsyncMethodCallback 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.airavataExperimentId = airavataExperimentId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws 
org.apache.thrift.TException {
+        prot.writeMessageBegin(new 
org.apache.thrift.protocol.TMessage("getExperimentByAdmin", 
org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getExperimentByAdmin_args args = new getExperimentByAdmin_args();
+        args.setAuthzToken(authzToken);
+        args.setAiravataExperimentId(airavataExperimentId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.experiment.ExperimentModel getResult() 
throws org.apache.airavata.model.error.InvalidRequestException, 
org.apache.airavata.model.error.ExperimentNotFoundException, 
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 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_getExperimentByAdmin();
+      }
+    }
+
     public void 
getDetailedExperimentTree(org.apache.airavata.model.security.AuthzToken 
authzToken, String airavataExperimentId, 
org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 
org.apache.thrift.TException {
       checkReady();
       getDetailedExperimentTree_call method_call = new 
getDetailedExperimentTree_call(authzToken, airavataExperimentId, resultHandler, 
this, ___protocolFactory, ___transport);
@@ -15795,6 +15913,7 @@ public class Airavata {
       processMap.put("createExperiment", new createExperiment());
       processMap.put("deleteExperiment", new deleteExperiment());
       processMap.put("getExperiment", new getExperiment());
+      processMap.put("getExperimentByAdmin", new getExperimentByAdmin());
       processMap.put("getDetailedExperimentTree", new 
getDetailedExperimentTree());
       processMap.put("updateExperiment", new updateExperiment());
       processMap.put("updateExperimentConfiguration", new 
updateExperimentConfiguration());
@@ -17039,6 +17158,38 @@ public class Airavata {
       }
     }
 
+    public static class getExperimentByAdmin<I extends Iface> extends 
org.apache.thrift.ProcessFunction<I, getExperimentByAdmin_args> {
+      public getExperimentByAdmin() {
+        super("getExperimentByAdmin");
+      }
+
+      public getExperimentByAdmin_args getEmptyArgsInstance() {
+        return new getExperimentByAdmin_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getExperimentByAdmin_result getResult(I iface, 
getExperimentByAdmin_args args) throws org.apache.thrift.TException {
+        getExperimentByAdmin_result result = new getExperimentByAdmin_result();
+        try {
+          result.success = iface.getExperimentByAdmin(args.authzToken, 
args.airavataExperimentId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.ExperimentNotFoundException 
enf) {
+          result.enf = enf;
+        } 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 getDetailedExperimentTree<I extends Iface> extends 
org.apache.thrift.ProcessFunction<I, getDetailedExperimentTree_args> {
       public getDetailedExperimentTree() {
         super("getDetailedExperimentTree");
@@ -21081,6 +21232,7 @@ public class Airavata {
       processMap.put("createExperiment", new createExperiment());
       processMap.put("deleteExperiment", new deleteExperiment());
       processMap.put("getExperiment", new getExperiment());
+      processMap.put("getExperimentByAdmin", new getExperimentByAdmin());
       processMap.put("getDetailedExperimentTree", new 
getDetailedExperimentTree());
       processMap.put("updateExperiment", new updateExperiment());
       processMap.put("updateExperimentConfiguration", new 
updateExperimentConfiguration());
@@ -23863,20 +24015,20 @@ public class Airavata {
       }
     }
 
-    public static class getDetailedExperimentTree<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
getDetailedExperimentTree_args, 
org.apache.airavata.model.experiment.ExperimentModel> {
-      public getDetailedExperimentTree() {
-        super("getDetailedExperimentTree");
+    public static class getExperimentByAdmin<I extends AsyncIface> extends 
org.apache.thrift.AsyncProcessFunction<I, getExperimentByAdmin_args, 
org.apache.airavata.model.experiment.ExperimentModel> {
+      public getExperimentByAdmin() {
+        super("getExperimentByAdmin");
       }
 
-      public getDetailedExperimentTree_args getEmptyArgsInstance() {
-        return new getDetailedExperimentTree_args();
+      public getExperimentByAdmin_args getEmptyArgsInstance() {
+        return new getExperimentByAdmin_args();
       }
 
       public 
AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> 
getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new 
AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>() { 
           public void 
onComplete(org.apache.airavata.model.experiment.ExperimentModel o) {
-            getDetailedExperimentTree_result result = new 
getDetailedExperimentTree_result();
+            getExperimentByAdmin_result result = new 
getExperimentByAdmin_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -23889,7 +24041,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getDetailedExperimentTree_result result = new 
getDetailedExperimentTree_result();
+            getExperimentByAdmin_result result = new 
getExperimentByAdmin_result();
             if (e instanceof 
org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = 
(org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -23935,25 +24087,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getDetailedExperimentTree_args args, 
org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>
 resultHandler) throws TException {
-        iface.getDetailedExperimentTree(args.authzToken, 
args.airavataExperimentId,resultHandler);
+      public void start(I iface, getExperimentByAdmin_args args, 
org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>
 resultHandler) throws TException {
+        iface.getExperimentByAdmin(args.authzToken, 
args.airavataExperimentId,resultHandler);
       }
     }
 
-    public static class updateExperiment<I extends AsyncIface> extends 
org.apache.thrift.AsyncProcessFunction<I, updateExperiment_args, Void> {
-      public updateExperiment() {
-        super("updateExperiment");
+    public static class getDetailedExperimentTree<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
getDetailedExperimentTree_args, 
org.apache.airavata.model.experiment.ExperimentModel> {
+      public getDetailedExperimentTree() {
+        super("getDetailedExperimentTree");
       }
 
-      public updateExperiment_args getEmptyArgsInstance() {
-        return new updateExperiment_args();
+      public getDetailedExperimentTree_args getEmptyArgsInstance() {
+        return new getDetailedExperimentTree_args();
       }
 
-      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer 
fb, final int seqid) {
+      public 
AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> 
getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateExperiment_result result = new updateExperiment_result();
+        return new 
AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>() { 
+          public void 
onComplete(org.apache.airavata.model.experiment.ExperimentModel o) {
+            getDetailedExperimentTree_result result = new 
getDetailedExperimentTree_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -23965,7 +24118,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateExperiment_result result = new updateExperiment_result();
+            getDetailedExperimentTree_result result = new 
getDetailedExperimentTree_result();
             if (e instanceof 
org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = 
(org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -24011,25 +24164,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateExperiment_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
-        iface.updateExperiment(args.authzToken, args.airavataExperimentId, 
args.experiment,resultHandler);
+      public void start(I iface, getDetailedExperimentTree_args args, 
org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel>
 resultHandler) throws TException {
+        iface.getDetailedExperimentTree(args.authzToken, 
args.airavataExperimentId,resultHandler);
       }
     }
 
-    public static class updateExperimentConfiguration<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
updateExperimentConfiguration_args, Void> {
-      public updateExperimentConfiguration() {
-        super("updateExperimentConfiguration");
+    public static class updateExperiment<I extends AsyncIface> extends 
org.apache.thrift.AsyncProcessFunction<I, updateExperiment_args, Void> {
+      public updateExperiment() {
+        super("updateExperiment");
       }
 
-      public updateExperimentConfiguration_args getEmptyArgsInstance() {
-        return new updateExperimentConfiguration_args();
+      public updateExperiment_args getEmptyArgsInstance() {
+        return new updateExperiment_args();
       }
 
       public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer 
fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Void>() { 
           public void onComplete(Void o) {
-            updateExperimentConfiguration_result result = new 
updateExperimentConfiguration_result();
+            updateExperiment_result result = new updateExperiment_result();
             try {
               fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -24041,8 +24194,28 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateExperimentConfiguration_result result = new 
updateExperimentConfiguration_result();
-            if (e instanceof 
org.apache.airavata.model.error.AuthorizationException) {
+            updateExperiment_result result = new updateExperiment_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.ExperimentNotFoundException) {
+                        result.enf = 
(org.apache.airavata.model.error.ExperimentNotFoundException) e;
+                        result.setEnfIsSet(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;
@@ -24067,25 +24240,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateExperimentConfiguration_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
-        iface.updateExperimentConfiguration(args.authzToken, 
args.airavataExperimentId, args.userConfiguration,resultHandler);
+      public void start(I iface, updateExperiment_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
+        iface.updateExperiment(args.authzToken, args.airavataExperimentId, 
args.experiment,resultHandler);
       }
     }
 
-    public static class updateResourceScheduleing<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
updateResourceScheduleing_args, Void> {
-      public updateResourceScheduleing() {
-        super("updateResourceScheduleing");
+    public static class updateExperimentConfiguration<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
updateExperimentConfiguration_args, Void> {
+      public updateExperimentConfiguration() {
+        super("updateExperimentConfiguration");
       }
 
-      public updateResourceScheduleing_args getEmptyArgsInstance() {
-        return new updateResourceScheduleing_args();
+      public updateExperimentConfiguration_args getEmptyArgsInstance() {
+        return new updateExperimentConfiguration_args();
       }
 
       public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer 
fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Void>() { 
           public void onComplete(Void o) {
-            updateResourceScheduleing_result result = new 
updateResourceScheduleing_result();
+            updateExperimentConfiguration_result result = new 
updateExperimentConfiguration_result();
             try {
               fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -24097,7 +24270,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateResourceScheduleing_result result = new 
updateResourceScheduleing_result();
+            updateExperimentConfiguration_result result = new 
updateExperimentConfiguration_result();
             if (e instanceof 
org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = 
(org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -24123,27 +24296,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateResourceScheduleing_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
-        iface.updateResourceScheduleing(args.authzToken, 
args.airavataExperimentId, args.resourceScheduling,resultHandler);
+      public void start(I iface, updateExperimentConfiguration_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
+        iface.updateExperimentConfiguration(args.authzToken, 
args.airavataExperimentId, args.userConfiguration,resultHandler);
       }
     }
 
-    public static class validateExperiment<I extends AsyncIface> extends 
org.apache.thrift.AsyncProcessFunction<I, validateExperiment_args, Boolean> {
-      public validateExperiment() {
-        super("validateExperiment");
+    public static class updateResourceScheduleing<I extends AsyncIface> 
extends org.apache.thrift.AsyncProcessFunction<I, 
updateResourceScheduleing_args, Void> {
+      public updateResourceScheduleing() {
+        super("updateResourceScheduleing");
       }
 
-      public validateExperiment_args getEmptyArgsInstance() {
-        return new validateExperiment_args();
+      public updateResourceScheduleing_args getEmptyArgsInstance() {
+        return new updateResourceScheduleing_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final 
AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer 
fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            validateExperiment_result result = new validateExperiment_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateResourceScheduleing_result result = new 
updateResourceScheduleing_result();
             try {
               fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -24155,28 +24326,86 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            validateExperiment_result result = new validateExperiment_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.ExperimentNotFoundException) {
-                        result.enf = 
(org.apache.airavata.model.error.ExperimentNotFoundException) e;
-                        result.setEnfIsSet(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) {
+            updateResourceScheduleing_result result = new 
updateResourceScheduleing_result();
+            if (e instanceof 
org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = 
(org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new 
org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR,
 e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, updateResourceScheduleing_args args, 
org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws 
TException {
+        iface.updateResourceScheduleing(args.authzToken, 
args.airavataExperimentId, args.resourceScheduling,resultHandler);
+      }
+    }
+
+    public static class validateExperiment<I extends AsyncIface> extends 
org.apache.thrift.AsyncProcessFunction<I, validateExperiment_args, Boolean> {
+      public validateExperiment() {
+        super("validateExperiment");
+      }
+
+      public validateExperiment_args getEmptyArgsInstance() {
+        return new validateExperiment_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final 
AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            validateExperiment_result result = new validateExperiment_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, 
org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            validateExperiment_result result = new validateExperiment_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.ExperimentNotFoundException) {
+                        result.enf = 
(org.apache.airavata.model.error.ExperimentNotFoundException) e;
+                        result.setEnfIsSet(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;
@@ -33448,42 +33677,1216 @@ public class Airavata {
       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)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class,
 metaDataMap);
+      
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class,
 metaDataMap);
+    }
+
+    public getAPIVersion_args() {
+    }
+
+    public getAPIVersion_args(
+      org.apache.airavata.model.security.AuthzToken authzToken)
+    {
+      this();
+      this.authzToken = authzToken;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getAPIVersion_args(getAPIVersion_args other) {
+      if (other.isSetAuthzToken()) {
+        this.authzToken = new 
org.apache.airavata.model.security.AuthzToken(other.authzToken);
+      }
+    }
+
+    public getAPIVersion_args deepCopy() {
+      return new getAPIVersion_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.authzToken = null;
+    }
+
+    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+      return this.authzToken;
+    }
+
+    public getAPIVersion_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 void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        if (value == null) {
+          unsetAuthzToken();
+        } else {
+          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return getAuthzToken();
+
+      }
+      throw new 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 IllegalArgumentException();
+      }
+
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return isSetAuthzToken();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getAPIVersion_args)
+        return this.equals((getAPIVersion_args)that);
+      return false;
+    }
+
+    public boolean equals(getAPIVersion_args that) {
+      if (that == null)
+        return false;
+
+      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;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_authzToken = true && (isSetAuthzToken());
+      list.add(present_authzToken);
+      if (present_authzToken)
+        list.add(authzToken);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(getAPIVersion_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = 
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;
+        }
+      }
+      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 {
+      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("getAPIVersion_args(");
+      boolean first = true;
+
+      sb.append("authzToken:");
+      if (this.authzToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.authzToken);
+      }
+      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());
+      }
+      // 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, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getAPIVersion_argsStandardSchemeFactory implements 
SchemeFactory {
+      public getAPIVersion_argsStandardScheme getScheme() {
+        return new getAPIVersion_argsStandardScheme();
+      }
+    }
+
+    private static class getAPIVersion_argsStandardScheme extends 
StandardScheme<getAPIVersion_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            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;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked 
in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.authzToken != null) {
+          oprot.writeFieldBegin(AUTHZ_TOKEN_FIELD_DESC);
+          struct.authzToken.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getAPIVersion_argsTupleSchemeFactory implements 
SchemeFactory {
+      public getAPIVersion_argsTupleScheme getScheme() {
+        return new getAPIVersion_argsTupleScheme();
+      }
+    }
+
+    private static class getAPIVersion_argsTupleScheme extends 
TupleScheme<getAPIVersion_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        struct.authzToken.write(oprot);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        struct.authzToken = new 
org.apache.airavata.model.security.AuthzToken();
+        struct.authzToken.read(iprot);
+        struct.setAuthzTokenIsSet(true);
+      }
+    }
+
+  }
+
+  public static class getAPIVersion_result implements 
org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, 
java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("getAPIVersion_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC 
= new org.apache.thrift.protocol.TField("success", 
org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField 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 ACE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("ace", 
org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    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)3);
+    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)4);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes 
= new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new 
getAPIVersion_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new 
getAPIVersion_resultTupleSchemeFactory());
+    }
+
+    public String success; // required
+    public org.apache.airavata.model.error.InvalidRequestException ire; // 
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"),
+      ACE((short)2, "ace"),
+      ASE((short)3, "ase"),
+      AE((short)4, "ae");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
+
+      static {
+        for (_Fields field : 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: // ACE
+            return ACE;
+          case 3: // ASE
+            return ASE;
+          case 4: // 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 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(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.ACE, new 
org.apache.thrift.meta_data.FieldMetaData("ace", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.ASE, new 
org.apache.thrift.meta_data.FieldMetaData("ase", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      tmpMap.put(_Fields.AE, new 
org.apache.thrift.meta_data.FieldMetaData("ae", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_result.class,
 metaDataMap);
+    }
+
+    public getAPIVersion_result() {
+    }
+
+    public getAPIVersion_result(
+      String success,
+      org.apache.airavata.model.error.InvalidRequestException ire,
+      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;
+      this.ire = ire;
+      this.ace = ace;
+      this.ase = ase;
+      this.ae = ae;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getAPIVersion_result(getAPIVersion_result other) {
+      if (other.isSetSuccess()) {
+        this.success = other.success;
+      }
+      if (other.isSetIre()) {
+        this.ire = new 
org.apache.airavata.model.error.InvalidRequestException(other.ire);
+      }
+      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 getAPIVersion_result deepCopy() {
+      return new getAPIVersion_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.ire = null;
+      this.ace = null;
+      this.ase = null;
+      this.ae = null;
+    }
+
+    public String getSuccess() {
+      return this.success;
+    }
+
+    public getAPIVersion_result setSuccess(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 getAPIVersion_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.AiravataClientException getAce() {
+      return this.ace;
+    }
+
+    public getAPIVersion_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 getAPIVersion_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 getAPIVersion_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, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((String)value);
+        }
+        break;
+
+      case IRE:
+        if (value == null) {
+          unsetIre();
+        } else {
+          
setIre((org.apache.airavata.model.error.InvalidRequestException)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 Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case IRE:
+        return getIre();
+
+      case ACE:
+        return getAce();
+
+      case ASE:
+        return getAse();
+
+      case AE:
+        return getAe();
+
+      }
+      throw new 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 IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case IRE:
+        return isSetIre();
+      case ACE:
+        return isSetAce();
+      case ASE:
+        return isSetAse();
+      case AE:
+        return isSetAe();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getAPIVersion_result)
+        return this.equals((getAPIVersion_result)that);
+      return false;
+    }
+
+    public boolean equals(getAPIVersion_result that) {
+      if (that == null)
+        return false;
+
+      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) {
+        if (!(this_present_ire && that_present_ire))
+          return false;
+        if (!this.ire.equals(that.ire))
+          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() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_success = true && (isSetSuccess());
+      list.add(present_success);
+      if (present_success)
+        list.add(success);
+
+      boolean present_ire = true && (isSetIre());
+      list.add(present_ire);
+      if (present_ire)
+        list.add(ire);
+
+      boolean present_ace = true && (isSetAce());
+      list.add(present_ace);
+      if (present_ace)
+        list.add(ace);
+
+      boolean present_ase = true && (isSetAse());
+      list.add(present_ase);
+      if (present_ase)
+        list.add(ase);
+
+      boolean present_ae = true && (isSetAe());
+      list.add(present_ae);
+      if (present_ae)
+        list.add(ae);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(getAPIVersion_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = 
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 = 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 = 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 = 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 = 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 {
+      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("getAPIVersion_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");
+      } else {
+        sb.append(this.ire);
+      }
+      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, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class getAPIVersion_resultStandardSchemeFactory implements 
SchemeFactory {
+      public getAPIVersion_resultStandardScheme getScheme() {
+        return new getAPIVersion_resultStandardScheme();
+      }
+    }
+
+    private static class getAPIVersion_resultStandardScheme extends 
StandardScheme<getAPIVersion_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, 
getAPIVersion_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) 
{
+                struct.success = iprot.readString();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+              }
+              break;
+            case 1: // 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: // 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 3: // 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 4: // 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, 
getAPIVersion_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeString(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ire != null) {
+          oprot.writeFieldBegin(IRE_FIELD_DESC);
+          struct.ire.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 getAPIVersion_resultTupleSchemeFactory implements 
SchemeFactory {
+      public getAPIVersion_resultTupleScheme getScheme() {
+        return new getAPIVersion_resultTupleScheme();
+      }
+    }
+
+    private static class getAPIVersion_resultTupleScheme extends 
TupleScheme<getAPIVersion_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, 
getAPIVersion_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetIre()) {
+          optionals.set(1);
+        }
+        if (struct.isSetAce()) {
+          optionals.set(2);
+        }
+        if (struct.isSetAse()) {
+          optionals.set(3);
+        }
+        if (struct.isSetAe()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetSuccess()) {
+          oprot.writeString(struct.success);
+        }
+        if (struct.isSetIre()) {
+          struct.ire.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, 
getAPIVersion_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(5);
+        if (incoming.get(0)) {
+          struct.success = iprot.readString();
+          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.ace = new 
org.apache.airavata.model.error.AiravataClientException();
+          struct.ace.read(iprot);
+          struct.setAceIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.ase = new 
org.apache.airavata.model.error.AiravataSystemException();
+          struct.ase.read(iprot);
+          struct.setAseIsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.ae = new 
org.apache.airavata.model.error.AuthorizationException();
+          struct.ae.read(iprot);
+          struct.setAeIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class isUserExists_args implements 
org.apache.thrift.TBase<isUserExists_args, isUserExists_args._Fields>, 
java.io.Serializable, Cloneable, Comparable<isUserExists_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("isUserExists_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 
GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField 
USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes 
= new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new 
isUserExists_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new 
isUserExists_argsTupleSchemeFactory());
+    }
+
+    public org.apache.airavata.model.security.AuthzToken authzToken; // 
required
+    public String gatewayId; // required
+    public String userName; // 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"),
+      GATEWAY_ID((short)2, "gatewayId"),
+      USER_NAME((short)3, "userName");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
+
+      static {
+        for (_Fields field : 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: // GATEWAY_ID
+            return GATEWAY_ID;
+          case 3: // USER_NAME
+            return USER_NAME;
+          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 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(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
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.GATEWAY_ID, new 
org.apache.thrift.meta_data.FieldMetaData("gatewayId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.USER_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("userName", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isUserExists_args.class,
 metaDataMap);
     }
 
-    public getAPIVersion_args() {
+    public isUserExists_args() {
     }
 
-    public getAPIVersion_args(
-      org.apache.airavata.model.security.AuthzToken authzToken)
+    public isUserExists_args(
+      org.apache.airavata.model.security.AuthzToken authzToken,
+      String gatewayId,
+      String userName)
     {
       this();
       this.authzToken = authzToken;
+      this.gatewayId = gatewayId;
+      this.userName = userName;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getAPIVersion_args(getAPIVersion_args other) {
+    public isUserExists_args(isUserExists_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new 
org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
     }
 
-    public getAPIVersion_args deepCopy() {
-      return new getAPIVersion_args(this);
+    public isUserExists_args deepCopy() {
+      return new isUserExists_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
+      this.gatewayId = null;
+      this.userName = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public getAPIVersion_args 
setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public isUserExists_args 
setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -33503,6 +34906,54 @@ public class Airavata {
       }
     }
 
+    public String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public isUserExists_args setGatewayId(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 String getUserName() {
+      return this.userName;
+    }
+
+    public isUserExists_args setUserName(String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and 
false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case AUTHZ_TOKEN:
@@ -33513,6 +34964,22 @@ public class Airavata {
         }
         break;
 
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((String)value);
+        }
+        break;
+
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((String)value);
+        }
+        break;
+
       }
     }
 
@@ -33521,6 +34988,12 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
+      case GATEWAY_ID:
+        return getGatewayId();
+
+      case USER_NAME:
+        return getUserName();
+
       }
       throw new IllegalStateException();
     }
@@ -33534,6 +35007,10 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
+      case GATEWAY_ID:
+        return isSetGatewayId();
+      case USER_NAME:
+        return isSetUserName();
       }
       throw new IllegalStateException();
     }
@@ -33542,12 +35019,12 @@ public class Airavata {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof getAPIVersion_args)
-        return this.equals((getAPIVersion_args)that);
+      if (that instanceof isUserExists_args)
+        return this.equals((isUserExists_args)that);
       return false;
     }
 
-    public boolean equals(getAPIVersion_args that) {
+    public boolean equals(isUserExists_args that) {
       if (that == null)
         return false;
 
@@ -33560,6 +35037,24 @@ 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;
+      }
+
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
       return true;
     }
 
@@ -33572,11 +35067,21 @@ public class Airavata {
       if (present_authzToken)
         list.add(authzToken);
 
+      boolean present_gatewayId = true && (isSetGatewayId());
+      list.add(present_gatewayId);
+      if (present_gatewayId)
+        list.add(gatewayId);
+
+      boolean present_userName = true && (isSetUserName());
+      list.add(present_userName);
+      if (present_userName)
+        list.add(userName);
+
       return list.hashCode();
     }
 
     @Override
-    public int compareTo(getAPIVersion_args other) {
+    public int compareTo(isUserExists_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -33593,6 +35098,26 @@ public class Airavata {
           return lastComparison;
         }
       }
+      lastComparison = 
Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayId()) {
+        lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = 
Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -33610,7 +35135,7 @@ public class Airavata {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("getAPIVersion_args(");
+      StringBuilder sb = new StringBuilder("isUserExists_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -33620,6 +35145,22 @@ public class Airavata {
         sb.append(this.authzToken);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -33629,6 +35170,12 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required 
field 'authzToken' was not present! Struct: " + toString());
       }
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required 
field 'gatewayId' was not present! Struct: " + toString());
+      }
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required 
field 'userName' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -33651,15 +35198,15 @@ public class Airavata {
       }
     }
 
-    private static class getAPIVersion_argsStandardSchemeFactory implements 
SchemeFactory {
-      public getAPIVersion_argsStandardScheme getScheme() {
-        return new getAPIVersion_argsStandardScheme();
+    private static class isUserExists_argsStandardSchemeFactory implements 
SchemeFactory {
+      public isUserExists_argsStandardScheme getScheme() {
+        return new isUserExists_argsStandardScheme();
       }
     }
 
-    private static class getAPIVersion_argsStandardScheme extends 
StandardScheme<getAPIVersion_args> {
+    private static class isUserExists_argsStandardScheme extends 
StandardScheme<isUserExists_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, 
isUserExists_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -33678,6 +35225,22 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
               }
               break;
+            case 2: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) 
{
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+              }
+              break;
+            case 3: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) 
{
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
           }
@@ -33689,7 +35252,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, 
isUserExists_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -33698,41 +35261,57 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class getAPIVersion_argsTupleSchemeFactory implements 
SchemeFactory {
-      public getAPIVersion_argsTupleScheme getScheme() {
-        return new getAPIVersion_argsTupleScheme();
+    private static class isUserExists_argsTupleSchemeFactory implements 
SchemeFactory {
+      public isUserExists_argsTupleScheme getScheme() {
+        return new isUserExists_argsTupleScheme();
       }
     }
 
-    private static class getAPIVersion_argsTupleScheme extends 
TupleScheme<getAPIVersion_args> {
+    private static class isUserExists_argsTupleScheme extends 
TupleScheme<isUserExists_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, 
isUserExists_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         struct.authzToken.write(oprot);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeString(struct.userName);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, 
getAPIVersion_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, 
isUserExists_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         struct.authzToken = new 
org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
       }
     }
 
   }
 
-  public static class getAPIVersion_result implements 
org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, 
java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("getAPIVersion_result");
+  public static class isUserExists_result implements 
org.apache.thrift.TBase<isUserExists_result, isUserExists_result._Fields>, 
java.io.Serializable, Cloneable, Comparable<isUserExists_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("isUserExists_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 SUCCESS_FIELD_DESC 
= new org.a

<TRUNCATED>

Reply via email to