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/07/06 05:04:21 UTC

[1/6] Updating the thrift files documenttaion - AIRAVATA-1228

Repository: airavata
Updated Branches:
  refs/heads/master fd5288a7b -> 08245f259


http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index b36c6a9..9fe5687 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,10 +68,11 @@ import org.slf4j.LoggerFactory;
 @SuppressWarnings("all") public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 
-  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManagerType", org.apache.thrift.protocol.TType.I32, (short)1);
-  private static final org.apache.thrift.protocol.TField PUSH_MONITORING_ENDPOINT_FIELD_DESC = new org.apache.thrift.protocol.TField("pushMonitoringEndpoint", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField JOB_MANAGER_BIN_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerBinPath", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField JOB_MANAGER_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerCommands", org.apache.thrift.protocol.TType.MAP, (short)4);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManagerId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManagerType", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PUSH_MONITORING_ENDPOINT_FIELD_DESC = new org.apache.thrift.protocol.TField("pushMonitoringEndpoint", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField JOB_MANAGER_BIN_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerBinPath", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField JOB_MANAGER_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerCommands", org.apache.thrift.protocol.TType.MAP, (short)5);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -79,6 +80,7 @@ import org.slf4j.LoggerFactory;
     schemes.put(TupleScheme.class, new ResourceJobManagerTupleSchemeFactory());
   }
 
+  private String resourceJobManagerId; // required
   private ResourceJobManagerType resourceJobManagerType; // required
   private String pushMonitoringEndpoint; // optional
   private String jobManagerBinPath; // optional
@@ -86,14 +88,15 @@ import org.slf4j.LoggerFactory;
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESOURCE_JOB_MANAGER_ID((short)1, "resourceJobManagerId"),
     /**
      * 
      * @see ResourceJobManagerType
      */
-    RESOURCE_JOB_MANAGER_TYPE((short)1, "resourceJobManagerType"),
-    PUSH_MONITORING_ENDPOINT((short)2, "pushMonitoringEndpoint"),
-    JOB_MANAGER_BIN_PATH((short)3, "jobManagerBinPath"),
-    JOB_MANAGER_COMMANDS((short)4, "jobManagerCommands");
+    RESOURCE_JOB_MANAGER_TYPE((short)2, "resourceJobManagerType"),
+    PUSH_MONITORING_ENDPOINT((short)3, "pushMonitoringEndpoint"),
+    JOB_MANAGER_BIN_PATH((short)4, "jobManagerBinPath"),
+    JOB_MANAGER_COMMANDS((short)5, "jobManagerCommands");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -108,13 +111,15 @@ import org.slf4j.LoggerFactory;
      */
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
-        case 1: // RESOURCE_JOB_MANAGER_TYPE
+        case 1: // RESOURCE_JOB_MANAGER_ID
+          return RESOURCE_JOB_MANAGER_ID;
+        case 2: // RESOURCE_JOB_MANAGER_TYPE
           return RESOURCE_JOB_MANAGER_TYPE;
-        case 2: // PUSH_MONITORING_ENDPOINT
+        case 3: // PUSH_MONITORING_ENDPOINT
           return PUSH_MONITORING_ENDPOINT;
-        case 3: // JOB_MANAGER_BIN_PATH
+        case 4: // JOB_MANAGER_BIN_PATH
           return JOB_MANAGER_BIN_PATH;
-        case 4: // JOB_MANAGER_COMMANDS
+        case 5: // JOB_MANAGER_COMMANDS
           return JOB_MANAGER_COMMANDS;
         default:
           return null;
@@ -160,6 +165,8 @@ import org.slf4j.LoggerFactory;
   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.RESOURCE_JOB_MANAGER_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManagerId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.RESOURCE_JOB_MANAGER_TYPE, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManagerType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManagerType.class)));
     tmpMap.put(_Fields.PUSH_MONITORING_ENDPOINT, new org.apache.thrift.meta_data.FieldMetaData("pushMonitoringEndpoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -175,12 +182,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ResourceJobManager() {
+    this.resourceJobManagerId = "DO_NOT_SET_AT_CLIENTS";
+
   }
 
   public ResourceJobManager(
+    String resourceJobManagerId,
     ResourceJobManagerType resourceJobManagerType)
   {
     this();
+    this.resourceJobManagerId = resourceJobManagerId;
     this.resourceJobManagerType = resourceJobManagerType;
   }
 
@@ -188,6 +199,9 @@ import org.slf4j.LoggerFactory;
    * Performs a deep copy on <i>other</i>.
    */
   public ResourceJobManager(ResourceJobManager other) {
+    if (other.isSetResourceJobManagerId()) {
+      this.resourceJobManagerId = other.resourceJobManagerId;
+    }
     if (other.isSetResourceJobManagerType()) {
       this.resourceJobManagerType = other.resourceJobManagerType;
     }
@@ -220,12 +234,37 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public void clear() {
+    this.resourceJobManagerId = "DO_NOT_SET_AT_CLIENTS";
+
     this.resourceJobManagerType = null;
     this.pushMonitoringEndpoint = null;
     this.jobManagerBinPath = null;
     this.jobManagerCommands = null;
   }
 
+  public String getResourceJobManagerId() {
+    return this.resourceJobManagerId;
+  }
+
+  public void setResourceJobManagerId(String resourceJobManagerId) {
+    this.resourceJobManagerId = resourceJobManagerId;
+  }
+
+  public void unsetResourceJobManagerId() {
+    this.resourceJobManagerId = null;
+  }
+
+  /** Returns true if field resourceJobManagerId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManagerId() {
+    return this.resourceJobManagerId != null;
+  }
+
+  public void setResourceJobManagerIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManagerId = null;
+    }
+  }
+
   /**
    * 
    * @see ResourceJobManagerType
@@ -339,6 +378,14 @@ import org.slf4j.LoggerFactory;
 
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
+    case RESOURCE_JOB_MANAGER_ID:
+      if (value == null) {
+        unsetResourceJobManagerId();
+      } else {
+        setResourceJobManagerId((String)value);
+      }
+      break;
+
     case RESOURCE_JOB_MANAGER_TYPE:
       if (value == null) {
         unsetResourceJobManagerType();
@@ -376,6 +423,9 @@ import org.slf4j.LoggerFactory;
 
   public Object getFieldValue(_Fields field) {
     switch (field) {
+    case RESOURCE_JOB_MANAGER_ID:
+      return getResourceJobManagerId();
+
     case RESOURCE_JOB_MANAGER_TYPE:
       return getResourceJobManagerType();
 
@@ -399,6 +449,8 @@ import org.slf4j.LoggerFactory;
     }
 
     switch (field) {
+    case RESOURCE_JOB_MANAGER_ID:
+      return isSetResourceJobManagerId();
     case RESOURCE_JOB_MANAGER_TYPE:
       return isSetResourceJobManagerType();
     case PUSH_MONITORING_ENDPOINT:
@@ -424,6 +476,15 @@ import org.slf4j.LoggerFactory;
     if (that == null)
       return false;
 
+    boolean this_present_resourceJobManagerId = true && this.isSetResourceJobManagerId();
+    boolean that_present_resourceJobManagerId = true && that.isSetResourceJobManagerId();
+    if (this_present_resourceJobManagerId || that_present_resourceJobManagerId) {
+      if (!(this_present_resourceJobManagerId && that_present_resourceJobManagerId))
+        return false;
+      if (!this.resourceJobManagerId.equals(that.resourceJobManagerId))
+        return false;
+    }
+
     boolean this_present_resourceJobManagerType = true && this.isSetResourceJobManagerType();
     boolean that_present_resourceJobManagerType = true && that.isSetResourceJobManagerType();
     if (this_present_resourceJobManagerType || that_present_resourceJobManagerType) {
@@ -476,6 +537,16 @@ import org.slf4j.LoggerFactory;
 
     int lastComparison = 0;
 
+    lastComparison = Boolean.valueOf(isSetResourceJobManagerId()).compareTo(other.isSetResourceJobManagerId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManagerId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManagerId, other.resourceJobManagerId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetResourceJobManagerType()).compareTo(other.isSetResourceJobManagerType());
     if (lastComparison != 0) {
       return lastComparison;
@@ -536,6 +607,14 @@ import org.slf4j.LoggerFactory;
     StringBuilder sb = new StringBuilder("ResourceJobManager(");
     boolean first = true;
 
+    sb.append("resourceJobManagerId:");
+    if (this.resourceJobManagerId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManagerId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
     sb.append("resourceJobManagerType:");
     if (this.resourceJobManagerType == null) {
       sb.append("null");
@@ -579,6 +658,10 @@ import org.slf4j.LoggerFactory;
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
+    if (!isSetResourceJobManagerId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManagerId' is unset! Struct:" + toString());
+    }
+
     if (!isSetResourceJobManagerType()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManagerType' is unset! Struct:" + toString());
     }
@@ -620,7 +703,15 @@ import org.slf4j.LoggerFactory;
           break;
         }
         switch (schemeField.id) {
-          case 1: // RESOURCE_JOB_MANAGER_TYPE
+          case 1: // RESOURCE_JOB_MANAGER_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceJobManagerId = iprot.readString();
+              struct.setResourceJobManagerIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_JOB_MANAGER_TYPE
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.resourceJobManagerType = ResourceJobManagerType.findByValue(iprot.readI32());
               struct.setResourceJobManagerTypeIsSet(true);
@@ -628,7 +719,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 2: // PUSH_MONITORING_ENDPOINT
+          case 3: // PUSH_MONITORING_ENDPOINT
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.pushMonitoringEndpoint = iprot.readString();
               struct.setPushMonitoringEndpointIsSet(true);
@@ -636,7 +727,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 3: // JOB_MANAGER_BIN_PATH
+          case 4: // JOB_MANAGER_BIN_PATH
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.jobManagerBinPath = iprot.readString();
               struct.setJobManagerBinPathIsSet(true);
@@ -644,7 +735,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // JOB_MANAGER_COMMANDS
+          case 5: // JOB_MANAGER_COMMANDS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
                 org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
@@ -677,6 +768,11 @@ import org.slf4j.LoggerFactory;
       struct.validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceJobManagerId != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_ID_FIELD_DESC);
+        oprot.writeString(struct.resourceJobManagerId);
+        oprot.writeFieldEnd();
+      }
       if (struct.resourceJobManagerType != null) {
         oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_TYPE_FIELD_DESC);
         oprot.writeI32(struct.resourceJobManagerType.getValue());
@@ -728,6 +824,7 @@ import org.slf4j.LoggerFactory;
     @Override
     public void write(org.apache.thrift.protocol.TProtocol prot, ResourceJobManager struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.resourceJobManagerId);
       oprot.writeI32(struct.resourceJobManagerType.getValue());
       BitSet optionals = new BitSet();
       if (struct.isSetPushMonitoringEndpoint()) {
@@ -761,6 +858,8 @@ import org.slf4j.LoggerFactory;
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, ResourceJobManager struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.resourceJobManagerId = iprot.readString();
+      struct.setResourceJobManagerIdIsSet(true);
       struct.resourceJobManagerType = ResourceJobManagerType.findByValue(iprot.readI32());
       struct.setResourceJobManagerTypeIsSet(true);
       BitSet incoming = iprot.readBitSet(3);

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 47375e3..31cab86 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -49,26 +49,30 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Resource Preferences for each of the gateway
+ * Gateway specific preferences for a Computer Resource
  * 
  * computeResourceId:
- *   Corelate the preference for compute resource to
+ *   Corelate the preference to a compute resource.
  * 
- * gatewayName:
- *   Name of the Gateway.
+ * overridebyAiravata:
+ *   If turned true, Airavata will override the preferences of better alternatives exist.
  * 
- * ipAddress:
- *   IP Addresse of the Hostname.
+ * preferredJobSubmissionProtocol:
+ *   For resources with multiple job submission protocols, the gateway can pick a preferred option.
  * 
- * resourceDescription:
- *  A user friendly description of the hostname.
+ * preferredDataMovementProtocol:
+ *   For resources with multiple data movement protocols, the gateway can pick a preferred option.
  * 
- * JobSubmissionProtocols:
- *  A computational resources may have one or more ways of submitting Jobs. This structure
- *  will hold all available mechanisms to interact with the resource.
+ * preferredBatchQueue:
+ *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
  * 
- * DataMovementProtocol:
- *  Option to specify a prefered data movement mechanism of the available options.
+ * scratchLocation:
+ *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+ * 
+ * allocationProjectNumber:
+ *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ *    account to be used has to be added to the allocation.
  * 
  */
 @SuppressWarnings("all") public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayProfile.java
index 791403e..04e5ec8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayProfile.java
@@ -49,26 +49,20 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Gateway Profile
+ * Gateway Resource Profile
  * 
  * gatewayID:
- *   Unique identifier for the gateway assigned by Airavata
+ *   Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
  * 
  * gatewayName:
  *   Name of the Gateway.
  * 
- * ipAddress:
- *   IP Addresse of the Hostname.
+ * gatewayDescription:
+ *  A user friendly description of the gateway.
  * 
- * resourceDescription:
- *  A user friendly description of the hostname.
+ * computeResourcePreferences:
+ *  List of resource preferences for each of the registered compute resources.
  * 
- * JobSubmissionProtocols:
- *  A computational resources may have one or more ways of submitting Jobs. This structure
- *  will hold all available mechanisms to interact with the resource.
- * 
- * DataMovementProtocol:
- *  Option to specify a prefered data movement mechanism of the available options.
  * 
  */
 @SuppressWarnings("all") public class GatewayProfile implements org.apache.thrift.TBase<GatewayProfile, GatewayProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayProfile> {

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 7e6c5b5..fff9bc8 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  *
- */
+*/
 
-/*
+/**
  * Application Programming Interface definition for Apache Airavata Services.
  *   this parent thrift file is contains all service interfaces. The data models are 
  *   described in respective thrift files.
@@ -40,7 +40,7 @@ namespace perl AiravataAPI
 namespace py airavata.api
 namespace js AiravataAPI
 
-/*
+/**
  * Airavata Interface Versions depend upon this Thrift Interface File. When Making changes, please edit the
  *  Version Constants according to Semantic Versioning Specification (SemVer) http://semver.org.
  *
@@ -52,16 +52,19 @@ namespace js AiravataAPI
  *  - Minor: Incremented for backward compatible changes. An example would be the addition of a new optional methods.
  *  - Patch: Incremented for bug fixes. The patch level should be increased for every edit that doesn't result
  *              in a change to major/minor version numbers.
+ *
 */
 const string AIRAVATA_API_VERSION = "0.12.0"
 
 service Airavata {
 
-/*
+/**
  * Apache Airavata API Service Methods. For data structures associated in the signatures, please see included thrift files
 */
 
-  /** Query Airavata to fetch the API version */
+  /**
+   * Fetch Apache Airavata API version
+  */
   string getAPIVersion()
         throws (1: airavataErrors.InvalidRequestException ire,
                 2: airavataErrors.AiravataClientException ace,
@@ -76,7 +79,7 @@ service Airavata {
               2: airavataErrors.AiravataClientException ace,
               3: airavataErrors.AiravataSystemException ase)
 
-/**
+  /**
    * Update a Project
    *
   */
@@ -540,7 +543,6 @@ service Airavata {
    * @return appModuleId
    *   Returns a server-side generated airavata appModule globally unique identifier.
    *
-   *
   */
   string registerApplicationModule(1: required applicationDeploymentModel.ApplicationModule applicationModule)
     	throws (1: airavataErrors.InvalidRequestException ire,
@@ -556,7 +558,6 @@ service Airavata {
    * @return applicationModule
    *   Returns a application Module Object.
    *
-   *
   */
   applicationDeploymentModel.ApplicationModule getApplicationModule(1: required string appModuleId)
       	throws (1: airavataErrors.InvalidRequestException ire,
@@ -575,7 +576,6 @@ service Airavata {
    * @return status
    *   Returns a success/failure of the update.
    *
-   *
   */
   bool updateApplicationModule(1: required string appModuleId,
             2: required applicationDeploymentModel.ApplicationModule applicationModule)
@@ -592,7 +592,6 @@ service Airavata {
    * @return status
    *   Returns a success/failure of the deletion.
    *
-   *
   */
   bool deleteApplicationModule(1: required string appModuleId)
          	throws (1: airavataErrors.InvalidRequestException ire,
@@ -613,7 +612,6 @@ service Airavata {
    * @return appDeploymentId
    *   Returns a server-side generated airavata appDeployment globally unique identifier.
    *
-   *
   */
   string registerApplicationDeployment(1: required applicationDeploymentModel.ApplicationDeploymentDescription applicationDeployment)
     	throws (1: airavataErrors.InvalidRequestException ire,
@@ -629,7 +627,6 @@ service Airavata {
    * @return applicationDeployment
    *   Returns a application Deployment Object.
    *
-   *
   */
   applicationDeploymentModel.ApplicationDeploymentDescription getApplicationDeployment(1: required string appDeploymentId)
       	throws (1: airavataErrors.InvalidRequestException ire,
@@ -648,7 +645,6 @@ service Airavata {
    * @return status
    *   Returns a success/failure of the update.
    *
-   *
   */
   bool updateApplicationDeployment(1: required string appDeploymentId,
             2: required applicationDeploymentModel.ApplicationDeploymentDescription applicationDeployment)
@@ -665,7 +661,6 @@ service Airavata {
    * @return status
    *   Returns a success/failure of the deletion.
    *
-   *
   */
   bool deleteApplicationDeployment(1: required string appDeploymentId)
          	throws (1: airavataErrors.InvalidRequestException ire,
@@ -701,7 +696,6 @@ service Airavata {
    * @return appInterfaceId
    *   Returns a server-side generated airavata application interface globally unique identifier.
    *
-   *
   */
   string registerApplicationInterface(1: required applicationInterfaceModel.ApplicationInterfaceDescription
                                             applicationInterface)
@@ -791,4 +785,77 @@ service Airavata {
                 2: airavataErrors.AiravataClientException ace,
                 3: airavataErrors.AiravataSystemException ase)
 
-}
\ No newline at end of file
+/*
+ * Compute Resource
+ *
+*/
+
+  /**
+   * Register a Compute Resource.
+   *
+   * @param computeResourceDescription
+   *    Compute Resource Object created from the datamodel.
+   *
+   * @return computeResourceId
+   *   Returns a server-side generated airavata compute resource globally unique identifier.
+   *
+  */
+  string registerComputeResource(1: required computeResourceModel.ComputeResourceDescription
+                                            computeResourceDescription)
+    	throws (1: airavataErrors.InvalidRequestException ire,
+              2: airavataErrors.AiravataClientException ace,
+              3: airavataErrors.AiravataSystemException ase)
+
+  /**
+   * Fetch the given Compute Resource.
+   *
+   * @param computeResourceId
+   *   The identifier for the requested compute resource
+   *
+   * @return computeResourceDescription
+   *    Compute Resource Object created from the datamodel..
+   *
+  */
+  computeResourceModel.ComputeResourceDescription getComputeResource(1: required string computeResourceId)
+      	throws (1: airavataErrors.InvalidRequestException ire,
+                2: airavataErrors.AiravataClientException ace,
+                3: airavataErrors.AiravataSystemException ase)
+
+  /**
+   * Update a Compute Resource.
+   *
+   * @param computeResourceId
+   *   The identifier for the requested compute resource to be updated.
+   *
+   * @param computeResourceDescription
+   *    Compute Resource Object created from the datamodel.
+   *
+   * @return status
+   *   Returns a success/failure of the update.
+   *
+  */
+  bool updateComputeResource(1: required string computeResourceId,
+            2: required computeResourceModel.ComputeResourceDescription computeResourceDescription)
+      	throws (1: airavataErrors.InvalidRequestException ire,
+                2: airavataErrors.AiravataClientException ace,
+                3: airavataErrors.AiravataSystemException ase)
+
+  /**
+   * Delete a Compute Resource.
+   *
+   * @param computeResourceId
+   *   The identifier for the requested compute resource to be deleted.
+   *
+   * @return status
+   *   Returns a success/failure of the deletion.
+   *
+  */
+  bool deleteComputeResource(1: required string computeResourceId)
+         	throws (1: airavataErrors.InvalidRequestException ire,
+                   2: airavataErrors.AiravataClientException ace,
+                   3: airavataErrors.AiravataSystemException ase)
+
+
+ //End of API
+ }
+


[5/6] Updating the thrift files documenttaion - AIRAVATA-1228

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/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 0a68fb1..cb774a2 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
@@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory;
   public interface Iface {
 
     /**
-     * Query Airavata to fetch the API version
+     * Fetch Apache Airavata API version
      */
     public String getAPIVersion() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
@@ -433,7 +433,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a server-side generated airavata appModule globally unique identifier.
      * 
      * 
-     * 
      * @param applicationModule
      */
     public String registerApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -448,7 +447,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a application Module Object.
      * 
      * 
-     * 
      * @param appModuleId
      */
     public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getApplicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -466,7 +464,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a success/failure of the update.
      * 
      * 
-     * 
      * @param appModuleId
      * @param applicationModule
      */
@@ -482,7 +479,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a success/failure of the deletion.
      * 
      * 
-     * 
      * @param appModuleId
      */
     public boolean deleteApplicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -497,7 +493,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a server-side generated airavata appDeployment globally unique identifier.
      * 
      * 
-     * 
      * @param applicationDeployment
      */
     public String registerApplicationDeployment(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -512,7 +507,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a application Deployment Object.
      * 
      * 
-     * 
      * @param appDeploymentId
      */
     public org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription getApplicationDeployment(String appDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -530,7 +524,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a success/failure of the update.
      * 
      * 
-     * 
      * @param appDeploymentId
      * @param applicationDeployment
      */
@@ -546,7 +539,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a success/failure of the deletion.
      * 
      * 
-     * 
      * @param appDeploymentId
      */
     public boolean deleteApplicationDeployment(String appDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -575,7 +567,6 @@ import org.slf4j.LoggerFactory;
      *   Returns a server-side generated airavata application interface globally unique identifier.
      * 
      * 
-     * 
      * @param applicationInterface
      */
     public String registerApplicationInterface(org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
@@ -657,6 +648,66 @@ import org.slf4j.LoggerFactory;
      */
     public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getApplicationOutputs(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
+    /**
+     * Register a Compute Resource.
+     * 
+     * @param computeResourceDescription
+     *    Compute Resource Object created from the datamodel.
+     * 
+     * @return computeResourceId
+     *   Returns a server-side generated airavata compute resource globally unique identifier.
+     * 
+     * 
+     * @param computeResourceDescription
+     */
+    public String registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Fetch the given Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource
+     * 
+     * @return computeResourceDescription
+     *    Compute Resource Object created from the datamodel..
+     * 
+     * 
+     * @param computeResourceId
+     */
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Update a Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource to be updated.
+     * 
+     * @param computeResourceDescription
+     *    Compute Resource Object created from the datamodel.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param computeResourceId
+     * @param computeResourceDescription
+     */
+    public boolean updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Delete a Compute Resource.
+     * 
+     * @param computeResourceId
+     *   The identifier for the requested compute resource to be deleted.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param computeResourceId
+     */
+    public boolean deleteComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
   }
 
   public interface AsyncIface {
@@ -739,6 +790,14 @@ import org.slf4j.LoggerFactory;
 
     public void getApplicationOutputs(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
   }
 
   public static class Client extends org.apache.thrift.TServiceClient implements Iface {
@@ -2001,6 +2060,135 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationOutputs failed: unknown result");
     }
 
+    public String registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_registerComputeResource(computeResourceDescription);
+      return recv_registerComputeResource();
+    }
+
+    public void send_registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.thrift.TException
+    {
+      registerComputeResource_args args = new registerComputeResource_args();
+      args.setComputeResourceDescription(computeResourceDescription);
+      sendBase("registerComputeResource", args);
+    }
+
+    public String recv_registerComputeResource() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      registerComputeResource_result result = new registerComputeResource_result();
+      receiveBase(result, "registerComputeResource");
+      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, "registerComputeResource failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getComputeResource(computeResourceId);
+      return recv_getComputeResource();
+    }
+
+    public void send_getComputeResource(String computeResourceId) throws org.apache.thrift.TException
+    {
+      getComputeResource_args args = new getComputeResource_args();
+      args.setComputeResourceId(computeResourceId);
+      sendBase("getComputeResource", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription recv_getComputeResource() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getComputeResource_result result = new getComputeResource_result();
+      receiveBase(result, "getComputeResource");
+      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, "getComputeResource failed: unknown result");
+    }
+
+    public boolean updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_updateComputeResource(computeResourceId, computeResourceDescription);
+      return recv_updateComputeResource();
+    }
+
+    public void send_updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.thrift.TException
+    {
+      updateComputeResource_args args = new updateComputeResource_args();
+      args.setComputeResourceId(computeResourceId);
+      args.setComputeResourceDescription(computeResourceDescription);
+      sendBase("updateComputeResource", args);
+    }
+
+    public boolean recv_updateComputeResource() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      updateComputeResource_result result = new updateComputeResource_result();
+      receiveBase(result, "updateComputeResource");
+      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, "updateComputeResource failed: unknown result");
+    }
+
+    public boolean deleteComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_deleteComputeResource(computeResourceId);
+      return recv_deleteComputeResource();
+    }
+
+    public void send_deleteComputeResource(String computeResourceId) throws org.apache.thrift.TException
+    {
+      deleteComputeResource_args args = new deleteComputeResource_args();
+      args.setComputeResourceId(computeResourceId);
+      sendBase("deleteComputeResource", args);
+    }
+
+    public boolean recv_deleteComputeResource() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      deleteComputeResource_result result = new deleteComputeResource_result();
+      receiveBase(result, "deleteComputeResource");
+      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, "deleteComputeResource failed: unknown result");
+    }
+
   }
   public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
     public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -3306,6 +3494,137 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      registerComputeResource_call method_call = new registerComputeResource_call(computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class registerComputeResource_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription;
+      public registerComputeResource_call(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, 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.computeResourceDescription = computeResourceDescription;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("registerComputeResource", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        registerComputeResource_args args = new registerComputeResource_args();
+        args.setComputeResourceDescription(computeResourceDescription);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.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_registerComputeResource();
+      }
+    }
+
+    public void getComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getComputeResource_call method_call = new getComputeResource_call(computeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getComputeResource_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String computeResourceId;
+      public getComputeResource_call(String computeResourceId, 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.computeResourceId = computeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getComputeResource", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getComputeResource_args args = new getComputeResource_args();
+        args.setComputeResourceId(computeResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.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_getComputeResource();
+      }
+    }
+
+    public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateComputeResource_call method_call = new updateComputeResource_call(computeResourceId, computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateComputeResource_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String computeResourceId;
+      private org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription;
+      public updateComputeResource_call(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, 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.computeResourceId = computeResourceId;
+        this.computeResourceDescription = computeResourceDescription;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateComputeResource", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateComputeResource_args args = new updateComputeResource_args();
+        args.setComputeResourceId(computeResourceId);
+        args.setComputeResourceDescription(computeResourceDescription);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.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_updateComputeResource();
+      }
+    }
+
+    public void deleteComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteComputeResource_call method_call = new deleteComputeResource_call(computeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteComputeResource_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String computeResourceId;
+      public deleteComputeResource_call(String computeResourceId, 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.computeResourceId = computeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteComputeResource", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteComputeResource_args args = new deleteComputeResource_args();
+        args.setComputeResourceId(computeResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.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_deleteComputeResource();
+      }
+    }
+
   }
 
   public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
@@ -3358,6 +3677,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("registerComputeResource", new registerComputeResource());
+      processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("updateComputeResource", new updateComputeResource());
+      processMap.put("deleteComputeResource", new deleteComputeResource());
       return processMap;
     }
 
@@ -4450,6 +4773,120 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class registerComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, registerComputeResource_args> {
+      public registerComputeResource() {
+        super("registerComputeResource");
+      }
+
+      public registerComputeResource_args getEmptyArgsInstance() {
+        return new registerComputeResource_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public registerComputeResource_result getResult(I iface, registerComputeResource_args args) throws org.apache.thrift.TException {
+        registerComputeResource_result result = new registerComputeResource_result();
+        try {
+          result.success = iface.registerComputeResource(args.computeResourceDescription);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class getComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getComputeResource_args> {
+      public getComputeResource() {
+        super("getComputeResource");
+      }
+
+      public getComputeResource_args getEmptyArgsInstance() {
+        return new getComputeResource_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getComputeResource_result getResult(I iface, getComputeResource_args args) throws org.apache.thrift.TException {
+        getComputeResource_result result = new getComputeResource_result();
+        try {
+          result.success = iface.getComputeResource(args.computeResourceId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class updateComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateComputeResource_args> {
+      public updateComputeResource() {
+        super("updateComputeResource");
+      }
+
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateComputeResource_result getResult(I iface, updateComputeResource_args args) throws org.apache.thrift.TException {
+        updateComputeResource_result result = new updateComputeResource_result();
+        try {
+          result.success = iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteComputeResource_args> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
+      }
+
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteComputeResource_result getResult(I iface, deleteComputeResource_args args) throws org.apache.thrift.TException {
+        deleteComputeResource_result result = new deleteComputeResource_result();
+        try {
+          result.success = iface.deleteComputeResource(args.computeResourceId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
   }
 
   public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
@@ -4502,6 +4939,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("registerComputeResource", new registerComputeResource());
+      processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("updateComputeResource", new updateComputeResource());
+      processMap.put("deleteComputeResource", new deleteComputeResource());
       return processMap;
     }
 
@@ -7110,6 +7551,276 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, String> {
+      public registerComputeResource() {
+        super("registerComputeResource");
+      }
+
+      public registerComputeResource_args getEmptyArgsInstance() {
+        return new registerComputeResource_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) {
+            registerComputeResource_result result = new registerComputeResource_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;
+            registerComputeResource_result result = new registerComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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, registerComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.registerComputeResource(args.computeResourceDescription,resultHandler);
+      }
+    }
+
+    public static class getComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getComputeResource_args, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> {
+      public getComputeResource() {
+        super("getComputeResource");
+      }
+
+      public getComputeResource_args getEmptyArgsInstance() {
+        return new getComputeResource_args();
+      }
+
+      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription o) {
+            getComputeResource_result result = new getComputeResource_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              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;
+            getComputeResource_result result = new getComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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, getComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> resultHandler) throws TException {
+        iface.getComputeResource(args.computeResourceId,resultHandler);
+      }
+    }
+
+    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, Boolean> {
+      public updateComputeResource() {
+        super("updateComputeResource");
+      }
+
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_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) {
+            updateComputeResource_result result = new updateComputeResource_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;
+            updateComputeResource_result result = new updateComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
+      }
+    }
+
+    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, Boolean> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
+      }
+
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_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) {
+            deleteComputeResource_result result = new deleteComputeResource_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;
+            deleteComputeResource_result result = new deleteComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      }
+    }
+
   }
 
   public static class getAPIVersion_args implements org.apache.thrift.TBase<getAPIVersion_args, getAPIVersion_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_args>   {
@@ -30201,22 +30912,4278 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("cloneExperiment_args(");
+      StringBuilder sb = new StringBuilder("cloneExperiment_args(");
+      boolean first = true;
+
+      sb.append("existingExperimentID:");
+      if (this.existingExperimentID == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.existingExperimentID);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("newExperimentName:");
+      if (this.newExperimentName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.newExperimentName);
+      }
+      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 cloneExperiment_argsStandardSchemeFactory implements SchemeFactory {
+      public cloneExperiment_argsStandardScheme getScheme() {
+        return new cloneExperiment_argsStandardScheme();
+      }
+    }
+
+    private static class cloneExperiment_argsStandardScheme extends StandardScheme<cloneExperiment_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // EXISTING_EXPERIMENT_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.existingExperimentID = iprot.readString();
+                struct.setExistingExperimentIDIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // NEW_EXPERIMENT_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.newExperimentName = iprot.readString();
+                struct.setNewExperimentNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            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, cloneExperiment_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.existingExperimentID != null) {
+          oprot.writeFieldBegin(EXISTING_EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.existingExperimentID);
+          oprot.writeFieldEnd();
+        }
+        if (struct.newExperimentName != null) {
+          oprot.writeFieldBegin(NEW_EXPERIMENT_NAME_FIELD_DESC);
+          oprot.writeString(struct.newExperimentName);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class cloneExperiment_argsTupleSchemeFactory implements SchemeFactory {
+      public cloneExperiment_argsTupleScheme getScheme() {
+        return new cloneExperiment_argsTupleScheme();
+      }
+    }
+
+    private static class cloneExperiment_argsTupleScheme extends TupleScheme<cloneExperiment_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetExistingExperimentID()) {
+          optionals.set(0);
+        }
+        if (struct.isSetNewExperimentName()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetExistingExperimentID()) {
+          oprot.writeString(struct.existingExperimentID);
+        }
+        if (struct.isSetNewExperimentName()) {
+          oprot.writeString(struct.newExperimentName);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.existingExperimentID = iprot.readString();
+          struct.setExistingExperimentIDIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.newExperimentName = iprot.readString();
+          struct.setNewExperimentNameIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class cloneExperiment_result implements org.apache.thrift.TBase<cloneExperiment_result, cloneExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<cloneExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new cloneExperiment_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new cloneExperiment_resultTupleSchemeFactory());
+    }
+
+    public String success; // required
+    public org.apache.airavata.model.error.InvalidRequestException ire; // required
+    public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
+    public org.apache.airavata.model.error.AiravataClientException ace; // required
+    public org.apache.airavata.model.error.AiravataSystemException ase; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      IRE((short)1, "ire"),
+      ENF((short)2, "enf"),
+      ACE((short)3, "ace"),
+      ASE((short)4, "ase");
+
+      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: // ENF
+            return ENF;
+          case 3: // ACE
+            return ACE;
+          case 4: // ASE
+            return ASE;
+          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.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", 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)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_result.class, metaDataMap);
+    }
+
+    public cloneExperiment_result() {
+    }
+
+    public cloneExperiment_result(
+      String success,
+      org.apache.airavata.model.error.InvalidRequestException ire,
+      org.apache.airavata.model.error.ExperimentNotFoundException enf,
+      org.apache.airavata.model.error.AiravataClientException ace,
+      org.apache.airavata.model.error.AiravataSystemException ase)
+    {
+      this();
+      this.success = success;
+      this.ire = ire;
+      this.enf = enf;
+      this.ace = ace;
+      this.ase = ase;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public cloneExperiment_result(cloneExperiment_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.isSetEnf()) {
+        this.enf = new org.apache.airavata.model.error.ExperimentNotFoundException(other.enf);
+      }
+      if (other.isSetAce()) {
+        this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
+      }
+      if (other.isSetAse()) {
+        this.ase = new org.apache.airavata.model.error.AiravataSystemException(other.ase);
+      }
+    }
+
+    public cloneExperiment_result deepCopy() {
+      return new cloneExperiment_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.ire = null;
+      this.enf = null;
+      this.ace = null;
+      this.ase = null;
+    }
+
+    public String getSuccess() {
+      return this.success;
+    }
+
+    public cloneExperiment_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 cloneExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+      this.ire = ire;
+      return this;
+    }
+
+    public void unsetIre() {
+      this.ire = null;
+    }
+
+    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
+    public boolean isSetIre() {
+      return this.ire != null;
+    }
+
+    public void setIreIsSet(boolean value) {
+      if (!value) {
+        this.ire = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.ExperimentNotFoundException getEnf() {
+      return this.enf;
+    }
+
+    public cloneExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+      this.enf = enf;
+      return this;
+    }
+
+    public void unsetEnf() {
+      this.enf = null;
+    }
+
+    /** Returns true if field enf is set (has been assigned a value) and false otherwise */
+    public boolean isSetEnf() {
+      return this.enf != null;
+    }
+
+    public void setEnfIsSet(boolean value) {
+      if (!value) {
+        this.enf = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataClientException getAce() {
+      return this.ace;
+    }
+
+    public cloneExperiment_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 cloneExperiment_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 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 ENF:
+        if (value == null) {
+          unsetEnf();
+        } else {
+          setEnf((org.apache.airavata.model.error.ExperimentNotFoundException)value);
+        }
+        break;
+
+      case ACE:
+        if (value == null) {
+          unsetAce();
+        } else {
+          setAce((org.apache.airavata.model.error.AiravataClientException)value);
+        }
+        break;
+
+      case ASE:
+        if (value == null) {
+          unsetAse();
+        } else {
+          setAse((org.apache.airavata.model.error.AiravataSystemException)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case IRE:
+        return getIre();
+
+      case ENF:
+        return getEnf();
+
+      case ACE:
+        return getAce();
+
+      case ASE:
+        return getAse();
+
+      }
+      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 ENF:
+        return isSetEnf();
+      case ACE:
+        return isSetAce();
+      case ASE:
+        return isSetAse();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof cloneExperiment_result)
+        return this.equals((cloneExperiment_result)that);
+      return false;
+    }
+
+    public boolean equals(cloneExperiment_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_enf = true && this.isSetEnf();
+      boolean that_present_enf = true && that.isSetEnf();
+      if (this_present_enf || that_present_enf) {
+        if (!(this_present_enf && that_present_enf))
+          return false;
+        if (!this.enf.equals(that.enf))
+          return false;
+      }
+
+      boolean this_present_ace = true && this.isSetAce();
+      boolean that_present_ace = true && that.isSetAce();
+      if (this_present_ace || that_present_ace) {
+        if (!(this_present_ace && that_present_ace))
+          return false;
+        if (!this.ace.equals(that.ace))
+          return false;
+      }
+
+      boolean this_present_ase = true && this.isSetAse();
+      boolean that_present_ase = true && that.isSetAse();
+      if (this_present_ase || that_present_ase) {
+        if (!(this_present_ase && that_present_ase))
+          return false;
+        if (!this.ase.equals(that.ase))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    @Override
+    public int compareTo(cloneExperiment_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(isSetEnf()).compareTo(other.isSetEnf());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetEnf()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = 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;
+        }
+      }
+      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("cloneExperiment_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("enf:");
+      if (this.enf == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.enf);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ace:");
+      if (this.ace == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ace);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ase:");
+      if (this.ase == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ase);
+      }
+      first = false;
+      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 cloneExperiment_resultStandardSchemeFactory implements SchemeFactory {
+      public cloneExperiment_resultStandardScheme getScheme() {
+        return new cloneExperiment_resultStandardScheme();
+      }
+    }
+
+    private static class cloneExperiment_resultStandardScheme extends StandardScheme<cloneExperiment_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperiment_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          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: // ENF
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+                struct.enf.read(iprot);
+                struct.setEnfIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // ACE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+                struct.ace.read(iprot);
+                struct.setAceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // ASE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+                struct.ase.read(iprot);
+                struct.setAseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            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, cloneExperiment_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.enf != null) {
+          oprot.writeFieldBegin(ENF_FIELD_DESC);
+          struct.enf.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ace != null) {
+          oprot.writeFieldBegin(ACE_FIELD_DESC);
+          struct.ace.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ase != null) {
+          oprot.writeFieldBegin(ASE_FIELD_DESC);
+          struct.ase.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class cloneExperiment_resultTupleSchemeFactory implements SchemeFactory {
+      public cloneExperiment_resultTupleScheme getScheme() {
+        return new cloneExperiment_resultTupleScheme();
+      }
+    }
+
+    private static class cloneExperiment_resultTupleScheme extends TupleScheme<cloneExperiment_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_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.isSetEnf()) {
+          optionals.set(2);
+        }
+        if (struct.isSetAce()) {
+          optionals.set(3);
+        }
+        if (struct.isSetAse()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetSuccess()) {
+          oprot.writeString(struct.success);
+        }
+        if (struct.isSetIre()) {
+          struct.ire.write(oprot);
+        }
+        if (struct.isSetEnf()) {
+          struct.enf.write(oprot);
+        }
+        if (struct.isSetAce()) {
+          struct.ace.write(oprot);
+        }
+        if (struct.isSetAse()) {
+          struct.ase.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperiment_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.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+          struct.enf.read(iprot);
+          struct.setEnfIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+          struct.ace.read(iprot);
+          struct.setAceIsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+          struct.ase.read(iprot);
+          struct.setAseIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class terminateExperiment_args implements org.apache.thrift.TBase<terminateExperiment_args, terminateExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_args");
+
+    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new terminateExperiment_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new terminateExperiment_argsTupleSchemeFactory());
+    }
+
+    public String airavataExperimentId; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      AIRAVATA_EXPERIMENT_ID((short)1, "airavataExperimentId");
+
+      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: // AIRAVATA_EXPERIMENT_ID
+            return AIRAVATA_EXPERIMENT_ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new 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.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_args.class, metaDataMap);
+    }
+
+    public terminateExperiment_args() {
+    }
+
+    public terminateExperiment_args(
+      String airavataExperimentId)
+    {
+      this();
+      this.airavataExperimentId = airavataExperimentId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public terminateExperiment_args(terminateExperiment_args other) {
+      if (other.isSetAiravataExperimentId()) {
+        this.airavataExperimentId = other.airavataExperimentId;
+      }
+    }
+
+    public terminateExperiment_args deepCopy() {
+      return new terminateExperiment_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.airavataExperimentId = null;
+    }
+
+    public String getAiravataExperimentId() {
+      return this.airavataExperimentId;
+    }
+
+    public terminateExperiment_args setAiravataExperimentId(String airavataExperimentId) {
+      this.airavataExperimentId = airavataExperimentId;
+      return this;
+    }
+
+    public void unsetAiravataExperimentId() {
+      this.airavataExperimentId = null;
+    }
+
+    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAiravataExperimentId() {
+      return this.airavataExperimentId != null;
+    }
+
+    public void setAiravataExperimentIdIsSet(boolean value) {
+      if (!value) {
+        this.airavataExperimentId = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case AIRAVATA_EXPERIMENT_ID:
+        if (value == null) {
+          unsetAiravataExperimentId();
+        } else {
+          setAiravataExperimentId((String)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case AIRAVATA_EXPERIMENT_ID:
+        return getAiravataExperimentId();
+
+      }
+      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 AIRAVATA_EXPERIMENT_ID:
+        return isSetAiravataExperimentId();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof terminateExperiment_args)
+        return this.equals((terminateExperiment_args)that);
+      return false;
+    }
+
+    public boolean equals(terminateExperiment_args that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
+      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
+      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
+        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
+          return false;
+        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      return 0;
+    }
+
+    @Override
+    public int compareTo(terminateExperiment_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAiravataExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      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("terminateExperiment_args(");
+      boolean first = true;
+
+      sb.append("airavataExperimentId:");
+      if (this.airavataExperimentId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.airavataExperimentId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // 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 terminateExperiment_argsStandardSchemeFactory implements SchemeFactory {
+      public terminateExperiment_argsStandardScheme getScheme() {
+        return new terminateExperiment_argsStandardScheme();
+      }
+    }
+
+    private static class terminateExperiment_argsStandardScheme extends StandardScheme<terminateExperiment_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // AIRAVATA_EXPERIMENT_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.airavataExperimentId = iprot.readString();
+                struct.setAiravataExperimentIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+     

<TRUNCATED>

[4/6] Updating the thrift files documenttaion - AIRAVATA-1228

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavataAPIConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavataAPIConstants.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavataAPIConstants.java
index 5c92e5e..a15cb7a 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavataAPIConstants.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavataAPIConstants.java
@@ -50,6 +50,20 @@ import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("all") public class airavataAPIConstants {
 
+  /**
+   * Airavata Interface Versions depend upon this Thrift Interface File. When Making changes, please edit the
+   *  Version Constants according to Semantic Versioning Specification (SemVer) http://semver.org.
+   * 
+   * Note: The Airavata API version may be different from the Airavata software release versions.
+   * 
+   * The Airavata API version is composed as a dot delimited string with major, minor, and patch level components.
+   * 
+   *  - Major: Incremented for backward incompatible changes. An example would be changes to interfaces.
+   *  - Minor: Incremented for backward compatible changes. An example would be the addition of a new optional methods.
+   *  - Patch: Incremented for bug fixes. The patch level should be increased for every edit that doesn't result
+   *              in a change to major/minor version numbers.
+   * 
+   */
   public static final String AIRAVATA_API_VERSION = "0.12.0";
 
 }


[6/6] git commit: Updating the thrift files documenttaion - AIRAVATA-1228

Posted by sm...@apache.org.
Updating the thrift files documenttaion - AIRAVATA-1228


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/08245f25
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/08245f25
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/08245f25

Branch: refs/heads/master
Commit: 08245f259f41c7c7464d9dd23e918d22874be932
Parents: fd5288a
Author: Suresh Marru <sm...@apache.org>
Authored: Sat Jul 5 23:04:11 2014 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Sat Jul 5 23:04:11 2014 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  | 10302 ++++++++++++-----
 .../airavata/api/airavataAPIConstants.java      |    14 +
 .../src/main/resources/lib/Airavata.cpp         |  2484 +++-
 .../src/main/resources/lib/Airavata.h           |   612 +
 .../resources/lib/Airavata_server.skeleton.cpp  |    20 +
 .../lib/computeResourceModel_types.cpp          |    42 +-
 .../resources/lib/computeResourceModel_types.h  |    21 +-
 .../resources/lib/Airavata/API/Airavata.php     |  1120 ++
 .../Model/AppCatalog/ComputeResource/Types.php  |    40 +-
 .../ComputeResourceDescription.java             |     3 +
 .../computeresource/ResourceJobManager.java     |   131 +-
 .../ComputeResourcePreference.java              |    30 +-
 .../gatewayprofile/GatewayProfile.java          |    18 +-
 .../airavataAPI.thrift                          |    99 +-
 14 files changed, 11601 insertions(+), 3335 deletions(-)
----------------------------------------------------------------------



[3/6] Updating the thrift files documenttaion - AIRAVATA-1228

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
index 05a61a8..9a056a0 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
@@ -9277,18 +9277,1137 @@ uint32_t Airavata_getApplicationOutputs_presult::read(::apache::thrift::protocol
   return xfer;
 }
 
+uint32_t Airavata_registerComputeResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_computeResourceDescription = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->computeResourceDescription.read(iprot);
+          isset_computeResourceDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_computeResourceDescription)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_registerComputeResource_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_registerComputeResource_args");
+
+  xfer += oprot->writeFieldBegin("computeResourceDescription", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->computeResourceDescription.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_registerComputeResource_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_registerComputeResource_pargs");
+
+  xfer += oprot->writeFieldBegin("computeResourceDescription", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->computeResourceDescription)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_registerComputeResource_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_registerComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_registerComputeResource_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_registerComputeResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_computeResourceId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getComputeResource_args");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getComputeResource_pargs");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getComputeResource_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_computeResourceId = false;
+  bool isset_computeResourceDescription = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->computeResourceDescription.read(iprot);
+          isset_computeResourceDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourceDescription)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_updateComputeResource_args");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceDescription", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->computeResourceDescription.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_updateComputeResource_pargs");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceDescription", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->computeResourceDescription)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_updateComputeResource_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateComputeResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_computeResourceId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_deleteComputeResource_args");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_deleteComputeResource_pargs");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_deleteComputeResource_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_deleteComputeResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
 void AiravataClient::getAPIVersion(std::string& _return)
 {
-  send_getAPIVersion();
-  recv_getAPIVersion(_return);
+  send_getAPIVersion();
+  recv_getAPIVersion(_return);
+}
+
+void AiravataClient::send_getAPIVersion()
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAPIVersion_pargs args;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAPIVersion(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getAPIVersion") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAPIVersion_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
+}
+
+void AiravataClient::createProject(std::string& _return, const  ::Project& project)
+{
+  send_createProject(project);
+  recv_createProject(_return);
+}
+
+void AiravataClient::send_createProject(const  ::Project& project)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("createProject", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_createProject_pargs args;
+  args.project = &project;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_createProject(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("createProject") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_createProject_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createProject failed: unknown result");
+}
+
+void AiravataClient::updateProject(const std::string& projectId, const  ::Project& updatedProject)
+{
+  send_updateProject(projectId, updatedProject);
+  recv_updateProject();
+}
+
+void AiravataClient::send_updateProject(const std::string& projectId, const  ::Project& updatedProject)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("updateProject", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_updateProject_pargs args;
+  args.projectId = &projectId;
+  args.updatedProject = &updatedProject;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_updateProject()
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("updateProject") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_updateProject_presult result;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.pnfe) {
+    throw result.pnfe;
+  }
+  return;
+}
+
+void AiravataClient::getProject( ::Project& _return, const std::string& projectId)
+{
+  send_getProject(projectId);
+  recv_getProject(_return);
 }
 
-void AiravataClient::send_getAPIVersion()
+void AiravataClient::send_getProject(const std::string& projectId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getProject", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAPIVersion_pargs args;
+  Airavata_getProject_pargs args;
+  args.projectId = &projectId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9296,7 +10415,7 @@ void AiravataClient::send_getAPIVersion()
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAPIVersion(std::string& _return)
+void AiravataClient::recv_getProject( ::Project& _return)
 {
 
   int32_t rseqid = 0;
@@ -9316,12 +10435,12 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAPIVersion") != 0) {
+  if (fname.compare("getProject") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAPIVersion_presult result;
+  Airavata_getProject_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9340,22 +10459,25 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
+  if (result.__isset.pnfe) {
+    throw result.pnfe;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getProject failed: unknown result");
 }
 
-void AiravataClient::createProject(std::string& _return, const  ::Project& project)
+void AiravataClient::getAllUserProjects(std::vector< ::Project> & _return, const std::string& userName)
 {
-  send_createProject(project);
-  recv_createProject(_return);
+  send_getAllUserProjects(userName);
+  recv_getAllUserProjects(_return);
 }
 
-void AiravataClient::send_createProject(const  ::Project& project)
+void AiravataClient::send_getAllUserProjects(const std::string& userName)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("createProject", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllUserProjects", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_createProject_pargs args;
-  args.project = &project;
+  Airavata_getAllUserProjects_pargs args;
+  args.userName = &userName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9363,7 +10485,7 @@ void AiravataClient::send_createProject(const  ::Project& project)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_createProject(std::string& _return)
+void AiravataClient::recv_getAllUserProjects(std::vector< ::Project> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9383,12 +10505,12 @@ void AiravataClient::recv_createProject(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("createProject") != 0) {
+  if (fname.compare("getAllUserProjects") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_createProject_presult result;
+  Airavata_getAllUserProjects_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9407,23 +10529,23 @@ void AiravataClient::recv_createProject(std::string& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createProject failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUserProjects failed: unknown result");
 }
 
-void AiravataClient::updateProject(const std::string& projectId, const  ::Project& updatedProject)
+void AiravataClient::searchProjectsByProjectName(std::vector< ::Project> & _return, const std::string& userName, const std::string& projectName)
 {
-  send_updateProject(projectId, updatedProject);
-  recv_updateProject();
+  send_searchProjectsByProjectName(userName, projectName);
+  recv_searchProjectsByProjectName(_return);
 }
 
-void AiravataClient::send_updateProject(const std::string& projectId, const  ::Project& updatedProject)
+void AiravataClient::send_searchProjectsByProjectName(const std::string& userName, const std::string& projectName)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("updateProject", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("searchProjectsByProjectName", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateProject_pargs args;
-  args.projectId = &projectId;
-  args.updatedProject = &updatedProject;
+  Airavata_searchProjectsByProjectName_pargs args;
+  args.userName = &userName;
+  args.projectName = &projectName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9431,7 +10553,7 @@ void AiravataClient::send_updateProject(const std::string& projectId, const  ::P
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_updateProject()
+void AiravataClient::recv_searchProjectsByProjectName(std::vector< ::Project> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9451,16 +10573,21 @@ void AiravataClient::recv_updateProject()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("updateProject") != 0) {
+  if (fname.compare("searchProjectsByProjectName") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_updateProject_presult result;
+  Airavata_searchProjectsByProjectName_presult result;
+  result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
   if (result.__isset.ire) {
     throw result.ire;
   }
@@ -9470,25 +10597,23 @@ void AiravataClient::recv_updateProject()
   if (result.__isset.ase) {
     throw result.ase;
   }
-  if (result.__isset.pnfe) {
-    throw result.pnfe;
-  }
-  return;
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchProjectsByProjectName failed: unknown result");
 }
 
-void AiravataClient::getProject( ::Project& _return, const std::string& projectId)
+void AiravataClient::searchProjectsByProjectDesc(std::vector< ::Project> & _return, const std::string& userName, const std::string& description)
 {
-  send_getProject(projectId);
-  recv_getProject(_return);
+  send_searchProjectsByProjectDesc(userName, description);
+  recv_searchProjectsByProjectDesc(_return);
 }
 
-void AiravataClient::send_getProject(const std::string& projectId)
+void AiravataClient::send_searchProjectsByProjectDesc(const std::string& userName, const std::string& description)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getProject", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("searchProjectsByProjectDesc", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getProject_pargs args;
-  args.projectId = &projectId;
+  Airavata_searchProjectsByProjectDesc_pargs args;
+  args.userName = &userName;
+  args.description = &description;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9496,7 +10621,7 @@ void AiravataClient::send_getProject(const std::string& projectId)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getProject( ::Project& _return)
+void AiravataClient::recv_searchProjectsByProjectDesc(std::vector< ::Project> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9516,12 +10641,12 @@ void AiravataClient::recv_getProject( ::Project& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getProject") != 0) {
+  if (fname.compare("searchProjectsByProjectDesc") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getProject_presult result;
+  Airavata_searchProjectsByProjectDesc_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9540,25 +10665,23 @@ void AiravataClient::recv_getProject( ::Project& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  if (result.__isset.pnfe) {
-    throw result.pnfe;
-  }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getProject failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchProjectsByProjectDesc failed: unknown result");
 }
 
-void AiravataClient::getAllUserProjects(std::vector< ::Project> & _return, const std::string& userName)
+void AiravataClient::searchExperimentsByName(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& expName)
 {
-  send_getAllUserProjects(userName);
-  recv_getAllUserProjects(_return);
+  send_searchExperimentsByName(userName, expName);
+  recv_searchExperimentsByName(_return);
 }
 
-void AiravataClient::send_getAllUserProjects(const std::string& userName)
+void AiravataClient::send_searchExperimentsByName(const std::string& userName, const std::string& expName)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAllUserProjects", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("searchExperimentsByName", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllUserProjects_pargs args;
+  Airavata_searchExperimentsByName_pargs args;
   args.userName = &userName;
+  args.expName = &expName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9566,7 +10689,7 @@ void AiravataClient::send_getAllUserProjects(const std::string& userName)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAllUserProjects(std::vector< ::Project> & _return)
+void AiravataClient::recv_searchExperimentsByName(std::vector< ::ExperimentSummary> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9586,12 +10709,12 @@ void AiravataClient::recv_getAllUserProjects(std::vector< ::Project> & _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAllUserProjects") != 0) {
+  if (fname.compare("searchExperimentsByName") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAllUserProjects_presult result;
+  Airavata_searchExperimentsByName_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9610,23 +10733,23 @@ void AiravataClient::recv_getAllUserProjects(std::vector< ::Project> & _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUserProjects failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByName failed: unknown result");
 }
 
-void AiravataClient::searchProjectsByProjectName(std::vector< ::Project> & _return, const std::string& userName, const std::string& projectName)
+void AiravataClient::searchExperimentsByDesc(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& description)
 {
-  send_searchProjectsByProjectName(userName, projectName);
-  recv_searchProjectsByProjectName(_return);
+  send_searchExperimentsByDesc(userName, description);
+  recv_searchExperimentsByDesc(_return);
 }
 
-void AiravataClient::send_searchProjectsByProjectName(const std::string& userName, const std::string& projectName)
+void AiravataClient::send_searchExperimentsByDesc(const std::string& userName, const std::string& description)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("searchProjectsByProjectName", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("searchExperimentsByDesc", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_searchProjectsByProjectName_pargs args;
+  Airavata_searchExperimentsByDesc_pargs args;
   args.userName = &userName;
-  args.projectName = &projectName;
+  args.description = &description;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9634,7 +10757,7 @@ void AiravataClient::send_searchProjectsByProjectName(const std::string& userNam
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_searchProjectsByProjectName(std::vector< ::Project> & _return)
+void AiravataClient::recv_searchExperimentsByDesc(std::vector< ::ExperimentSummary> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9654,12 +10777,12 @@ void AiravataClient::recv_searchProjectsByProjectName(std::vector< ::Project> &
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("searchProjectsByProjectName") != 0) {
+  if (fname.compare("searchExperimentsByDesc") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_searchProjectsByProjectName_presult result;
+  Airavata_searchExperimentsByDesc_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9678,23 +10801,23 @@ void AiravataClient::recv_searchProjectsByProjectName(std::vector< ::Project> &
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchProjectsByProjectName failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByDesc failed: unknown result");
 }
 
-void AiravataClient::searchProjectsByProjectDesc(std::vector< ::Project> & _return, const std::string& userName, const std::string& description)
+void AiravataClient::searchExperimentsByApplication(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& applicationId)
 {
-  send_searchProjectsByProjectDesc(userName, description);
-  recv_searchProjectsByProjectDesc(_return);
+  send_searchExperimentsByApplication(userName, applicationId);
+  recv_searchExperimentsByApplication(_return);
 }
 
-void AiravataClient::send_searchProjectsByProjectDesc(const std::string& userName, const std::string& description)
+void AiravataClient::send_searchExperimentsByApplication(const std::string& userName, const std::string& applicationId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("searchProjectsByProjectDesc", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("searchExperimentsByApplication", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_searchProjectsByProjectDesc_pargs args;
+  Airavata_searchExperimentsByApplication_pargs args;
   args.userName = &userName;
-  args.description = &description;
+  args.applicationId = &applicationId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9702,7 +10825,7 @@ void AiravataClient::send_searchProjectsByProjectDesc(const std::string& userNam
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_searchProjectsByProjectDesc(std::vector< ::Project> & _return)
+void AiravataClient::recv_searchExperimentsByApplication(std::vector< ::ExperimentSummary> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9722,12 +10845,12 @@ void AiravataClient::recv_searchProjectsByProjectDesc(std::vector< ::Project> &
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("searchProjectsByProjectDesc") != 0) {
+  if (fname.compare("searchExperimentsByApplication") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_searchProjectsByProjectDesc_presult result;
+  Airavata_searchExperimentsByApplication_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9746,23 +10869,92 @@ void AiravataClient::recv_searchProjectsByProjectDesc(std::vector< ::Project> &
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchProjectsByProjectDesc failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByApplication failed: unknown result");
 }
 
-void AiravataClient::searchExperimentsByName(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& expName)
+void AiravataClient::getAllExperimentsInProject(std::vector< ::Experiment> & _return, const std::string& projectId)
 {
-  send_searchExperimentsByName(userName, expName);
-  recv_searchExperimentsByName(_return);
+  send_getAllExperimentsInProject(projectId);
+  recv_getAllExperimentsInProject(_return);
 }
 
-void AiravataClient::send_searchExperimentsByName(const std::string& userName, const std::string& expName)
+void AiravataClient::send_getAllExperimentsInProject(const std::string& projectId)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAllExperimentsInProject", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAllExperimentsInProject_pargs args;
+  args.projectId = &projectId;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAllExperimentsInProject(std::vector< ::Experiment> & _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getAllExperimentsInProject") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAllExperimentsInProject_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.pnfe) {
+    throw result.pnfe;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllExperimentsInProject failed: unknown result");
+}
+
+void AiravataClient::getAllUserExperiments(std::vector< ::Experiment> & _return, const std::string& userName)
+{
+  send_getAllUserExperiments(userName);
+  recv_getAllUserExperiments(_return);
+}
+
+void AiravataClient::send_getAllUserExperiments(const std::string& userName)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("searchExperimentsByName", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllUserExperiments", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_searchExperimentsByName_pargs args;
+  Airavata_getAllUserExperiments_pargs args;
   args.userName = &userName;
-  args.expName = &expName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9770,7 +10962,7 @@ void AiravataClient::send_searchExperimentsByName(const std::string& userName, c
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_searchExperimentsByName(std::vector< ::ExperimentSummary> & _return)
+void AiravataClient::recv_getAllUserExperiments(std::vector< ::Experiment> & _return)
 {
 
   int32_t rseqid = 0;
@@ -9790,12 +10982,12 @@ void AiravataClient::recv_searchExperimentsByName(std::vector< ::ExperimentSumma
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("searchExperimentsByName") != 0) {
+  if (fname.compare("getAllUserExperiments") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_searchExperimentsByName_presult result;
+  Airavata_getAllUserExperiments_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9814,23 +11006,22 @@ void AiravataClient::recv_searchExperimentsByName(std::vector< ::ExperimentSumma
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByName failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUserExperiments failed: unknown result");
 }
 
-void AiravataClient::searchExperimentsByDesc(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& description)
+void AiravataClient::createExperiment(std::string& _return, const  ::Experiment& experiment)
 {
-  send_searchExperimentsByDesc(userName, description);
-  recv_searchExperimentsByDesc(_return);
+  send_createExperiment(experiment);
+  recv_createExperiment(_return);
 }
 
-void AiravataClient::send_searchExperimentsByDesc(const std::string& userName, const std::string& description)
+void AiravataClient::send_createExperiment(const  ::Experiment& experiment)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("searchExperimentsByDesc", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("createExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_searchExperimentsByDesc_pargs args;
-  args.userName = &userName;
-  args.description = &description;
+  Airavata_createExperiment_pargs args;
+  args.experiment = &experiment;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9838,7 +11029,7 @@ void AiravataClient::send_searchExperimentsByDesc(const std::string& userName, c
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_searchExperimentsByDesc(std::vector< ::ExperimentSummary> & _return)
+void AiravataClient::recv_createExperiment(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -9858,12 +11049,12 @@ void AiravataClient::recv_searchExperimentsByDesc(std::vector< ::ExperimentSumma
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("searchExperimentsByDesc") != 0) {
+  if (fname.compare("createExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_searchExperimentsByDesc_presult result;
+  Airavata_createExperiment_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9882,23 +11073,22 @@ void AiravataClient::recv_searchExperimentsByDesc(std::vector< ::ExperimentSumma
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByDesc failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createExperiment failed: unknown result");
 }
 
-void AiravataClient::searchExperimentsByApplication(std::vector< ::ExperimentSummary> & _return, const std::string& userName, const std::string& applicationId)
+void AiravataClient::getExperiment( ::Experiment& _return, const std::string& airavataExperimentId)
 {
-  send_searchExperimentsByApplication(userName, applicationId);
-  recv_searchExperimentsByApplication(_return);
+  send_getExperiment(airavataExperimentId);
+  recv_getExperiment(_return);
 }
 
-void AiravataClient::send_searchExperimentsByApplication(const std::string& userName, const std::string& applicationId)
+void AiravataClient::send_getExperiment(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("searchExperimentsByApplication", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_searchExperimentsByApplication_pargs args;
-  args.userName = &userName;
-  args.applicationId = &applicationId;
+  Airavata_getExperiment_pargs args;
+  args.airavataExperimentId = &airavataExperimentId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9906,7 +11096,7 @@ void AiravataClient::send_searchExperimentsByApplication(const std::string& user
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_searchExperimentsByApplication(std::vector< ::ExperimentSummary> & _return)
+void AiravataClient::recv_getExperiment( ::Experiment& _return)
 {
 
   int32_t rseqid = 0;
@@ -9926,12 +11116,12 @@ void AiravataClient::recv_searchExperimentsByApplication(std::vector< ::Experime
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("searchExperimentsByApplication") != 0) {
+  if (fname.compare("getExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_searchExperimentsByApplication_presult result;
+  Airavata_getExperiment_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -9944,28 +11134,32 @@ void AiravataClient::recv_searchExperimentsByApplication(std::vector< ::Experime
   if (result.__isset.ire) {
     throw result.ire;
   }
+  if (result.__isset.enf) {
+    throw result.enf;
+  }
   if (result.__isset.ace) {
     throw result.ace;
   }
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "searchExperimentsByApplication failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperiment failed: unknown result");
 }
 
-void AiravataClient::getAllExperimentsInProject(std::vector< ::Experiment> & _return, const std::string& projectId)
+void AiravataClient::updateExperiment(const std::string& airavataExperimentId, const  ::Experiment& experiment)
 {
-  send_getAllExperimentsInProject(projectId);
-  recv_getAllExperimentsInProject(_return);
+  send_updateExperiment(airavataExperimentId, experiment);
+  recv_updateExperiment();
 }
 
-void AiravataClient::send_getAllExperimentsInProject(const std::string& projectId)
+void AiravataClient::send_updateExperiment(const std::string& airavataExperimentId, const  ::Experiment& experiment)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAllExperimentsInProject", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllExperimentsInProject_pargs args;
-  args.projectId = &projectId;
+  Airavata_updateExperiment_pargs args;
+  args.airavataExperimentId = &airavataExperimentId;
+  args.experiment = &experiment;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -9973,7 +11167,7 @@ void AiravataClient::send_getAllExperimentsInProject(const std::string& projectI
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAllExperimentsInProject(std::vector< ::Experiment> & _return)
+void AiravataClient::recv_updateExperiment()
 {
 
   int32_t rseqid = 0;
@@ -9993,49 +11187,45 @@ void AiravataClient::recv_getAllExperimentsInProject(std::vector< ::Experiment>
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAllExperimentsInProject") != 0) {
+  if (fname.compare("updateExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAllExperimentsInProject_presult result;
-  result.success = &_return;
+  Airavata_updateExperiment_presult result;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
-  if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
-  }
   if (result.__isset.ire) {
     throw result.ire;
   }
+  if (result.__isset.enf) {
+    throw result.enf;
+  }
   if (result.__isset.ace) {
     throw result.ace;
   }
   if (result.__isset.ase) {
     throw result.ase;
   }
-  if (result.__isset.pnfe) {
-    throw result.pnfe;
-  }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllExperimentsInProject failed: unknown result");
+  return;
 }
 
-void AiravataClient::getAllUserExperiments(std::vector< ::Experiment> & _return, const std::string& userName)
+void AiravataClient::updateExperimentConfiguration(const std::string& airavataExperimentId, const  ::UserConfigurationData& userConfiguration)
 {
-  send_getAllUserExperiments(userName);
-  recv_getAllUserExperiments(_return);
+  send_updateExperimentConfiguration(airavataExperimentId, userConfiguration);
+  recv_updateExperimentConfiguration();
 }
 
-void AiravataClient::send_getAllUserExperiments(const std::string& userName)
+void AiravataClient::send_updateExperimentConfiguration(const std::string& airavataExperimentId, const  ::UserConfigurationData& userConfiguration)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAllUserExperiments", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateExperimentConfiguration", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllUserExperiments_pargs args;
-  args.userName = &userName;
+  Airavata_updateExperimentConfiguration_pargs args;
+  args.airavataExperimentId = &airavataExperimentId;
+  args.userConfiguration = &userConfiguration;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10043,7 +11233,7 @@ void AiravataClient::send_getAllUserExperiments(const std::string& userName)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAllUserExperiments(std::vector< ::Experiment> & _return)
+void AiravataClient::recv_updateExperimentConfiguration()
 {
 
   int32_t rseqid = 0;
@@ -10063,46 +11253,33 @@ void AiravataClient::recv_getAllUserExperiments(std::vector< ::Experiment> & _re
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAllUserExperiments") != 0) {
+  if (fname.compare("updateExperimentConfiguration") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAllUserExperiments_presult result;
-  result.success = &_return;
+  Airavata_updateExperimentConfiguration_presult result;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
-  if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
-  }
-  if (result.__isset.ire) {
-    throw result.ire;
-  }
-  if (result.__isset.ace) {
-    throw result.ace;
-  }
-  if (result.__isset.ase) {
-    throw result.ase;
-  }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUserExperiments failed: unknown result");
+  return;
 }
 
-void AiravataClient::createExperiment(std::string& _return, const  ::Experiment& experiment)
+void AiravataClient::updateResourceScheduleing(const std::string& airavataExperimentId, const  ::ComputationalResourceScheduling& resourceScheduling)
 {
-  send_createExperiment(experiment);
-  recv_createExperiment(_return);
+  send_updateResourceScheduleing(airavataExperimentId, resourceScheduling);
+  recv_updateResourceScheduleing();
 }
 
-void AiravataClient::send_createExperiment(const  ::Experiment& experiment)
+void AiravataClient::send_updateResourceScheduleing(const std::string& airavataExperimentId, const  ::ComputationalResourceScheduling& resourceScheduling)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("createExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateResourceScheduleing", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_createExperiment_pargs args;
-  args.experiment = &experiment;
+  Airavata_updateResourceScheduleing_pargs args;
+  args.airavataExperimentId = &airavataExperimentId;
+  args.resourceScheduling = &resourceScheduling;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10110,7 +11287,7 @@ void AiravataClient::send_createExperiment(const  ::Experiment& experiment)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_createExperiment(std::string& _return)
+void AiravataClient::recv_updateResourceScheduleing()
 {
 
   int32_t rseqid = 0;
@@ -10130,45 +11307,31 @@ void AiravataClient::recv_createExperiment(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("createExperiment") != 0) {
+  if (fname.compare("updateResourceScheduleing") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_createExperiment_presult result;
-  result.success = &_return;
+  Airavata_updateResourceScheduleing_presult result;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
-  if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
-  }
-  if (result.__isset.ire) {
-    throw result.ire;
-  }
-  if (result.__isset.ace) {
-    throw result.ace;
-  }
-  if (result.__isset.ase) {
-    throw result.ase;
-  }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createExperiment failed: unknown result");
+  return;
 }
 
-void AiravataClient::getExperiment( ::Experiment& _return, const std::string& airavataExperimentId)
+bool AiravataClient::validateExperiment(const std::string& airavataExperimentId)
 {
-  send_getExperiment(airavataExperimentId);
-  recv_getExperiment(_return);
+  send_validateExperiment(airavataExperimentId);
+  return recv_validateExperiment();
 }
 
-void AiravataClient::send_getExperiment(const std::string& airavataExperimentId)
+void AiravataClient::send_validateExperiment(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("validateExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getExperiment_pargs args;
+  Airavata_validateExperiment_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
   args.write(oprot_);
 
@@ -10177,7 +11340,7 @@ void AiravataClient::send_getExperiment(const std::string& airavataExperimentId)
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getExperiment( ::Experiment& _return)
+bool AiravataClient::recv_validateExperiment()
 {
 
   int32_t rseqid = 0;
@@ -10197,20 +11360,20 @@ void AiravataClient::recv_getExperiment( ::Experiment& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getExperiment") != 0) {
+  if (fname.compare("validateExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getExperiment_presult result;
+  bool _return;
+  Airavata_validateExperiment_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
   if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
+    return _return;
   }
   if (result.__isset.ire) {
     throw result.ire;
@@ -10224,23 +11387,23 @@ void AiravataClient::recv_getExperiment( ::Experiment& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperiment failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "validateExperiment failed: unknown result");
 }
 
-void AiravataClient::updateExperiment(const std::string& airavataExperimentId, const  ::Experiment& experiment)
+void AiravataClient::launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken)
 {
-  send_updateExperiment(airavataExperimentId, experiment);
-  recv_updateExperiment();
+  send_launchExperiment(airavataExperimentId, airavataCredStoreToken);
+  recv_launchExperiment();
 }
 
-void AiravataClient::send_updateExperiment(const std::string& airavataExperimentId, const  ::Experiment& experiment)
+void AiravataClient::send_launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("updateExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("launchExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateExperiment_pargs args;
+  Airavata_launchExperiment_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
-  args.experiment = &experiment;
+  args.airavataCredStoreToken = &airavataCredStoreToken;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10248,7 +11411,7 @@ void AiravataClient::send_updateExperiment(const std::string& airavataExperiment
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_updateExperiment()
+void AiravataClient::recv_launchExperiment()
 {
 
   int32_t rseqid = 0;
@@ -10268,12 +11431,12 @@ void AiravataClient::recv_updateExperiment()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("updateExperiment") != 0) {
+  if (fname.compare("launchExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_updateExperiment_presult result;
+  Airavata_launchExperiment_presult result;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
@@ -10290,23 +11453,25 @@ void AiravataClient::recv_updateExperiment()
   if (result.__isset.ase) {
     throw result.ase;
   }
+  if (result.__isset.lve) {
+    throw result.lve;
+  }
   return;
 }
 
-void AiravataClient::updateExperimentConfiguration(const std::string& airavataExperimentId, const  ::UserConfigurationData& userConfiguration)
+void AiravataClient::getExperimentStatus( ::ExperimentStatus& _return, const std::string& airavataExperimentId)
 {
-  send_updateExperimentConfiguration(airavataExperimentId, userConfiguration);
-  recv_updateExperimentConfiguration();
+  send_getExperimentStatus(airavataExperimentId);
+  recv_getExperimentStatus(_return);
 }
 
-void AiravataClient::send_updateExperimentConfiguration(const std::string& airavataExperimentId, const  ::UserConfigurationData& userConfiguration)
+void AiravataClient::send_getExperimentStatus(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("updateExperimentConfiguration", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getExperimentStatus", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateExperimentConfiguration_pargs args;
+  Airavata_getExperimentStatus_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
-  args.userConfiguration = &userConfiguration;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10314,7 +11479,7 @@ void AiravataClient::send_updateExperimentConfiguration(const std::string& airav
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_updateExperimentConfiguration()
+void AiravataClient::recv_getExperimentStatus( ::ExperimentStatus& _return)
 {
 
   int32_t rseqid = 0;
@@ -10334,33 +11499,49 @@ void AiravataClient::recv_updateExperimentConfiguration()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("updateExperimentConfiguration") != 0) {
-    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
+  if (fname.compare("getExperimentStatus") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getExperimentStatus_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.enf) {
+    throw result.enf;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
   }
-  Airavata_updateExperimentConfiguration_presult result;
-  result.read(iprot_);
-  iprot_->readMessageEnd();
-  iprot_->getTransport()->readEnd();
-
-  return;
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperimentStatus failed: unknown result");
 }
 
-void AiravataClient::updateResourceScheduleing(const std::string& airavataExperimentId, const  ::ComputationalResourceScheduling& resourceScheduling)
+void AiravataClient::getExperimentOutputs(std::vector< ::DataObjectType> & _return, const std::string& airavataExperimentId)
 {
-  send_updateResourceScheduleing(airavataExperimentId, resourceScheduling);
-  recv_updateResourceScheduleing();
+  send_getExperimentOutputs(airavataExperimentId);
+  recv_getExperimentOutputs(_return);
 }
 
-void AiravataClient::send_updateResourceScheduleing(const std::string& airavataExperimentId, const  ::ComputationalResourceScheduling& resourceScheduling)
+void AiravataClient::send_getExperimentOutputs(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("updateResourceScheduleing", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getExperimentOutputs", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateResourceScheduleing_pargs args;
+  Airavata_getExperimentOutputs_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
-  args.resourceScheduling = &resourceScheduling;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10368,7 +11549,7 @@ void AiravataClient::send_updateResourceScheduleing(const std::string& airavataE
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_updateResourceScheduleing()
+void AiravataClient::recv_getExperimentOutputs(std::vector< ::DataObjectType> & _return)
 {
 
   int32_t rseqid = 0;
@@ -10388,31 +11569,36 @@ void AiravataClient::recv_updateResourceScheduleing()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("updateResourceScheduleing") != 0) {
+  if (fname.compare("getExperimentOutputs") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_updateResourceScheduleing_presult result;
+  Airavata_getExperimentOutputs_presult result;
+  result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
-  return;
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperimentOutputs failed: unknown result");
 }
 
-bool AiravataClient::validateExperiment(const std::string& airavataExperimentId)
+void AiravataClient::getJobStatuses(std::map<std::string,  ::JobStatus> & _return, const std::string& airavataExperimentId)
 {
-  send_validateExperiment(airavataExperimentId);
-  return recv_validateExperiment();
+  send_getJobStatuses(airavataExperimentId);
+  recv_getJobStatuses(_return);
 }
 
-void AiravataClient::send_validateExperiment(const std::string& airavataExperimentId)
+void AiravataClient::send_getJobStatuses(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("validateExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getJobStatuses", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_validateExperiment_pargs args;
+  Airavata_getJobStatuses_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
   args.write(oprot_);
 
@@ -10421,7 +11607,7 @@ void AiravataClient::send_validateExperiment(const std::string& airavataExperime
   oprot_->getTransport()->flush();
 }
 
-bool AiravataClient::recv_validateExperiment()
+void AiravataClient::recv_getJobStatuses(std::map<std::string,  ::JobStatus> & _return)
 {
 
   int32_t rseqid = 0;
@@ -10441,50 +11627,38 @@ bool AiravataClient::recv_validateExperiment()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("validateExperiment") != 0) {
+  if (fname.compare("getJobStatuses") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  bool _return;
-  Airavata_validateExperiment_presult result;
+  Airavata_getJobStatuses_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
   if (result.__isset.success) {
-    return _return;
-  }
-  if (result.__isset.ire) {
-    throw result.ire;
-  }
-  if (result.__isset.enf) {
-    throw result.enf;
-  }
-  if (result.__isset.ace) {
-    throw result.ace;
-  }
-  if (result.__isset.ase) {
-    throw result.ase;
+    // _return pointer has now been filled
+    return;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "validateExperiment failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getJobStatuses failed: unknown result");
 }
 
-void AiravataClient::launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken)
+void AiravataClient::cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperimentName)
 {
-  send_launchExperiment(airavataExperimentId, airavataCredStoreToken);
-  recv_launchExperiment();
+  send_cloneExperiment(existingExperimentID, newExperimentName);
+  recv_cloneExperiment(_return);
 }
 
-void AiravataClient::send_launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken)
+void AiravataClient::send_cloneExperiment(const std::string& existingExperimentID, const std::string& newExperimentName)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("launchExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("cloneExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_launchExperiment_pargs args;
-  args.airavataExperimentId = &airavataExperimentId;
-  args.airavataCredStoreToken = &airavataCredStoreToken;
+  Airavata_cloneExperiment_pargs args;
+  args.existingExperimentID = &existingExperimentID;
+  args.newExperimentName = &newExperimentName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10492,7 +11666,7 @@ void AiravataClient::send_launchExperiment(const std::string& airavataExperiment
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_launchExperiment()
+void AiravataClient::recv_cloneExperiment(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -10512,16 +11686,21 @@ void AiravataClient::recv_launchExperiment()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("launchExperiment") != 0) {
+  if (fname.compare("cloneExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_launchExperiment_presult result;
+  Airavata_cloneExperiment_presult result;
+  result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
   if (result.__isset.ire) {
     throw result.ire;
   }
@@ -10534,24 +11713,21 @@ void AiravataClient::recv_launchExperiment()
   if (result.__isset.ase) {
     throw result.ase;
   }
-  if (result.__isset.lve) {
-    throw result.lve;
-  }
-  return;
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "cloneExperiment failed: unknown result");
 }
 
-void AiravataClient::getExperimentStatus( ::ExperimentStatus& _return, const std::string& airavataExperimentId)
+void AiravataClient::terminateExperiment(const std::string& airavataExperimentId)
 {
-  send_getExperimentStatus(airavataExperimentId);
-  recv_getExperimentStatus(_return);
+  send_terminateExperiment(airavataExperimentId);
+  recv_terminateExperiment();
 }
 
-void AiravataClient::send_getExperimentStatus(const std::string& airavataExperimentId)
+void AiravataClient::send_terminateExperiment(const std::string& airavataExperimentId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getExperimentStatus", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("terminateExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getExperimentStatus_pargs args;
+  Airavata_terminateExperiment_pargs args;
   args.airavataExperimentId = &airavataExperimentId;
   args.write(oprot_);
 
@@ -10560,7 +11736,7 @@ void AiravataClient::send_getExperimentStatus(const std::string& airavataExperim
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getExperimentStatus( ::ExperimentStatus& _return)
+void AiravataClient::recv_terminateExperiment()
 {
 
   int32_t rseqid = 0;
@@ -10580,21 +11756,16 @@ void AiravataClient::recv_getExperimentStatus( ::ExperimentStatus& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getExperimentStatus") != 0) {
+  if (fname.compare("terminateExperiment") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getExperimentStatus_presult result;
-  result.success = &_return;
+  Airavata_terminateExperiment_presult result;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
-  if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
-  }
   if (result.__isset.ire) {
     throw result.ire;
   }
@@ -10607,22 +11778,22 @@ void AiravataClient::recv_getExperimentStatus( ::ExperimentStatus& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperimentStatus failed: unknown result");
+  return;
 }
 
-void AiravataClient::getExperimentOutputs(std::vector< ::DataObjectType> & _return, const std::string& airavataExperimentId)
+void AiravataClient::registerApplicationModule(std::string& _return, const  ::ApplicationModule& applicationModule)
 {
-  send_getExperimentOutputs(airavataExperimentId);
-  recv_getExperimentOutputs(_return);
+  send_registerApplicationModule(applicationModule);
+  recv_registerApplicationModule(_return);
 }
 
-void AiravataClient::send_getExperimentOutputs(const std::string& airavataExperimentId)
+void AiravataClient::send_registerApplicationModule(const  ::ApplicationModule& applicationModule)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getExperimentOutputs", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("registerApplicationModule", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getExperimentOutputs_pargs args;
-  args.airavataExperimentId = &airavataExperimentId;
+  Airavata_registerApplicationModule_pargs args;
+  args.applicationModule = &applicationModule;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10630,7 +11801,7 @@ void AiravataClient::send_getExperimentOutputs(const std::string& airavataExperi
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getExperimentOutputs(std::vector< ::DataObjectType> & _return)
+void AiravataClient::recv_registerApplicationModule(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -10650,12 +11821,12 @@ void AiravataClient::recv_getExperimentOutputs(std::vector< ::DataObjectType> &
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getExperimentOutputs") != 0) {
+  if (fname.compare("registerApplicationModule") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getExperimentOutputs_presult result;
+  Airavata_registerApplicationModule_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -10665,22 +11836,31 @@ void AiravataClient::recv_getExperimentOutputs(std::vector< ::DataObjectType> &
     // _return pointer has now been filled
     return;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperimentOutputs failed: unknown result");
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerApplicationModule failed: unknown result");
 }
 
-void AiravataClient::getJobStatuses(std::map<std::string,  ::JobStatus> & _return, const std::string& airavataExperimentId)
+void AiravataClient::getApplicationModule( ::ApplicationModule& _return, const std::string& appModuleId)
 {
-  send_getJobStatuses(airavataExperimentId);
-  recv_getJobStatuses(_return);
+  send_getApplicationModule(appModuleId);
+  recv_getApplicationModule(_return);
 }
 
-void AiravataClient::send_getJobStatuses(const std::string& airavataExperimentId)
+void AiravataClient::send_getApplicationModule(const std::string& appModuleId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getJobStatuses", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getApplicationModule", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getJobStatuses_pargs args;
-  args.airavataExperimentId = &airavataExperimentId;
+  Airavata_getApplicationModule_pargs args;
+  args.appModuleId = &appModuleId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -10688,7 +11868,7 @@ void AiravataClient::send_getJobStatuses(const std::string& airavataExperimentId
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getJobStatuses(std::map<std::string,  ::JobStatus> & _return)
+void AiravataClient::recv_getApplicationModule( ::ApplicationModule& _return)
 {
 
   int32_t rseqid = 0;
@@ -10708,12 +11888,12 @@ void AiravataClient::recv_getJobStatuses(std::map<std::string,  ::JobStatus> & _
     iprot

<TRUNCATED>

[2/6] Updating the thrift files documenttaion - AIRAVATA-1228

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
index 0abda57..22d249b 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
@@ -54,6 +54,10 @@ class AiravataIf {
   virtual bool deleteApplicationInterface(const std::string& appInterfaceId) = 0;
   virtual void getApplicationInputs(std::vector< ::InputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
   virtual void getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
+  virtual void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) = 0;
+  virtual void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId) = 0;
+  virtual bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) = 0;
+  virtual bool deleteComputeResource(const std::string& computeResourceId) = 0;
 };
 
 class AiravataIfFactory {
@@ -207,6 +211,20 @@ class AiravataNull : virtual public AiravataIf {
   void getApplicationOutputs(std::vector< ::OutputDataObjectType> & /* _return */, const std::string& /* appInterfaceId */) {
     return;
   }
+  void registerComputeResource(std::string& /* _return */, const  ::ComputeResourceDescription& /* computeResourceDescription */) {
+    return;
+  }
+  void getComputeResource( ::ComputeResourceDescription& /* _return */, const std::string& /* computeResourceId */) {
+    return;
+  }
+  bool updateComputeResource(const std::string& /* computeResourceId */, const  ::ComputeResourceDescription& /* computeResourceDescription */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteComputeResource(const std::string& /* computeResourceId */) {
+    bool _return = false;
+    return _return;
+  }
 };
 
 
@@ -5384,6 +5402,542 @@ class Airavata_getApplicationOutputs_presult {
 
 };
 
+
+class Airavata_registerComputeResource_args {
+ public:
+
+  Airavata_registerComputeResource_args() {
+  }
+
+  virtual ~Airavata_registerComputeResource_args() throw() {}
+
+   ::ComputeResourceDescription computeResourceDescription;
+
+  void __set_computeResourceDescription(const  ::ComputeResourceDescription& val) {
+    computeResourceDescription = val;
+  }
+
+  bool operator == (const Airavata_registerComputeResource_args & rhs) const
+  {
+    if (!(computeResourceDescription == rhs.computeResourceDescription))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_registerComputeResource_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_registerComputeResource_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_registerComputeResource_pargs {
+ public:
+
+
+  virtual ~Airavata_registerComputeResource_pargs() throw() {}
+
+  const  ::ComputeResourceDescription* computeResourceDescription;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_registerComputeResource_result__isset {
+  _Airavata_registerComputeResource_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_registerComputeResource_result__isset;
+
+class Airavata_registerComputeResource_result {
+ public:
+
+  Airavata_registerComputeResource_result() : success() {
+  }
+
+  virtual ~Airavata_registerComputeResource_result() throw() {}
+
+  std::string success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_registerComputeResource_result__isset __isset;
+
+  void __set_success(const std::string& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_registerComputeResource_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_registerComputeResource_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_registerComputeResource_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_registerComputeResource_presult__isset {
+  _Airavata_registerComputeResource_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_registerComputeResource_presult__isset;
+
+class Airavata_registerComputeResource_presult {
+ public:
+
+
+  virtual ~Airavata_registerComputeResource_presult() throw() {}
+
+  std::string* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_registerComputeResource_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getComputeResource_args {
+ public:
+
+  Airavata_getComputeResource_args() : computeResourceId() {
+  }
+
+  virtual ~Airavata_getComputeResource_args() throw() {}
+
+  std::string computeResourceId;
+
+  void __set_computeResourceId(const std::string& val) {
+    computeResourceId = val;
+  }
+
+  bool operator == (const Airavata_getComputeResource_args & rhs) const
+  {
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getComputeResource_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getComputeResource_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getComputeResource_pargs {
+ public:
+
+
+  virtual ~Airavata_getComputeResource_pargs() throw() {}
+
+  const std::string* computeResourceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getComputeResource_result__isset {
+  _Airavata_getComputeResource_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getComputeResource_result__isset;
+
+class Airavata_getComputeResource_result {
+ public:
+
+  Airavata_getComputeResource_result() {
+  }
+
+  virtual ~Airavata_getComputeResource_result() throw() {}
+
+   ::ComputeResourceDescription success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getComputeResource_result__isset __isset;
+
+  void __set_success(const  ::ComputeResourceDescription& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getComputeResource_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getComputeResource_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getComputeResource_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getComputeResource_presult__isset {
+  _Airavata_getComputeResource_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getComputeResource_presult__isset;
+
+class Airavata_getComputeResource_presult {
+ public:
+
+
+  virtual ~Airavata_getComputeResource_presult() throw() {}
+
+   ::ComputeResourceDescription* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getComputeResource_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateComputeResource_args {
+ public:
+
+  Airavata_updateComputeResource_args() : computeResourceId() {
+  }
+
+  virtual ~Airavata_updateComputeResource_args() throw() {}
+
+  std::string computeResourceId;
+   ::ComputeResourceDescription computeResourceDescription;
+
+  void __set_computeResourceId(const std::string& val) {
+    computeResourceId = val;
+  }
+
+  void __set_computeResourceDescription(const  ::ComputeResourceDescription& val) {
+    computeResourceDescription = val;
+  }
+
+  bool operator == (const Airavata_updateComputeResource_args & rhs) const
+  {
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    if (!(computeResourceDescription == rhs.computeResourceDescription))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateComputeResource_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateComputeResource_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateComputeResource_pargs {
+ public:
+
+
+  virtual ~Airavata_updateComputeResource_pargs() throw() {}
+
+  const std::string* computeResourceId;
+  const  ::ComputeResourceDescription* computeResourceDescription;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateComputeResource_result__isset {
+  _Airavata_updateComputeResource_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_updateComputeResource_result__isset;
+
+class Airavata_updateComputeResource_result {
+ public:
+
+  Airavata_updateComputeResource_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateComputeResource_result() throw() {}
+
+  bool success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_updateComputeResource_result__isset __isset;
+
+  void __set_success(const bool val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_updateComputeResource_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateComputeResource_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateComputeResource_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateComputeResource_presult__isset {
+  _Airavata_updateComputeResource_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_updateComputeResource_presult__isset;
+
+class Airavata_updateComputeResource_presult {
+ public:
+
+
+  virtual ~Airavata_updateComputeResource_presult() throw() {}
+
+  bool* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_updateComputeResource_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteComputeResource_args {
+ public:
+
+  Airavata_deleteComputeResource_args() : computeResourceId() {
+  }
+
+  virtual ~Airavata_deleteComputeResource_args() throw() {}
+
+  std::string computeResourceId;
+
+  void __set_computeResourceId(const std::string& val) {
+    computeResourceId = val;
+  }
+
+  bool operator == (const Airavata_deleteComputeResource_args & rhs) const
+  {
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteComputeResource_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteComputeResource_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteComputeResource_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteComputeResource_pargs() throw() {}
+
+  const std::string* computeResourceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteComputeResource_result__isset {
+  _Airavata_deleteComputeResource_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_deleteComputeResource_result__isset;
+
+class Airavata_deleteComputeResource_result {
+ public:
+
+  Airavata_deleteComputeResource_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteComputeResource_result() throw() {}
+
+  bool success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_deleteComputeResource_result__isset __isset;
+
+  void __set_success(const bool val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_deleteComputeResource_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteComputeResource_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteComputeResource_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteComputeResource_presult__isset {
+  _Airavata_deleteComputeResource_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_deleteComputeResource_presult__isset;
+
+class Airavata_deleteComputeResource_presult {
+ public:
+
+
+  virtual ~Airavata_deleteComputeResource_presult() throw() {}
+
+  bool* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_deleteComputeResource_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
 class AiravataClient : virtual public AiravataIf {
  public:
   AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) :
@@ -5521,6 +6075,18 @@ class AiravataClient : virtual public AiravataIf {
   void getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return, const std::string& appInterfaceId);
   void send_getApplicationOutputs(const std::string& appInterfaceId);
   void recv_getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return);
+  void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription);
+  void send_registerComputeResource(const  ::ComputeResourceDescription& computeResourceDescription);
+  void recv_registerComputeResource(std::string& _return);
+  void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId);
+  void send_getComputeResource(const std::string& computeResourceId);
+  void recv_getComputeResource( ::ComputeResourceDescription& _return);
+  bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription);
+  void send_updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription);
+  bool recv_updateComputeResource();
+  bool deleteComputeResource(const std::string& computeResourceId);
+  void send_deleteComputeResource(const std::string& computeResourceId);
+  bool recv_deleteComputeResource();
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -5575,6 +6141,10 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_deleteApplicationInterface(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationInputs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationOutputs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_registerComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  public:
   AiravataProcessor(boost::shared_ptr<AiravataIf> iface) :
     iface_(iface) {
@@ -5617,6 +6187,10 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["deleteApplicationInterface"] = &AiravataProcessor::process_deleteApplicationInterface;
     processMap_["getApplicationInputs"] = &AiravataProcessor::process_getApplicationInputs;
     processMap_["getApplicationOutputs"] = &AiravataProcessor::process_getApplicationOutputs;
+    processMap_["registerComputeResource"] = &AiravataProcessor::process_registerComputeResource;
+    processMap_["getComputeResource"] = &AiravataProcessor::process_getComputeResource;
+    processMap_["updateComputeResource"] = &AiravataProcessor::process_updateComputeResource;
+    processMap_["deleteComputeResource"] = &AiravataProcessor::process_deleteComputeResource;
   }
 
   virtual ~AiravataProcessor() {}
@@ -6022,6 +6596,44 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->registerComputeResource(_return, computeResourceDescription);
+    }
+    ifaces_[i]->registerComputeResource(_return, computeResourceDescription);
+    return;
+  }
+
+  void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getComputeResource(_return, computeResourceId);
+    }
+    ifaces_[i]->getComputeResource(_return, computeResourceId);
+    return;
+  }
+
+  bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateComputeResource(computeResourceId, computeResourceDescription);
+    }
+    return ifaces_[i]->updateComputeResource(computeResourceId, computeResourceDescription);
+  }
+
+  bool deleteComputeResource(const std::string& computeResourceId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteComputeResource(computeResourceId);
+    }
+    return ifaces_[i]->deleteComputeResource(computeResourceId);
+  }
+
 };
 
 }} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
index 4128243..4903b9e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
@@ -217,6 +217,26 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getApplicationOutputs\n");
   }
 
+  void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) {
+    // Your implementation goes here
+    printf("registerComputeResource\n");
+  }
+
+  void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId) {
+    // Your implementation goes here
+    printf("getComputeResource\n");
+  }
+
+  bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) {
+    // Your implementation goes here
+    printf("updateComputeResource\n");
+  }
+
+  bool deleteComputeResource(const std::string& computeResourceId) {
+    // Your implementation goes here
+    printf("deleteComputeResource\n");
+  }
+
 };
 
 int main(int argc, char **argv) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.cpp
index 100d24d..a473012 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.cpp
@@ -106,8 +106,8 @@ const char* _kDataMovementProtocolNames[] = {
 };
 const std::map<int, const char*> _DataMovementProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, _kDataMovementProtocolValues, _kDataMovementProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-const char* ResourceJobManager::ascii_fingerprint = "16E60A0DB3009C6110717701A56245C2";
-const uint8_t ResourceJobManager::binary_fingerprint[16] = {0x16,0xE6,0x0A,0x0D,0xB3,0x00,0x9C,0x61,0x10,0x71,0x77,0x01,0xA5,0x62,0x45,0xC2};
+const char* ResourceJobManager::ascii_fingerprint = "F61CAF80247D0E44C8D52504F3A43BED";
+const uint8_t ResourceJobManager::binary_fingerprint[16] = {0xF6,0x1C,0xAF,0x80,0x24,0x7D,0x0E,0x44,0xC8,0xD5,0x25,0x04,0xF3,0xA4,0x3B,0xED};
 
 uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -120,6 +120,7 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_resourceJobManagerId = false;
   bool isset_resourceJobManagerType = false;
 
   while (true)
@@ -131,6 +132,14 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
     switch (fid)
     {
       case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceJobManagerId);
+          isset_resourceJobManagerId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast0;
           xfer += iprot->readI32(ecast0);
@@ -140,7 +149,7 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
+      case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->pushMonitoringEndpoint);
           this->__isset.pushMonitoringEndpoint = true;
@@ -148,7 +157,7 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
+      case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->jobManagerBinPath);
           this->__isset.jobManagerBinPath = true;
@@ -156,7 +165,7 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
+      case 5:
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->jobManagerCommands.clear();
@@ -190,6 +199,8 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_resourceJobManagerId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_resourceJobManagerType)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
@@ -199,22 +210,26 @@ uint32_t ResourceJobManager::write(::apache::thrift::protocol::TProtocol* oprot)
   uint32_t xfer = 0;
   xfer += oprot->writeStructBegin("ResourceJobManager");
 
-  xfer += oprot->writeFieldBegin("resourceJobManagerType", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeFieldBegin("resourceJobManagerId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->resourceJobManagerId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceJobManagerType", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32((int32_t)this->resourceJobManagerType);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.pushMonitoringEndpoint) {
-    xfer += oprot->writeFieldBegin("pushMonitoringEndpoint", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeFieldBegin("pushMonitoringEndpoint", ::apache::thrift::protocol::T_STRING, 3);
     xfer += oprot->writeString(this->pushMonitoringEndpoint);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.jobManagerBinPath) {
-    xfer += oprot->writeFieldBegin("jobManagerBinPath", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeFieldBegin("jobManagerBinPath", ::apache::thrift::protocol::T_STRING, 4);
     xfer += oprot->writeString(this->jobManagerBinPath);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.jobManagerCommands) {
-    xfer += oprot->writeFieldBegin("jobManagerCommands", ::apache::thrift::protocol::T_MAP, 4);
+    xfer += oprot->writeFieldBegin("jobManagerCommands", ::apache::thrift::protocol::T_MAP, 5);
     {
       xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->jobManagerCommands.size()));
       std::map<JobManagerCommand::type, std::string> ::const_iterator _iter9;
@@ -234,6 +249,7 @@ uint32_t ResourceJobManager::write(::apache::thrift::protocol::TProtocol* oprot)
 
 void swap(ResourceJobManager &a, ResourceJobManager &b) {
   using ::std::swap;
+  swap(a.resourceJobManagerId, b.resourceJobManagerId);
   swap(a.resourceJobManagerType, b.resourceJobManagerType);
   swap(a.pushMonitoringEndpoint, b.pushMonitoringEndpoint);
   swap(a.jobManagerBinPath, b.jobManagerBinPath);
@@ -605,8 +621,8 @@ void swap(GridFTPDataMovement &a, GridFTPDataMovement &b) {
   swap(a.gridFTPEndPoints, b.gridFTPEndPoints);
 }
 
-const char* LOCALSubmission::ascii_fingerprint = "D4599FCDE7AF5015D8ECB662C15BB89C";
-const uint8_t LOCALSubmission::binary_fingerprint[16] = {0xD4,0x59,0x9F,0xCD,0xE7,0xAF,0x50,0x15,0xD8,0xEC,0xB6,0x62,0xC1,0x5B,0xB8,0x9C};
+const char* LOCALSubmission::ascii_fingerprint = "A5A35C842CBE1CA9D6A13C5974C6FB8F";
+const uint8_t LOCALSubmission::binary_fingerprint[16] = {0xA5,0xA3,0x5C,0x84,0x2C,0xBE,0x1C,0xA9,0xD6,0xA1,0x3C,0x59,0x74,0xC6,0xFB,0x8F};
 
 uint32_t LOCALSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -749,8 +765,8 @@ void swap(LOCALDataMovement &a, LOCALDataMovement &b) {
   swap(a.dataMovementInterfaceId, b.dataMovementInterfaceId);
 }
 
-const char* SSHJobSubmission::ascii_fingerprint = "0A593CE0EC92EB95612E7844E2EBB8D9";
-const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0x0A,0x59,0x3C,0xE0,0xEC,0x92,0xEB,0x95,0x61,0x2E,0x78,0x44,0xE2,0xEB,0xB8,0xD9};
+const char* SSHJobSubmission::ascii_fingerprint = "8BC403A3B093DDB0CB8F04ED699DBA3D";
+const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0x8B,0xC4,0x03,0xA3,0xB0,0x93,0xDD,0xB0,0xCB,0x8F,0x04,0xED,0x69,0x9D,0xBA,0x3D};
 
 uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.h
index fcccc18..41c7b8f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeResourceModel_types.h
@@ -99,14 +99,15 @@ typedef struct _ResourceJobManager__isset {
 class ResourceJobManager {
  public:
 
-  static const char* ascii_fingerprint; // = "16E60A0DB3009C6110717701A56245C2";
-  static const uint8_t binary_fingerprint[16]; // = {0x16,0xE6,0x0A,0x0D,0xB3,0x00,0x9C,0x61,0x10,0x71,0x77,0x01,0xA5,0x62,0x45,0xC2};
+  static const char* ascii_fingerprint; // = "F61CAF80247D0E44C8D52504F3A43BED";
+  static const uint8_t binary_fingerprint[16]; // = {0xF6,0x1C,0xAF,0x80,0x24,0x7D,0x0E,0x44,0xC8,0xD5,0x25,0x04,0xF3,0xA4,0x3B,0xED};
 
-  ResourceJobManager() : resourceJobManagerType((ResourceJobManagerType::type)0), pushMonitoringEndpoint(), jobManagerBinPath() {
+  ResourceJobManager() : resourceJobManagerId("DO_NOT_SET_AT_CLIENTS"), resourceJobManagerType((ResourceJobManagerType::type)0), pushMonitoringEndpoint(), jobManagerBinPath() {
   }
 
   virtual ~ResourceJobManager() throw() {}
 
+  std::string resourceJobManagerId;
   ResourceJobManagerType::type resourceJobManagerType;
   std::string pushMonitoringEndpoint;
   std::string jobManagerBinPath;
@@ -114,6 +115,10 @@ class ResourceJobManager {
 
   _ResourceJobManager__isset __isset;
 
+  void __set_resourceJobManagerId(const std::string& val) {
+    resourceJobManagerId = val;
+  }
+
   void __set_resourceJobManagerType(const ResourceJobManagerType::type val) {
     resourceJobManagerType = val;
   }
@@ -135,6 +140,8 @@ class ResourceJobManager {
 
   bool operator == (const ResourceJobManager & rhs) const
   {
+    if (!(resourceJobManagerId == rhs.resourceJobManagerId))
+      return false;
     if (!(resourceJobManagerType == rhs.resourceJobManagerType))
       return false;
     if (__isset.pushMonitoringEndpoint != rhs.__isset.pushMonitoringEndpoint)
@@ -387,8 +394,8 @@ void swap(GridFTPDataMovement &a, GridFTPDataMovement &b);
 class LOCALSubmission {
  public:
 
-  static const char* ascii_fingerprint; // = "D4599FCDE7AF5015D8ECB662C15BB89C";
-  static const uint8_t binary_fingerprint[16]; // = {0xD4,0x59,0x9F,0xCD,0xE7,0xAF,0x50,0x15,0xD8,0xEC,0xB6,0x62,0xC1,0x5B,0xB8,0x9C};
+  static const char* ascii_fingerprint; // = "A5A35C842CBE1CA9D6A13C5974C6FB8F";
+  static const uint8_t binary_fingerprint[16]; // = {0xA5,0xA3,0x5C,0x84,0x2C,0xBE,0x1C,0xA9,0xD6,0xA1,0x3C,0x59,0x74,0xC6,0xFB,0x8F};
 
   LOCALSubmission() : jobSubmissionInterfaceId("DO_NOT_SET_AT_CLIENTS") {
   }
@@ -473,8 +480,8 @@ typedef struct _SSHJobSubmission__isset {
 class SSHJobSubmission {
  public:
 
-  static const char* ascii_fingerprint; // = "0A593CE0EC92EB95612E7844E2EBB8D9";
-  static const uint8_t binary_fingerprint[16]; // = {0x0A,0x59,0x3C,0xE0,0xEC,0x92,0xEB,0x95,0x61,0x2E,0x78,0x44,0xE2,0xEB,0xB8,0xD9};
+  static const char* ascii_fingerprint; // = "8BC403A3B093DDB0CB8F04ED699DBA3D";
+  static const uint8_t binary_fingerprint[16]; // = {0x8B,0xC4,0x03,0xA3,0xB0,0x93,0xDD,0xB0,0xCB,0x8F,0x04,0xED,0x69,0x9D,0xBA,0x3D};
 
   SSHJobSubmission() : jobSubmissionInterfaceId("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), alternativeSSHHostName(), sshPort(22) {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index b3b842a..3db2aea 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -56,6 +56,10 @@ interface AiravataIf {
   public function deleteApplicationInterface($appInterfaceId);
   public function getApplicationInputs($appInterfaceId);
   public function getApplicationOutputs($appInterfaceId);
+  public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
+  public function getComputeResource($computeResourceId);
+  public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
+  public function deleteComputeResource($computeResourceId);
 }
 
 class AiravataClient implements \Airavata\API\AiravataIf {
@@ -2401,6 +2405,247 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getApplicationOutputs failed: unknown result");
   }
 
+  public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
+  {
+    $this->send_registerComputeResource($computeResourceDescription);
+    return $this->recv_registerComputeResource();
+  }
+
+  public function send_registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
+  {
+    $args = new \Airavata\API\Airavata_registerComputeResource_args();
+    $args->computeResourceDescription = $computeResourceDescription;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'registerComputeResource', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('registerComputeResource', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_registerComputeResource()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerComputeResource_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_registerComputeResource_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("registerComputeResource failed: unknown result");
+  }
+
+  public function getComputeResource($computeResourceId)
+  {
+    $this->send_getComputeResource($computeResourceId);
+    return $this->recv_getComputeResource();
+  }
+
+  public function send_getComputeResource($computeResourceId)
+  {
+    $args = new \Airavata\API\Airavata_getComputeResource_args();
+    $args->computeResourceId = $computeResourceId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getComputeResource', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getComputeResource', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getComputeResource()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getComputeResource_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getComputeResource_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("getComputeResource failed: unknown result");
+  }
+
+  public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
+  {
+    $this->send_updateComputeResource($computeResourceId, $computeResourceDescription);
+    return $this->recv_updateComputeResource();
+  }
+
+  public function send_updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
+  {
+    $args = new \Airavata\API\Airavata_updateComputeResource_args();
+    $args->computeResourceId = $computeResourceId;
+    $args->computeResourceDescription = $computeResourceDescription;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'updateComputeResource', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('updateComputeResource', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_updateComputeResource()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateComputeResource_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_updateComputeResource_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("updateComputeResource failed: unknown result");
+  }
+
+  public function deleteComputeResource($computeResourceId)
+  {
+    $this->send_deleteComputeResource($computeResourceId);
+    return $this->recv_deleteComputeResource();
+  }
+
+  public function send_deleteComputeResource($computeResourceId)
+  {
+    $args = new \Airavata\API\Airavata_deleteComputeResource_args();
+    $args->computeResourceId = $computeResourceId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'deleteComputeResource', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('deleteComputeResource', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_deleteComputeResource()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteComputeResource_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_deleteComputeResource_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("deleteComputeResource failed: unknown result");
+  }
+
 }
 
 // HELPER FUNCTIONS AND STRUCTURES
@@ -11167,4 +11412,879 @@ class Airavata_getApplicationOutputs_result {
 
 }
 
+class Airavata_registerComputeResource_args {
+  static $_TSPEC;
+
+  public $computeResourceDescription = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'computeResourceDescription',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['computeResourceDescription'])) {
+        $this->computeResourceDescription = $vals['computeResourceDescription'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_registerComputeResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->computeResourceDescription->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_args');
+    if ($this->computeResourceDescription !== null) {
+      if (!is_object($this->computeResourceDescription)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 1);
+      $xfer += $this->computeResourceDescription->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_registerComputeResource_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRING,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_registerComputeResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getComputeResource_args {
+  static $_TSPEC;
+
+  public $computeResourceId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getComputeResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getComputeResource_args');
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getComputeResource_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getComputeResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->success->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getComputeResource_result');
+    if ($this->success !== null) {
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateComputeResource_args {
+  static $_TSPEC;
+
+  public $computeResourceId = null;
+  public $computeResourceDescription = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'computeResourceDescription',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+      if (isset($vals['computeResourceDescription'])) {
+        $this->computeResourceDescription = $vals['computeResourceDescription'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateComputeResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->computeResourceDescription->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_args');
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->computeResourceDescription !== null) {
+      if (!is_object($this->computeResourceDescription)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 2);
+      $xfer += $this->computeResourceDescription->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateComputeResource_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateComputeResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_deleteComputeResource_args {
+  static $_TSPEC;
+
+  public $computeResourceId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteComputeResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteComputeResource_args');
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_deleteComputeResource_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteComputeResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteComputeResource_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index 6267bbf..b4666f7 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -110,6 +110,7 @@ final class DataMovementProtocol {
 class ResourceJobManager {
   static $_TSPEC;
 
+  public $resourceJobManagerId = "DO_NOT_SET_AT_CLIENTS";
   public $resourceJobManagerType = null;
   public $pushMonitoringEndpoint = null;
   public $jobManagerBinPath = null;
@@ -119,18 +120,22 @@ class ResourceJobManager {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
+          'var' => 'resourceJobManagerId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
           'var' => 'resourceJobManagerType',
           'type' => TType::I32,
           ),
-        2 => array(
+        3 => array(
           'var' => 'pushMonitoringEndpoint',
           'type' => TType::STRING,
           ),
-        3 => array(
+        4 => array(
           'var' => 'jobManagerBinPath',
           'type' => TType::STRING,
           ),
-        4 => array(
+        5 => array(
           'var' => 'jobManagerCommands',
           'type' => TType::MAP,
           'ktype' => TType::I32,
@@ -145,6 +150,9 @@ class ResourceJobManager {
         );
     }
     if (is_array($vals)) {
+      if (isset($vals['resourceJobManagerId'])) {
+        $this->resourceJobManagerId = $vals['resourceJobManagerId'];
+      }
       if (isset($vals['resourceJobManagerType'])) {
         $this->resourceJobManagerType = $vals['resourceJobManagerType'];
       }
@@ -180,27 +188,34 @@ class ResourceJobManager {
       switch ($fid)
       {
         case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceJobManagerId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
           if ($ftype == TType::I32) {
             $xfer += $input->readI32($this->resourceJobManagerType);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 2:
+        case 3:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->pushMonitoringEndpoint);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
+        case 4:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->jobManagerBinPath);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 4:
+        case 5:
           if ($ftype == TType::MAP) {
             $this->jobManagerCommands = array();
             $_size0 = 0;
@@ -233,18 +248,23 @@ class ResourceJobManager {
   public function write($output) {
     $xfer = 0;
     $xfer += $output->writeStructBegin('ResourceJobManager');
+    if ($this->resourceJobManagerId !== null) {
+      $xfer += $output->writeFieldBegin('resourceJobManagerId', TType::STRING, 1);
+      $xfer += $output->writeString($this->resourceJobManagerId);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->resourceJobManagerType !== null) {
-      $xfer += $output->writeFieldBegin('resourceJobManagerType', TType::I32, 1);
+      $xfer += $output->writeFieldBegin('resourceJobManagerType', TType::I32, 2);
       $xfer += $output->writeI32($this->resourceJobManagerType);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->pushMonitoringEndpoint !== null) {
-      $xfer += $output->writeFieldBegin('pushMonitoringEndpoint', TType::STRING, 2);
+      $xfer += $output->writeFieldBegin('pushMonitoringEndpoint', TType::STRING, 3);
       $xfer += $output->writeString($this->pushMonitoringEndpoint);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->jobManagerBinPath !== null) {
-      $xfer += $output->writeFieldBegin('jobManagerBinPath', TType::STRING, 3);
+      $xfer += $output->writeFieldBegin('jobManagerBinPath', TType::STRING, 4);
       $xfer += $output->writeString($this->jobManagerBinPath);
       $xfer += $output->writeFieldEnd();
     }
@@ -252,7 +272,7 @@ class ResourceJobManager {
       if (!is_array($this->jobManagerCommands)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('jobManagerCommands', TType::MAP, 4);
+      $xfer += $output->writeFieldBegin('jobManagerCommands', TType::MAP, 5);
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->jobManagerCommands));
         {

http://git-wip-us.apache.org/repos/asf/airavata/blob/08245f25/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 5fa261f..f1a75ae 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -56,6 +56,9 @@ import org.slf4j.LoggerFactory;
  * hostName:
  *   Fully Qualified Host Name.
  * 
+ * hostAliases:
+ *   Aliases if any.
+ * 
  * ipAddress:
  *   IP Addresses of the Resource.
  *