You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2014/02/07 17:30:53 UTC

[12/13] Moving Airavata-API to top level as discussed in - http://markmail.org/thread/73wntnqlvy6konir

http://git-wip-us.apache.org/repos/asf/airavata/blob/3070c3d9/airavata-api/datamodel/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/datamodel/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/datamodel/src/main/java/org/apache/airavata/api/Airavata.java
new file mode 100644
index 0000000..c9cfdb8
--- /dev/null
+++ b/airavata-api/datamodel/src/main/java/org/apache/airavata/api/Airavata.java
@@ -0,0 +1,11622 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.api;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Airavata {
+
+    public interface Iface {
+
+        /**
+         * Query Airavata to fetch the API version
+         */
+        public String GetAPIVersion() throws org.apache.thrift.TException;
+
+        /**
+         * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
+         *   but inferred from the authentication header. This experiment is just a persistent place holder. The client
+         *   has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
+         *   registering the experiment in a persistent store.
+         *
+         * @param basicExperimentMetadata
+         *    The create experiment will require the basic experiment metadata like the name and description, intended user,
+         *      the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment
+         *      the ExperimentMetadata is a required field.
+         *
+         * @return
+         *   The server-side generated airavata experiment globally unique identifier.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.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.api.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 basicExperimentMetadata
+         */
+        public String createExperiment(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Fetch previously created experiment metadata.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @return experimentMetada
+         *   This method will return the previously stored experiment metadata.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         */
+        public org.apache.airavata.model.experiment.BasicMetadata getBasicExperimentMetadata(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Configure a previously created experiment with required inputs, scheduling and other quality of service
+         *   parameters. This method only updates the experiment object within the registry. The experiment has to be launched
+         *   to make it actionable by the server.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @param experimentConfigurationData
+         *    The configuration information of the experiment with application input parameters, computational resource scheduling
+         *      information, special input output handling and additional quality of service parameters.
+         *
+         * @return
+         *   This method call does not have a return value.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         * @param experimentConfigurationData
+         */
+        public void configureExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Fetch the previously configured experiment configuration information.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @return
+         *   This method returns the previously configured experiment configuration data.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         */
+        public org.apache.airavata.model.experiment.ConfigurationData getExperimentConfiguration(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
+         *   notifications and intermediate and output data will be subsequently available for this experiment.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @param airavataCredStoreToken:
+         *   A requirement to execute experiments within Airavata is to first register the targeted remote computational account
+         *     credentials with Airavata Credential Store. The administrative API (related to credential store) will return a
+         *     generated token associated with the registered credentials. The client has to security posses this token id and is
+         *     required to pass it to Airavata Server for all execution requests.
+         *   Note: At this point only the credential store token is required so the string is directly passed here. In future if
+         *     if more security credentials are enables, then the structure ExecutionSecurityParameters should be used.
+         *   Note: This parameter is not persisted within Airavata Registry for security reasons.
+         *
+         * @return
+         *   This method call does not have a return value.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         * @param airavataCredStoreToken
+         */
+        public void launchConfiguredExperiment(String airavataExperimentId, String airavataCredStoreToken) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Configure and Launch a previously created experiment with required inputs, scheduling, security and other quality of service
+         *   parameters. This method also launches the experiment after it is configured. If you would like to configure only
+         *   and launch at a later time or partially configure then ConfigureExperiment should be used.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @param experimentConfigurationData
+         *    The configuration information of the experiment with application input parameters, computational resource scheduling
+         *      information, special input output handling and additional quality of service parameters.
+         *
+         * @param airavataCredStoreToken:
+         *   A requirement to execute experiments within Airavata is to first register the targeted remote computational account
+         *     credentials with Airavata Credential Store. The administrative API (related to credential store) will return a
+         *     generated token associated with the registered credentials. The client has to security posses this token id and is
+         *     required to pass it to Airavata Server for all execution requests.
+         *   Note: At this point only the credential store token is required so the string is directly passed here. In future if
+         *     if more security credentials are enables, then the structure ExecutionSecurityParameters should be used.
+         *
+         * @return
+         *   The server-side generated experiment GUID.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         * @param experimentConfigurationData
+         * @param airavataCredStoreToken
+         */
+        public String configureAndLaunchExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata.
+         *   The client has to subsequently update this configuration if needed and launch the cloned experiment.
+         *
+         * @param airavataExperimentIdToBeCloned
+         *    This is the experiment identifier that is to be cloned.
+         *
+         * @param basicExperimentMetadata
+         *    Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
+         *      the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
+         *      should be shared public by default.
+         *
+         * @return
+         *   The server-side generated airavata experiment globally unique identifier for the newly cloned experiment.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentIdToBeCloned
+         * @param basicExperimentMetadata
+         */
+        public String cloneExperimentConfiguration(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+        /**
+         * Terminate a running experiment.
+         *
+         * @param airavataExperimentId
+         *    The identifier for the requested experiment. This is returned during the create experiment step.
+         *
+         * @return
+         *   This method call does not have a return value.
+         *
+         * @throws org.apache.airavata.api.error.InvalidRequestException
+         *    For any incorrect forming of the request itself.
+         *
+         * @throws org.apache.airavata.api.error.ExperimentNotFoundException
+         *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+         *
+         * @throws org.apache.airavata.api.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.api.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 airavataExperimentId
+         */
+        public void terminateExperiment(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+
+    }
+
+    public interface AsyncIface {
+
+        public void GetAPIVersion(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void createExperiment(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void getBasicExperimentMetadata(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void configureExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void getExperimentConfiguration(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void launchConfiguredExperiment(String airavataExperimentId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void configureAndLaunchExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void cloneExperimentConfiguration(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+        public void terminateExperiment(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    }
+
+    public static class Client extends org.apache.thrift.TServiceClient implements Iface {
+        public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
+            public Factory() {}
+            public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
+                return new Client(prot);
+            }
+            public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+                return new Client(iprot, oprot);
+            }
+        }
+
+        public Client(org.apache.thrift.protocol.TProtocol prot)
+        {
+            super(prot, prot);
+        }
+
+        public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+            super(iprot, oprot);
+        }
+
+        public String GetAPIVersion() throws org.apache.thrift.TException
+        {
+            send_GetAPIVersion();
+            return recv_GetAPIVersion();
+        }
+
+        public void send_GetAPIVersion() throws org.apache.thrift.TException
+        {
+            GetAPIVersion_args args = new GetAPIVersion_args();
+            sendBase("GetAPIVersion", args);
+        }
+
+        public String recv_GetAPIVersion() throws org.apache.thrift.TException
+        {
+            GetAPIVersion_result result = new GetAPIVersion_result();
+            receiveBase(result, "GetAPIVersion");
+            if (result.isSetSuccess()) {
+                return result.success;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "GetAPIVersion failed: unknown result");
+        }
+
+        public String createExperiment(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_createExperiment(basicExperimentMetadata);
+            return recv_createExperiment();
+        }
+
+        public void send_createExperiment(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.thrift.TException
+        {
+            createExperiment_args args = new createExperiment_args();
+            args.setBasicExperimentMetadata(basicExperimentMetadata);
+            sendBase("createExperiment", args);
+        }
+
+        public String recv_createExperiment() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            createExperiment_result result = new createExperiment_result();
+            receiveBase(result, "createExperiment");
+            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;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createExperiment failed: unknown result");
+        }
+
+        public org.apache.airavata.model.experiment.BasicMetadata getBasicExperimentMetadata(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_getBasicExperimentMetadata(airavataExperimentId);
+            return recv_getBasicExperimentMetadata();
+        }
+
+        public void send_getBasicExperimentMetadata(String airavataExperimentId) throws org.apache.thrift.TException
+        {
+            getBasicExperimentMetadata_args args = new getBasicExperimentMetadata_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            sendBase("getBasicExperimentMetadata", args);
+        }
+
+        public org.apache.airavata.model.experiment.BasicMetadata recv_getBasicExperimentMetadata() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            getBasicExperimentMetadata_result result = new getBasicExperimentMetadata_result();
+            receiveBase(result, "getBasicExperimentMetadata");
+            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;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getBasicExperimentMetadata failed: unknown result");
+        }
+
+        public void configureExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_configureExperiment(airavataExperimentId, experimentConfigurationData);
+            recv_configureExperiment();
+        }
+
+        public void send_configureExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData) throws org.apache.thrift.TException
+        {
+            configureExperiment_args args = new configureExperiment_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            args.setExperimentConfigurationData(experimentConfigurationData);
+            sendBase("configureExperiment", args);
+        }
+
+        public void recv_configureExperiment() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            configureExperiment_result result = new configureExperiment_result();
+            receiveBase(result, "configureExperiment");
+            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;
+            }
+            return;
+        }
+
+        public org.apache.airavata.model.experiment.ConfigurationData getExperimentConfiguration(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_getExperimentConfiguration(airavataExperimentId);
+            return recv_getExperimentConfiguration();
+        }
+
+        public void send_getExperimentConfiguration(String airavataExperimentId) throws org.apache.thrift.TException
+        {
+            getExperimentConfiguration_args args = new getExperimentConfiguration_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            sendBase("getExperimentConfiguration", args);
+        }
+
+        public org.apache.airavata.model.experiment.ConfigurationData recv_getExperimentConfiguration() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            getExperimentConfiguration_result result = new getExperimentConfiguration_result();
+            receiveBase(result, "getExperimentConfiguration");
+            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;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getExperimentConfiguration failed: unknown result");
+        }
+
+        public void launchConfiguredExperiment(String airavataExperimentId, String airavataCredStoreToken) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_launchConfiguredExperiment(airavataExperimentId, airavataCredStoreToken);
+            recv_launchConfiguredExperiment();
+        }
+
+        public void send_launchConfiguredExperiment(String airavataExperimentId, String airavataCredStoreToken) throws org.apache.thrift.TException
+        {
+            launchConfiguredExperiment_args args = new launchConfiguredExperiment_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            args.setAiravataCredStoreToken(airavataCredStoreToken);
+            sendBase("launchConfiguredExperiment", args);
+        }
+
+        public void recv_launchConfiguredExperiment() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            launchConfiguredExperiment_result result = new launchConfiguredExperiment_result();
+            receiveBase(result, "launchConfiguredExperiment");
+            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;
+            }
+            return;
+        }
+
+        public String configureAndLaunchExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_configureAndLaunchExperiment(airavataExperimentId, experimentConfigurationData, airavataCredStoreToken);
+            return recv_configureAndLaunchExperiment();
+        }
+
+        public void send_configureAndLaunchExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken) throws org.apache.thrift.TException
+        {
+            configureAndLaunchExperiment_args args = new configureAndLaunchExperiment_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            args.setExperimentConfigurationData(experimentConfigurationData);
+            args.setAiravataCredStoreToken(airavataCredStoreToken);
+            sendBase("configureAndLaunchExperiment", args);
+        }
+
+        public String recv_configureAndLaunchExperiment() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            configureAndLaunchExperiment_result result = new configureAndLaunchExperiment_result();
+            receiveBase(result, "configureAndLaunchExperiment");
+            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;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "configureAndLaunchExperiment failed: unknown result");
+        }
+
+        public String cloneExperimentConfiguration(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_cloneExperimentConfiguration(airavataExperimentIdToBeCloned, basicExperimentMetadata);
+            return recv_cloneExperimentConfiguration();
+        }
+
+        public void send_cloneExperimentConfiguration(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata) throws org.apache.thrift.TException
+        {
+            cloneExperimentConfiguration_args args = new cloneExperimentConfiguration_args();
+            args.setAiravataExperimentIdToBeCloned(airavataExperimentIdToBeCloned);
+            args.setBasicExperimentMetadata(basicExperimentMetadata);
+            sendBase("cloneExperimentConfiguration", args);
+        }
+
+        public String recv_cloneExperimentConfiguration() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            cloneExperimentConfiguration_result result = new cloneExperimentConfiguration_result();
+            receiveBase(result, "cloneExperimentConfiguration");
+            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;
+            }
+            throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "cloneExperimentConfiguration failed: unknown result");
+        }
+
+        public void terminateExperiment(String airavataExperimentId) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            send_terminateExperiment(airavataExperimentId);
+            recv_terminateExperiment();
+        }
+
+        public void send_terminateExperiment(String airavataExperimentId) throws org.apache.thrift.TException
+        {
+            terminateExperiment_args args = new terminateExperiment_args();
+            args.setAiravataExperimentId(airavataExperimentId);
+            sendBase("terminateExperiment", args);
+        }
+
+        public void recv_terminateExperiment() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+        {
+            terminateExperiment_result result = new terminateExperiment_result();
+            receiveBase(result, "terminateExperiment");
+            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;
+            }
+            return;
+        }
+
+    }
+    public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
+        public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
+            private org.apache.thrift.async.TAsyncClientManager clientManager;
+            private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
+            public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
+                this.clientManager = clientManager;
+                this.protocolFactory = protocolFactory;
+            }
+            public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
+                return new AsyncClient(protocolFactory, clientManager, transport);
+            }
+        }
+
+        public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
+            super(protocolFactory, clientManager, transport);
+        }
+
+        public void GetAPIVersion(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            GetAPIVersion_call method_call = new GetAPIVersion_call(resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class GetAPIVersion_call extends org.apache.thrift.async.TAsyncMethodCall {
+            public GetAPIVersion_call(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);
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("GetAPIVersion", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                GetAPIVersion_args args = new GetAPIVersion_args();
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public String getResult() throws 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_GetAPIVersion();
+            }
+        }
+
+        public void createExperiment(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            createExperiment_call method_call = new createExperiment_call(basicExperimentMetadata, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class createExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata;
+            public createExperiment_call(org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, 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.basicExperimentMetadata = basicExperimentMetadata;
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                createExperiment_args args = new createExperiment_args();
+                args.setBasicExperimentMetadata(basicExperimentMetadata);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public String getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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_createExperiment();
+            }
+        }
+
+        public void getBasicExperimentMetadata(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            getBasicExperimentMetadata_call method_call = new getBasicExperimentMetadata_call(airavataExperimentId, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class getBasicExperimentMetadata_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            public getBasicExperimentMetadata_call(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.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("getBasicExperimentMetadata", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                getBasicExperimentMetadata_args args = new getBasicExperimentMetadata_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public org.apache.airavata.model.experiment.BasicMetadata getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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_getBasicExperimentMetadata();
+            }
+        }
+
+        public void configureExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            configureExperiment_call method_call = new configureExperiment_call(airavataExperimentId, experimentConfigurationData, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class configureExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            private org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData;
+            public configureExperiment_call(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, 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.airavataExperimentId = airavataExperimentId;
+                this.experimentConfigurationData = experimentConfigurationData;
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("configureExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                configureExperiment_args args = new configureExperiment_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.setExperimentConfigurationData(experimentConfigurationData);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public void getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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);
+                (new Client(prot)).recv_configureExperiment();
+            }
+        }
+
+        public void getExperimentConfiguration(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            getExperimentConfiguration_call method_call = new getExperimentConfiguration_call(airavataExperimentId, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class getExperimentConfiguration_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            public getExperimentConfiguration_call(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.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("getExperimentConfiguration", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                getExperimentConfiguration_args args = new getExperimentConfiguration_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public org.apache.airavata.model.experiment.ConfigurationData getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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_getExperimentConfiguration();
+            }
+        }
+
+        public void launchConfiguredExperiment(String airavataExperimentId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            launchConfiguredExperiment_call method_call = new launchConfiguredExperiment_call(airavataExperimentId, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class launchConfiguredExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            private String airavataCredStoreToken;
+            public launchConfiguredExperiment_call(String airavataExperimentId, String airavataCredStoreToken, 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.airavataExperimentId = airavataExperimentId;
+                this.airavataCredStoreToken = airavataCredStoreToken;
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("launchConfiguredExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                launchConfiguredExperiment_args args = new launchConfiguredExperiment_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.setAiravataCredStoreToken(airavataCredStoreToken);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public void getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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);
+                (new Client(prot)).recv_launchConfiguredExperiment();
+            }
+        }
+
+        public void configureAndLaunchExperiment(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            configureAndLaunchExperiment_call method_call = new configureAndLaunchExperiment_call(airavataExperimentId, experimentConfigurationData, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class configureAndLaunchExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            private org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData;
+            private String airavataCredStoreToken;
+            public configureAndLaunchExperiment_call(String airavataExperimentId, org.apache.airavata.model.experiment.ConfigurationData experimentConfigurationData, String airavataCredStoreToken, 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.airavataExperimentId = airavataExperimentId;
+                this.experimentConfigurationData = experimentConfigurationData;
+                this.airavataCredStoreToken = airavataCredStoreToken;
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("configureAndLaunchExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                configureAndLaunchExperiment_args args = new configureAndLaunchExperiment_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.setExperimentConfigurationData(experimentConfigurationData);
+                args.setAiravataCredStoreToken(airavataCredStoreToken);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public String getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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_configureAndLaunchExperiment();
+            }
+        }
+
+        public void cloneExperimentConfiguration(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            cloneExperimentConfiguration_call method_call = new cloneExperimentConfiguration_call(airavataExperimentIdToBeCloned, basicExperimentMetadata, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class cloneExperimentConfiguration_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentIdToBeCloned;
+            private org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata;
+            public cloneExperimentConfiguration_call(String airavataExperimentIdToBeCloned, org.apache.airavata.model.experiment.BasicMetadata basicExperimentMetadata, 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.airavataExperimentIdToBeCloned = airavataExperimentIdToBeCloned;
+                this.basicExperimentMetadata = basicExperimentMetadata;
+            }
+
+            public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+                prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cloneExperimentConfiguration", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                cloneExperimentConfiguration_args args = new cloneExperimentConfiguration_args();
+                args.setAiravataExperimentIdToBeCloned(airavataExperimentIdToBeCloned);
+                args.setBasicExperimentMetadata(basicExperimentMetadata);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public String getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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_cloneExperimentConfiguration();
+            }
+        }
+
+        public void terminateExperiment(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+            checkReady();
+            terminateExperiment_call method_call = new terminateExperiment_call(airavataExperimentId, resultHandler, this, ___protocolFactory, ___transport);
+            this.___currentMethod = method_call;
+            ___manager.call(method_call);
+        }
+
+        public static class terminateExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
+            private String airavataExperimentId;
+            public terminateExperiment_call(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.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("terminateExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
+                terminateExperiment_args args = new terminateExperiment_args();
+                args.setAiravataExperimentId(airavataExperimentId);
+                args.write(prot);
+                prot.writeMessageEnd();
+            }
+
+            public void getResult() throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, 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);
+                (new Client(prot)).recv_terminateExperiment();
+            }
+        }
+
+    }
+
+    public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
+        private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName());
+        public Processor(I iface) {
+            super(iface, getProcessMap(new HashMap<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
+        }
+
+        protected Processor(I iface, Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
+            super(iface, getProcessMap(processMap));
+        }
+
+        private static <I extends Iface> Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> getProcessMap(Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
+            processMap.put("GetAPIVersion", new GetAPIVersion());
+            processMap.put("createExperiment", new createExperiment());
+            processMap.put("getBasicExperimentMetadata", new getBasicExperimentMetadata());
+            processMap.put("configureExperiment", new configureExperiment());
+            processMap.put("getExperimentConfiguration", new getExperimentConfiguration());
+            processMap.put("launchConfiguredExperiment", new launchConfiguredExperiment());
+            processMap.put("configureAndLaunchExperiment", new configureAndLaunchExperiment());
+            processMap.put("cloneExperimentConfiguration", new cloneExperimentConfiguration());
+            processMap.put("terminateExperiment", new terminateExperiment());
+            return processMap;
+        }
+
+        public static class GetAPIVersion<I extends Iface> extends org.apache.thrift.ProcessFunction<I, GetAPIVersion_args> {
+            public GetAPIVersion() {
+                super("GetAPIVersion");
+            }
+
+            public GetAPIVersion_args getEmptyArgsInstance() {
+                return new GetAPIVersion_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public GetAPIVersion_result getResult(I iface, GetAPIVersion_args args) throws org.apache.thrift.TException {
+                GetAPIVersion_result result = new GetAPIVersion_result();
+                result.success = iface.GetAPIVersion();
+                return result;
+            }
+        }
+
+        public static class createExperiment<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createExperiment_args> {
+            public createExperiment() {
+                super("createExperiment");
+            }
+
+            public createExperiment_args getEmptyArgsInstance() {
+                return new createExperiment_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public createExperiment_result getResult(I iface, createExperiment_args args) throws org.apache.thrift.TException {
+                createExperiment_result result = new createExperiment_result();
+                try {
+                    result.success = iface.createExperiment(args.basicExperimentMetadata);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class getBasicExperimentMetadata<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getBasicExperimentMetadata_args> {
+            public getBasicExperimentMetadata() {
+                super("getBasicExperimentMetadata");
+            }
+
+            public getBasicExperimentMetadata_args getEmptyArgsInstance() {
+                return new getBasicExperimentMetadata_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public getBasicExperimentMetadata_result getResult(I iface, getBasicExperimentMetadata_args args) throws org.apache.thrift.TException {
+                getBasicExperimentMetadata_result result = new getBasicExperimentMetadata_result();
+                try {
+                    result.success = iface.getBasicExperimentMetadata(args.airavataExperimentId);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class configureExperiment<I extends Iface> extends org.apache.thrift.ProcessFunction<I, configureExperiment_args> {
+            public configureExperiment() {
+                super("configureExperiment");
+            }
+
+            public configureExperiment_args getEmptyArgsInstance() {
+                return new configureExperiment_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public configureExperiment_result getResult(I iface, configureExperiment_args args) throws org.apache.thrift.TException {
+                configureExperiment_result result = new configureExperiment_result();
+                try {
+                    iface.configureExperiment(args.airavataExperimentId, args.experimentConfigurationData);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class getExperimentConfiguration<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getExperimentConfiguration_args> {
+            public getExperimentConfiguration() {
+                super("getExperimentConfiguration");
+            }
+
+            public getExperimentConfiguration_args getEmptyArgsInstance() {
+                return new getExperimentConfiguration_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public getExperimentConfiguration_result getResult(I iface, getExperimentConfiguration_args args) throws org.apache.thrift.TException {
+                getExperimentConfiguration_result result = new getExperimentConfiguration_result();
+                try {
+                    result.success = iface.getExperimentConfiguration(args.airavataExperimentId);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class launchConfiguredExperiment<I extends Iface> extends org.apache.thrift.ProcessFunction<I, launchConfiguredExperiment_args> {
+            public launchConfiguredExperiment() {
+                super("launchConfiguredExperiment");
+            }
+
+            public launchConfiguredExperiment_args getEmptyArgsInstance() {
+                return new launchConfiguredExperiment_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public launchConfiguredExperiment_result getResult(I iface, launchConfiguredExperiment_args args) throws org.apache.thrift.TException {
+                launchConfiguredExperiment_result result = new launchConfiguredExperiment_result();
+                try {
+                    iface.launchConfiguredExperiment(args.airavataExperimentId, args.airavataCredStoreToken);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class configureAndLaunchExperiment<I extends Iface> extends org.apache.thrift.ProcessFunction<I, configureAndLaunchExperiment_args> {
+            public configureAndLaunchExperiment() {
+                super("configureAndLaunchExperiment");
+            }
+
+            public configureAndLaunchExperiment_args getEmptyArgsInstance() {
+                return new configureAndLaunchExperiment_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public configureAndLaunchExperiment_result getResult(I iface, configureAndLaunchExperiment_args args) throws org.apache.thrift.TException {
+                configureAndLaunchExperiment_result result = new configureAndLaunchExperiment_result();
+                try {
+                    result.success = iface.configureAndLaunchExperiment(args.airavataExperimentId, args.experimentConfigurationData, args.airavataCredStoreToken);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class cloneExperimentConfiguration<I extends Iface> extends org.apache.thrift.ProcessFunction<I, cloneExperimentConfiguration_args> {
+            public cloneExperimentConfiguration() {
+                super("cloneExperimentConfiguration");
+            }
+
+            public cloneExperimentConfiguration_args getEmptyArgsInstance() {
+                return new cloneExperimentConfiguration_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public cloneExperimentConfiguration_result getResult(I iface, cloneExperimentConfiguration_args args) throws org.apache.thrift.TException {
+                cloneExperimentConfiguration_result result = new cloneExperimentConfiguration_result();
+                try {
+                    result.success = iface.cloneExperimentConfiguration(args.airavataExperimentIdToBeCloned, args.basicExperimentMetadata);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+        public static class terminateExperiment<I extends Iface> extends org.apache.thrift.ProcessFunction<I, terminateExperiment_args> {
+            public terminateExperiment() {
+                super("terminateExperiment");
+            }
+
+            public terminateExperiment_args getEmptyArgsInstance() {
+                return new terminateExperiment_args();
+            }
+
+            protected boolean isOneway() {
+                return false;
+            }
+
+            public terminateExperiment_result getResult(I iface, terminateExperiment_args args) throws org.apache.thrift.TException {
+                terminateExperiment_result result = new terminateExperiment_result();
+                try {
+                    iface.terminateExperiment(args.airavataExperimentId);
+                } catch (org.apache.airavata.api.error.InvalidRequestException ire) {
+                    result.ire = ire;
+                } catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
+                    result.enf = enf;
+                } catch (org.apache.airavata.api.error.AiravataClientException ace) {
+                    result.ace = ace;
+                } catch (org.apache.airavata.api.error.AiravataSystemException ase) {
+                    result.ase = ase;
+                }
+                return result;
+            }
+        }
+
+    }
+
+    public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
+        private static final Logger LOGGER = LoggerFactory.getLogger(AsyncProcessor.class.getName());
+        public AsyncProcessor(I iface) {
+            super(iface, getProcessMap(new HashMap<String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>>()));
+        }
+
+        protected AsyncProcessor(I iface, Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
+            super(iface, getProcessMap(processMap));
+        }
+
+        private static <I extends AsyncIface> Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
+            processMap.put("GetAPIVersion", new GetAPIVersion());
+            processMap.put("createExperiment", new createExperiment());
+            processMap.put("getBasicExperimentMetadata", new getBasicExperimentMetadata());
+            processMap.put("configureExperiment", new configureExperiment());
+            processMap.put("getExperimentConfiguration", new getExperimentConfiguration());
+            processMap.put("launchConfiguredExperiment", new launchConfiguredExperiment());
+            processMap.put("configureAndLaunchExperiment", new configureAndLaunchExperiment());
+            processMap.put("cloneExperimentConfiguration", new cloneExperimentConfiguration());
+            processMap.put("terminateExperiment", new terminateExperiment());
+            return processMap;
+        }
+
+        public static class GetAPIVersion<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, GetAPIVersion_args, String> {
+            public GetAPIVersion() {
+                super("GetAPIVersion");
+            }
+
+            public GetAPIVersion_args getEmptyArgsInstance() {
+                return new GetAPIVersion_args();
+            }
+
+            public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+                final org.apache.thrift.AsyncProcessFunction fcall = this;
+                return new AsyncMethodCallback<String>() {
+                    public void onComplete(String o) {
+                        GetAPIVersion_result result = new GetAPIVersion_result();
+                        result.success = o;
+                        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;
+                        GetAPIVersion_result result = new GetAPIVersion_result();
+                        {
+                            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, GetAPIVersion_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+                iface.GetAPIVersion(resultHandler);
+            }
+        }
+
+        public static class createExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createExperiment_args, String> {
+            public createExperiment() {
+                super("createExperiment");
+            }
+
+            public createExperiment_args getEmptyArgsInstance() {
+                return new createExperiment_args();
+            }
+
+            public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+                final org.apache.thrift.AsyncProcessFunction fcall = this;
+                return new AsyncMethodCallback<String>() {
+                    public void onComplete(String o) {
+                        createExperiment_result result = new createExperiment_result();
+                        result.success = o;
+                        try 

<TRUNCATED>