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

[04/16] adding generated code for API AIRAVATA-991

http://git-wip-us.apache.org/repos/asf/airavata/blob/28ac4b75/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/BasicMetadata.java
----------------------------------------------------------------------
diff --git a/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/BasicMetadata.java b/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/BasicMetadata.java
new file mode 100644
index 0000000..5abd063
--- /dev/null
+++ b/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/BasicMetadata.java
@@ -0,0 +1,914 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.experiment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A structure holding the basic experiment metadata.
+ * 
+ * userName:
+ *   The user name of the targeted gateway end user on whose behalf the experiment is being created.
+ *     the associated gateway identity can only be inferred from the security hand-shake so as to avoid
+ *     authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with
+ *     Airavata, an authorization exception is thrown.
+ * 
+ * experimentName:
+ *   The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced
+ *      by the generated experiment id.
+ * 
+ * experimentDescription:
+ *    The verbose description of the experiment. This is an optional parameter.
+ */
+@SuppressWarnings("all") public class BasicMetadata implements org.apache.thrift.TBase<BasicMetadata, BasicMetadata._Fields>, java.io.Serializable, Cloneable, Comparable<BasicMetadata> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BasicMetadata");
+
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectID", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField SHARE_EXPERIMENT_PUBLICLY_FIELD_DESC = new org.apache.thrift.protocol.TField("shareExperimentPublicly", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentID", org.apache.thrift.protocol.TType.STRING, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new BasicMetadataStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new BasicMetadataTupleSchemeFactory());
+  }
+
+  public String userName; // required
+  public String experimentName; // required
+  public String projectID; // required
+  public String experimentDescription; // optional
+  public boolean shareExperimentPublicly; // optional
+  public String experimentID; // 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 {
+    USER_NAME((short)1, "userName"),
+    EXPERIMENT_NAME((short)2, "experimentName"),
+    PROJECT_ID((short)3, "projectID"),
+    EXPERIMENT_DESCRIPTION((short)4, "experimentDescription"),
+    SHARE_EXPERIMENT_PUBLICLY((short)5, "shareExperimentPublicly"),
+    EXPERIMENT_ID((short)6, "experimentID");
+
+    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: // USER_NAME
+          return USER_NAME;
+        case 2: // EXPERIMENT_NAME
+          return EXPERIMENT_NAME;
+        case 3: // PROJECT_ID
+          return PROJECT_ID;
+        case 4: // EXPERIMENT_DESCRIPTION
+          return EXPERIMENT_DESCRIPTION;
+        case 5: // SHARE_EXPERIMENT_PUBLICLY
+          return SHARE_EXPERIMENT_PUBLICLY;
+        case 6: // EXPERIMENT_ID
+          return 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
+  private static final int __SHAREEXPERIMENTPUBLICLY_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.EXPERIMENT_DESCRIPTION,_Fields.SHARE_EXPERIMENT_PUBLICLY};
+  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.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_NAME, new org.apache.thrift.meta_data.FieldMetaData("experimentName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("experimentDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHARE_EXPERIMENT_PUBLICLY, new org.apache.thrift.meta_data.FieldMetaData("shareExperimentPublicly", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(BasicMetadata.class, metaDataMap);
+  }
+
+  public BasicMetadata() {
+    this.projectID = "default";
+
+    this.shareExperimentPublicly = false;
+
+    this.experimentID = "DO_NOT_SET";
+
+  }
+
+  public BasicMetadata(
+    String userName,
+    String experimentName,
+    String projectID,
+    String experimentID)
+  {
+    this();
+    this.userName = userName;
+    this.experimentName = experimentName;
+    this.projectID = projectID;
+    this.experimentID = experimentID;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public BasicMetadata(BasicMetadata other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetUserName()) {
+      this.userName = other.userName;
+    }
+    if (other.isSetExperimentName()) {
+      this.experimentName = other.experimentName;
+    }
+    if (other.isSetProjectID()) {
+      this.projectID = other.projectID;
+    }
+    if (other.isSetExperimentDescription()) {
+      this.experimentDescription = other.experimentDescription;
+    }
+    this.shareExperimentPublicly = other.shareExperimentPublicly;
+    if (other.isSetExperimentID()) {
+      this.experimentID = other.experimentID;
+    }
+  }
+
+  public BasicMetadata deepCopy() {
+    return new BasicMetadata(this);
+  }
+
+  @Override
+  public void clear() {
+    this.userName = null;
+    this.experimentName = null;
+    this.projectID = "default";
+
+    this.experimentDescription = null;
+    this.shareExperimentPublicly = false;
+
+    this.experimentID = "DO_NOT_SET";
+
+  }
+
+  public String getUserName() {
+    return this.userName;
+  }
+
+  public BasicMetadata setUserName(String userName) {
+    this.userName = userName;
+    return this;
+  }
+
+  public void unsetUserName() {
+    this.userName = null;
+  }
+
+  /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserName() {
+    return this.userName != null;
+  }
+
+  public void setUserNameIsSet(boolean value) {
+    if (!value) {
+      this.userName = null;
+    }
+  }
+
+  public String getExperimentName() {
+    return this.experimentName;
+  }
+
+  public BasicMetadata setExperimentName(String experimentName) {
+    this.experimentName = experimentName;
+    return this;
+  }
+
+  public void unsetExperimentName() {
+    this.experimentName = null;
+  }
+
+  /** Returns true if field experimentName is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentName() {
+    return this.experimentName != null;
+  }
+
+  public void setExperimentNameIsSet(boolean value) {
+    if (!value) {
+      this.experimentName = null;
+    }
+  }
+
+  public String getProjectID() {
+    return this.projectID;
+  }
+
+  public BasicMetadata setProjectID(String projectID) {
+    this.projectID = projectID;
+    return this;
+  }
+
+  public void unsetProjectID() {
+    this.projectID = null;
+  }
+
+  /** Returns true if field projectID is set (has been assigned a value) and false otherwise */
+  public boolean isSetProjectID() {
+    return this.projectID != null;
+  }
+
+  public void setProjectIDIsSet(boolean value) {
+    if (!value) {
+      this.projectID = null;
+    }
+  }
+
+  public String getExperimentDescription() {
+    return this.experimentDescription;
+  }
+
+  public BasicMetadata setExperimentDescription(String experimentDescription) {
+    this.experimentDescription = experimentDescription;
+    return this;
+  }
+
+  public void unsetExperimentDescription() {
+    this.experimentDescription = null;
+  }
+
+  /** Returns true if field experimentDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentDescription() {
+    return this.experimentDescription != null;
+  }
+
+  public void setExperimentDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.experimentDescription = null;
+    }
+  }
+
+  public boolean isShareExperimentPublicly() {
+    return this.shareExperimentPublicly;
+  }
+
+  public BasicMetadata setShareExperimentPublicly(boolean shareExperimentPublicly) {
+    this.shareExperimentPublicly = shareExperimentPublicly;
+    setShareExperimentPubliclyIsSet(true);
+    return this;
+  }
+
+  public void unsetShareExperimentPublicly() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID);
+  }
+
+  /** Returns true if field shareExperimentPublicly is set (has been assigned a value) and false otherwise */
+  public boolean isSetShareExperimentPublicly() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID);
+  }
+
+  public void setShareExperimentPubliclyIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID, value);
+  }
+
+  public String getExperimentID() {
+    return this.experimentID;
+  }
+
+  public BasicMetadata setExperimentID(String experimentID) {
+    this.experimentID = experimentID;
+    return this;
+  }
+
+  public void unsetExperimentID() {
+    this.experimentID = null;
+  }
+
+  /** Returns true if field experimentID is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentID() {
+    return this.experimentID != null;
+  }
+
+  public void setExperimentIDIsSet(boolean value) {
+    if (!value) {
+      this.experimentID = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case USER_NAME:
+      if (value == null) {
+        unsetUserName();
+      } else {
+        setUserName((String)value);
+      }
+      break;
+
+    case EXPERIMENT_NAME:
+      if (value == null) {
+        unsetExperimentName();
+      } else {
+        setExperimentName((String)value);
+      }
+      break;
+
+    case PROJECT_ID:
+      if (value == null) {
+        unsetProjectID();
+      } else {
+        setProjectID((String)value);
+      }
+      break;
+
+    case EXPERIMENT_DESCRIPTION:
+      if (value == null) {
+        unsetExperimentDescription();
+      } else {
+        setExperimentDescription((String)value);
+      }
+      break;
+
+    case SHARE_EXPERIMENT_PUBLICLY:
+      if (value == null) {
+        unsetShareExperimentPublicly();
+      } else {
+        setShareExperimentPublicly((Boolean)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentID();
+      } else {
+        setExperimentID((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case USER_NAME:
+      return getUserName();
+
+    case EXPERIMENT_NAME:
+      return getExperimentName();
+
+    case PROJECT_ID:
+      return getProjectID();
+
+    case EXPERIMENT_DESCRIPTION:
+      return getExperimentDescription();
+
+    case SHARE_EXPERIMENT_PUBLICLY:
+      return Boolean.valueOf(isShareExperimentPublicly());
+
+    case EXPERIMENT_ID:
+      return getExperimentID();
+
+    }
+    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 USER_NAME:
+      return isSetUserName();
+    case EXPERIMENT_NAME:
+      return isSetExperimentName();
+    case PROJECT_ID:
+      return isSetProjectID();
+    case EXPERIMENT_DESCRIPTION:
+      return isSetExperimentDescription();
+    case SHARE_EXPERIMENT_PUBLICLY:
+      return isSetShareExperimentPublicly();
+    case EXPERIMENT_ID:
+      return isSetExperimentID();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof BasicMetadata)
+      return this.equals((BasicMetadata)that);
+    return false;
+  }
+
+  public boolean equals(BasicMetadata that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_userName = true && this.isSetUserName();
+    boolean that_present_userName = true && that.isSetUserName();
+    if (this_present_userName || that_present_userName) {
+      if (!(this_present_userName && that_present_userName))
+        return false;
+      if (!this.userName.equals(that.userName))
+        return false;
+    }
+
+    boolean this_present_experimentName = true && this.isSetExperimentName();
+    boolean that_present_experimentName = true && that.isSetExperimentName();
+    if (this_present_experimentName || that_present_experimentName) {
+      if (!(this_present_experimentName && that_present_experimentName))
+        return false;
+      if (!this.experimentName.equals(that.experimentName))
+        return false;
+    }
+
+    boolean this_present_projectID = true && this.isSetProjectID();
+    boolean that_present_projectID = true && that.isSetProjectID();
+    if (this_present_projectID || that_present_projectID) {
+      if (!(this_present_projectID && that_present_projectID))
+        return false;
+      if (!this.projectID.equals(that.projectID))
+        return false;
+    }
+
+    boolean this_present_experimentDescription = true && this.isSetExperimentDescription();
+    boolean that_present_experimentDescription = true && that.isSetExperimentDescription();
+    if (this_present_experimentDescription || that_present_experimentDescription) {
+      if (!(this_present_experimentDescription && that_present_experimentDescription))
+        return false;
+      if (!this.experimentDescription.equals(that.experimentDescription))
+        return false;
+    }
+
+    boolean this_present_shareExperimentPublicly = true && this.isSetShareExperimentPublicly();
+    boolean that_present_shareExperimentPublicly = true && that.isSetShareExperimentPublicly();
+    if (this_present_shareExperimentPublicly || that_present_shareExperimentPublicly) {
+      if (!(this_present_shareExperimentPublicly && that_present_shareExperimentPublicly))
+        return false;
+      if (this.shareExperimentPublicly != that.shareExperimentPublicly)
+        return false;
+    }
+
+    boolean this_present_experimentID = true && this.isSetExperimentID();
+    boolean that_present_experimentID = true && that.isSetExperimentID();
+    if (this_present_experimentID || that_present_experimentID) {
+      if (!(this_present_experimentID && that_present_experimentID))
+        return false;
+      if (!this.experimentID.equals(that.experimentID))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(BasicMetadata other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentName()).compareTo(other.isSetExperimentName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentName, other.experimentName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProjectID()).compareTo(other.isSetProjectID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProjectID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projectID, other.projectID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentDescription()).compareTo(other.isSetExperimentDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentDescription, other.experimentDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetShareExperimentPublicly()).compareTo(other.isSetShareExperimentPublicly());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetShareExperimentPublicly()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shareExperimentPublicly, other.shareExperimentPublicly);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentID()).compareTo(other.isSetExperimentID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentID, other.experimentID);
+      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("BasicMetadata(");
+    boolean first = true;
+
+    sb.append("userName:");
+    if (this.userName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentName:");
+    if (this.experimentName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("projectID:");
+    if (this.projectID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.projectID);
+    }
+    first = false;
+    if (isSetExperimentDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("experimentDescription:");
+      if (this.experimentDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.experimentDescription);
+      }
+      first = false;
+    }
+    if (isSetShareExperimentPublicly()) {
+      if (!first) sb.append(", ");
+      sb.append("shareExperimentPublicly:");
+      sb.append(this.shareExperimentPublicly);
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("experimentID:");
+    if (this.experimentID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentID);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (userName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+    }
+    if (experimentName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentName' was not present! Struct: " + toString());
+    }
+    if (projectID == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectID' was not present! Struct: " + toString());
+    }
+    if (experimentID == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentID' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class BasicMetadataStandardSchemeFactory implements SchemeFactory {
+    public BasicMetadataStandardScheme getScheme() {
+      return new BasicMetadataStandardScheme();
+    }
+  }
+
+  private static class BasicMetadataStandardScheme extends StandardScheme<BasicMetadata> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, BasicMetadata 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: // USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userName = iprot.readString();
+              struct.setUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // EXPERIMENT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentName = iprot.readString();
+              struct.setExperimentNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PROJECT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.projectID = iprot.readString();
+              struct.setProjectIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXPERIMENT_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentDescription = iprot.readString();
+              struct.setExperimentDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SHARE_EXPERIMENT_PUBLICLY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.shareExperimentPublicly = iprot.readBool();
+              struct.setShareExperimentPubliclyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentID = iprot.readString();
+              struct.setExperimentIDIsSet(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, BasicMetadata struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.userName != null) {
+        oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+        oprot.writeString(struct.userName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentName != null) {
+        oprot.writeFieldBegin(EXPERIMENT_NAME_FIELD_DESC);
+        oprot.writeString(struct.experimentName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.projectID != null) {
+        oprot.writeFieldBegin(PROJECT_ID_FIELD_DESC);
+        oprot.writeString(struct.projectID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentDescription != null) {
+        if (struct.isSetExperimentDescription()) {
+          oprot.writeFieldBegin(EXPERIMENT_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.experimentDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetShareExperimentPublicly()) {
+        oprot.writeFieldBegin(SHARE_EXPERIMENT_PUBLICLY_FIELD_DESC);
+        oprot.writeBool(struct.shareExperimentPublicly);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentID != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentID);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class BasicMetadataTupleSchemeFactory implements SchemeFactory {
+    public BasicMetadataTupleScheme getScheme() {
+      return new BasicMetadataTupleScheme();
+    }
+  }
+
+  private static class BasicMetadataTupleScheme extends TupleScheme<BasicMetadata> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, BasicMetadata struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.userName);
+      oprot.writeString(struct.experimentName);
+      oprot.writeString(struct.projectID);
+      oprot.writeString(struct.experimentID);
+      BitSet optionals = new BitSet();
+      if (struct.isSetExperimentDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetShareExperimentPublicly()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetExperimentDescription()) {
+        oprot.writeString(struct.experimentDescription);
+      }
+      if (struct.isSetShareExperimentPublicly()) {
+        oprot.writeBool(struct.shareExperimentPublicly);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, BasicMetadata struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.userName = iprot.readString();
+      struct.setUserNameIsSet(true);
+      struct.experimentName = iprot.readString();
+      struct.setExperimentNameIsSet(true);
+      struct.projectID = iprot.readString();
+      struct.setProjectIDIsSet(true);
+      struct.experimentID = iprot.readString();
+      struct.setExperimentIDIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.experimentDescription = iprot.readString();
+        struct.setExperimentDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.shareExperimentPublicly = iprot.readBool();
+        struct.setShareExperimentPubliclyIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/28ac4b75/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/ComputationalResourceScheduling.java
----------------------------------------------------------------------
diff --git a/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/ComputationalResourceScheduling.java b/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/ComputationalResourceScheduling.java
new file mode 100644
index 0000000..792ef0b
--- /dev/null
+++ b/airavata-api/server/src/main/java/org/apache/airavata/model/experiment/ComputationalResourceScheduling.java
@@ -0,0 +1,1375 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.experiment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A structure holding the Computational Resource Scheduling.
+ * 
+ */
+@SuppressWarnings("all") public class ComputationalResourceScheduling implements org.apache.thrift.TBase<ComputationalResourceScheduling, ComputationalResourceScheduling._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceScheduling> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceScheduling");
+
+  private static final org.apache.thrift.protocol.TField AIRAVATA_AUTO_SCHEDULE_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataAutoSchedule", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_MANUAL_SCHEDULED_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideManualScheduledParams", org.apache.thrift.protocol.TType.BOOL, (short)2);
+  private static final org.apache.thrift.protocol.TField RESOURCE_HOST_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceHostId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField TOTAL_CPUCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("totalCPUCount", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField NODE_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeCount", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField NUMBER_OF_THREADS_FIELD_DESC = new org.apache.thrift.protocol.TField("numberOfThreads", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField QUEUE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("queueName", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField WALL_TIME_LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wallTimeLimit", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField JOB_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStartTime", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField TOTAL_PHYSICAL_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("totalPhysicalMemory", org.apache.thrift.protocol.TType.I32, (short)10);
+  private static final org.apache.thrift.protocol.TField COMPUTATIONAL_PROJECT_ACCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("ComputationalProjectAccount", org.apache.thrift.protocol.TType.STRING, (short)11);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ComputationalResourceSchedulingStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ComputationalResourceSchedulingTupleSchemeFactory());
+  }
+
+  public boolean airavataAutoSchedule; // required
+  public boolean overrideManualScheduledParams; // required
+  public String resourceHostId; // optional
+  public int totalCPUCount; // optional
+  public int nodeCount; // optional
+  public int numberOfThreads; // optional
+  public String queueName; // optional
+  public int wallTimeLimit; // optional
+  public int jobStartTime; // optional
+  public int totalPhysicalMemory; // optional
+  public String ComputationalProjectAccount; // optional
+
+  /** 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_AUTO_SCHEDULE((short)1, "airavataAutoSchedule"),
+    OVERRIDE_MANUAL_SCHEDULED_PARAMS((short)2, "overrideManualScheduledParams"),
+    RESOURCE_HOST_ID((short)3, "resourceHostId"),
+    TOTAL_CPUCOUNT((short)4, "totalCPUCount"),
+    NODE_COUNT((short)5, "nodeCount"),
+    NUMBER_OF_THREADS((short)6, "numberOfThreads"),
+    QUEUE_NAME((short)7, "queueName"),
+    WALL_TIME_LIMIT((short)8, "wallTimeLimit"),
+    JOB_START_TIME((short)9, "jobStartTime"),
+    TOTAL_PHYSICAL_MEMORY((short)10, "totalPhysicalMemory"),
+    COMPUTATIONAL_PROJECT_ACCOUNT((short)11, "ComputationalProjectAccount");
+
+    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_AUTO_SCHEDULE
+          return AIRAVATA_AUTO_SCHEDULE;
+        case 2: // OVERRIDE_MANUAL_SCHEDULED_PARAMS
+          return OVERRIDE_MANUAL_SCHEDULED_PARAMS;
+        case 3: // RESOURCE_HOST_ID
+          return RESOURCE_HOST_ID;
+        case 4: // TOTAL_CPUCOUNT
+          return TOTAL_CPUCOUNT;
+        case 5: // NODE_COUNT
+          return NODE_COUNT;
+        case 6: // NUMBER_OF_THREADS
+          return NUMBER_OF_THREADS;
+        case 7: // QUEUE_NAME
+          return QUEUE_NAME;
+        case 8: // WALL_TIME_LIMIT
+          return WALL_TIME_LIMIT;
+        case 9: // JOB_START_TIME
+          return JOB_START_TIME;
+        case 10: // TOTAL_PHYSICAL_MEMORY
+          return TOTAL_PHYSICAL_MEMORY;
+        case 11: // COMPUTATIONAL_PROJECT_ACCOUNT
+          return COMPUTATIONAL_PROJECT_ACCOUNT;
+        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
+  private static final int __AIRAVATAAUTOSCHEDULE_ISSET_ID = 0;
+  private static final int __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID = 1;
+  private static final int __TOTALCPUCOUNT_ISSET_ID = 2;
+  private static final int __NODECOUNT_ISSET_ID = 3;
+  private static final int __NUMBEROFTHREADS_ISSET_ID = 4;
+  private static final int __WALLTIMELIMIT_ISSET_ID = 5;
+  private static final int __JOBSTARTTIME_ISSET_ID = 6;
+  private static final int __TOTALPHYSICALMEMORY_ISSET_ID = 7;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.JOB_START_TIME,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.COMPUTATIONAL_PROJECT_ACCOUNT};
+  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_AUTO_SCHEDULE, new org.apache.thrift.meta_data.FieldMetaData("airavataAutoSchedule", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.OVERRIDE_MANUAL_SCHEDULED_PARAMS, new org.apache.thrift.meta_data.FieldMetaData("overrideManualScheduledParams", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.RESOURCE_HOST_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceHostId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TOTAL_CPUCOUNT, new org.apache.thrift.meta_data.FieldMetaData("totalCPUCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.NODE_COUNT, new org.apache.thrift.meta_data.FieldMetaData("nodeCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.NUMBER_OF_THREADS, new org.apache.thrift.meta_data.FieldMetaData("numberOfThreads", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.QUEUE_NAME, new org.apache.thrift.meta_data.FieldMetaData("queueName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.WALL_TIME_LIMIT, new org.apache.thrift.meta_data.FieldMetaData("wallTimeLimit", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.JOB_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("jobStartTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.TOTAL_PHYSICAL_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("totalPhysicalMemory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.COMPUTATIONAL_PROJECT_ACCOUNT, new org.apache.thrift.meta_data.FieldMetaData("ComputationalProjectAccount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputationalResourceScheduling.class, metaDataMap);
+  }
+
+  public ComputationalResourceScheduling() {
+    this.airavataAutoSchedule = true;
+
+    this.overrideManualScheduledParams = false;
+
+  }
+
+  public ComputationalResourceScheduling(
+    boolean airavataAutoSchedule,
+    boolean overrideManualScheduledParams)
+  {
+    this();
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ComputationalResourceScheduling(ComputationalResourceScheduling other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.airavataAutoSchedule = other.airavataAutoSchedule;
+    this.overrideManualScheduledParams = other.overrideManualScheduledParams;
+    if (other.isSetResourceHostId()) {
+      this.resourceHostId = other.resourceHostId;
+    }
+    this.totalCPUCount = other.totalCPUCount;
+    this.nodeCount = other.nodeCount;
+    this.numberOfThreads = other.numberOfThreads;
+    if (other.isSetQueueName()) {
+      this.queueName = other.queueName;
+    }
+    this.wallTimeLimit = other.wallTimeLimit;
+    this.jobStartTime = other.jobStartTime;
+    this.totalPhysicalMemory = other.totalPhysicalMemory;
+    if (other.isSetComputationalProjectAccount()) {
+      this.ComputationalProjectAccount = other.ComputationalProjectAccount;
+    }
+  }
+
+  public ComputationalResourceScheduling deepCopy() {
+    return new ComputationalResourceScheduling(this);
+  }
+
+  @Override
+  public void clear() {
+    this.airavataAutoSchedule = true;
+
+    this.overrideManualScheduledParams = false;
+
+    this.resourceHostId = null;
+    setTotalCPUCountIsSet(false);
+    this.totalCPUCount = 0;
+    setNodeCountIsSet(false);
+    this.nodeCount = 0;
+    setNumberOfThreadsIsSet(false);
+    this.numberOfThreads = 0;
+    this.queueName = null;
+    setWallTimeLimitIsSet(false);
+    this.wallTimeLimit = 0;
+    setJobStartTimeIsSet(false);
+    this.jobStartTime = 0;
+    setTotalPhysicalMemoryIsSet(false);
+    this.totalPhysicalMemory = 0;
+    this.ComputationalProjectAccount = null;
+  }
+
+  public boolean isAiravataAutoSchedule() {
+    return this.airavataAutoSchedule;
+  }
+
+  public ComputationalResourceScheduling setAiravataAutoSchedule(boolean airavataAutoSchedule) {
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+    return this;
+  }
+
+  public void unsetAiravataAutoSchedule() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID);
+  }
+
+  /** Returns true if field airavataAutoSchedule is set (has been assigned a value) and false otherwise */
+  public boolean isSetAiravataAutoSchedule() {
+    return EncodingUtils.testBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID);
+  }
+
+  public void setAiravataAutoScheduleIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID, value);
+  }
+
+  public boolean isOverrideManualScheduledParams() {
+    return this.overrideManualScheduledParams;
+  }
+
+  public ComputationalResourceScheduling setOverrideManualScheduledParams(boolean overrideManualScheduledParams) {
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+    return this;
+  }
+
+  public void unsetOverrideManualScheduledParams() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID);
+  }
+
+  /** Returns true if field overrideManualScheduledParams is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideManualScheduledParams() {
+    return EncodingUtils.testBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID);
+  }
+
+  public void setOverrideManualScheduledParamsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID, value);
+  }
+
+  public String getResourceHostId() {
+    return this.resourceHostId;
+  }
+
+  public ComputationalResourceScheduling setResourceHostId(String resourceHostId) {
+    this.resourceHostId = resourceHostId;
+    return this;
+  }
+
+  public void unsetResourceHostId() {
+    this.resourceHostId = null;
+  }
+
+  /** Returns true if field resourceHostId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceHostId() {
+    return this.resourceHostId != null;
+  }
+
+  public void setResourceHostIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceHostId = null;
+    }
+  }
+
+  public int getTotalCPUCount() {
+    return this.totalCPUCount;
+  }
+
+  public ComputationalResourceScheduling setTotalCPUCount(int totalCPUCount) {
+    this.totalCPUCount = totalCPUCount;
+    setTotalCPUCountIsSet(true);
+    return this;
+  }
+
+  public void unsetTotalCPUCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field totalCPUCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetTotalCPUCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID);
+  }
+
+  public void setTotalCPUCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID, value);
+  }
+
+  public int getNodeCount() {
+    return this.nodeCount;
+  }
+
+  public ComputationalResourceScheduling setNodeCount(int nodeCount) {
+    this.nodeCount = nodeCount;
+    setNodeCountIsSet(true);
+    return this;
+  }
+
+  public void unsetNodeCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NODECOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field nodeCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetNodeCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __NODECOUNT_ISSET_ID);
+  }
+
+  public void setNodeCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NODECOUNT_ISSET_ID, value);
+  }
+
+  public int getNumberOfThreads() {
+    return this.numberOfThreads;
+  }
+
+  public ComputationalResourceScheduling setNumberOfThreads(int numberOfThreads) {
+    this.numberOfThreads = numberOfThreads;
+    setNumberOfThreadsIsSet(true);
+    return this;
+  }
+
+  public void unsetNumberOfThreads() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID);
+  }
+
+  /** Returns true if field numberOfThreads is set (has been assigned a value) and false otherwise */
+  public boolean isSetNumberOfThreads() {
+    return EncodingUtils.testBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID);
+  }
+
+  public void setNumberOfThreadsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID, value);
+  }
+
+  public String getQueueName() {
+    return this.queueName;
+  }
+
+  public ComputationalResourceScheduling setQueueName(String queueName) {
+    this.queueName = queueName;
+    return this;
+  }
+
+  public void unsetQueueName() {
+    this.queueName = null;
+  }
+
+  /** Returns true if field queueName is set (has been assigned a value) and false otherwise */
+  public boolean isSetQueueName() {
+    return this.queueName != null;
+  }
+
+  public void setQueueNameIsSet(boolean value) {
+    if (!value) {
+      this.queueName = null;
+    }
+  }
+
+  public int getWallTimeLimit() {
+    return this.wallTimeLimit;
+  }
+
+  public ComputationalResourceScheduling setWallTimeLimit(int wallTimeLimit) {
+    this.wallTimeLimit = wallTimeLimit;
+    setWallTimeLimitIsSet(true);
+    return this;
+  }
+
+  public void unsetWallTimeLimit() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID);
+  }
+
+  /** Returns true if field wallTimeLimit is set (has been assigned a value) and false otherwise */
+  public boolean isSetWallTimeLimit() {
+    return EncodingUtils.testBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID);
+  }
+
+  public void setWallTimeLimitIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID, value);
+  }
+
+  public int getJobStartTime() {
+    return this.jobStartTime;
+  }
+
+  public ComputationalResourceScheduling setJobStartTime(int jobStartTime) {
+    this.jobStartTime = jobStartTime;
+    setJobStartTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetJobStartTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __JOBSTARTTIME_ISSET_ID);
+  }
+
+  /** Returns true if field jobStartTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobStartTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __JOBSTARTTIME_ISSET_ID);
+  }
+
+  public void setJobStartTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __JOBSTARTTIME_ISSET_ID, value);
+  }
+
+  public int getTotalPhysicalMemory() {
+    return this.totalPhysicalMemory;
+  }
+
+  public ComputationalResourceScheduling setTotalPhysicalMemory(int totalPhysicalMemory) {
+    this.totalPhysicalMemory = totalPhysicalMemory;
+    setTotalPhysicalMemoryIsSet(true);
+    return this;
+  }
+
+  public void unsetTotalPhysicalMemory() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID);
+  }
+
+  /** Returns true if field totalPhysicalMemory is set (has been assigned a value) and false otherwise */
+  public boolean isSetTotalPhysicalMemory() {
+    return EncodingUtils.testBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID);
+  }
+
+  public void setTotalPhysicalMemoryIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID, value);
+  }
+
+  public String getComputationalProjectAccount() {
+    return this.ComputationalProjectAccount;
+  }
+
+  public ComputationalResourceScheduling setComputationalProjectAccount(String ComputationalProjectAccount) {
+    this.ComputationalProjectAccount = ComputationalProjectAccount;
+    return this;
+  }
+
+  public void unsetComputationalProjectAccount() {
+    this.ComputationalProjectAccount = null;
+  }
+
+  /** Returns true if field ComputationalProjectAccount is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputationalProjectAccount() {
+    return this.ComputationalProjectAccount != null;
+  }
+
+  public void setComputationalProjectAccountIsSet(boolean value) {
+    if (!value) {
+      this.ComputationalProjectAccount = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case AIRAVATA_AUTO_SCHEDULE:
+      if (value == null) {
+        unsetAiravataAutoSchedule();
+      } else {
+        setAiravataAutoSchedule((Boolean)value);
+      }
+      break;
+
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      if (value == null) {
+        unsetOverrideManualScheduledParams();
+      } else {
+        setOverrideManualScheduledParams((Boolean)value);
+      }
+      break;
+
+    case RESOURCE_HOST_ID:
+      if (value == null) {
+        unsetResourceHostId();
+      } else {
+        setResourceHostId((String)value);
+      }
+      break;
+
+    case TOTAL_CPUCOUNT:
+      if (value == null) {
+        unsetTotalCPUCount();
+      } else {
+        setTotalCPUCount((Integer)value);
+      }
+      break;
+
+    case NODE_COUNT:
+      if (value == null) {
+        unsetNodeCount();
+      } else {
+        setNodeCount((Integer)value);
+      }
+      break;
+
+    case NUMBER_OF_THREADS:
+      if (value == null) {
+        unsetNumberOfThreads();
+      } else {
+        setNumberOfThreads((Integer)value);
+      }
+      break;
+
+    case QUEUE_NAME:
+      if (value == null) {
+        unsetQueueName();
+      } else {
+        setQueueName((String)value);
+      }
+      break;
+
+    case WALL_TIME_LIMIT:
+      if (value == null) {
+        unsetWallTimeLimit();
+      } else {
+        setWallTimeLimit((Integer)value);
+      }
+      break;
+
+    case JOB_START_TIME:
+      if (value == null) {
+        unsetJobStartTime();
+      } else {
+        setJobStartTime((Integer)value);
+      }
+      break;
+
+    case TOTAL_PHYSICAL_MEMORY:
+      if (value == null) {
+        unsetTotalPhysicalMemory();
+      } else {
+        setTotalPhysicalMemory((Integer)value);
+      }
+      break;
+
+    case COMPUTATIONAL_PROJECT_ACCOUNT:
+      if (value == null) {
+        unsetComputationalProjectAccount();
+      } else {
+        setComputationalProjectAccount((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case AIRAVATA_AUTO_SCHEDULE:
+      return Boolean.valueOf(isAiravataAutoSchedule());
+
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      return Boolean.valueOf(isOverrideManualScheduledParams());
+
+    case RESOURCE_HOST_ID:
+      return getResourceHostId();
+
+    case TOTAL_CPUCOUNT:
+      return Integer.valueOf(getTotalCPUCount());
+
+    case NODE_COUNT:
+      return Integer.valueOf(getNodeCount());
+
+    case NUMBER_OF_THREADS:
+      return Integer.valueOf(getNumberOfThreads());
+
+    case QUEUE_NAME:
+      return getQueueName();
+
+    case WALL_TIME_LIMIT:
+      return Integer.valueOf(getWallTimeLimit());
+
+    case JOB_START_TIME:
+      return Integer.valueOf(getJobStartTime());
+
+    case TOTAL_PHYSICAL_MEMORY:
+      return Integer.valueOf(getTotalPhysicalMemory());
+
+    case COMPUTATIONAL_PROJECT_ACCOUNT:
+      return getComputationalProjectAccount();
+
+    }
+    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_AUTO_SCHEDULE:
+      return isSetAiravataAutoSchedule();
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      return isSetOverrideManualScheduledParams();
+    case RESOURCE_HOST_ID:
+      return isSetResourceHostId();
+    case TOTAL_CPUCOUNT:
+      return isSetTotalCPUCount();
+    case NODE_COUNT:
+      return isSetNodeCount();
+    case NUMBER_OF_THREADS:
+      return isSetNumberOfThreads();
+    case QUEUE_NAME:
+      return isSetQueueName();
+    case WALL_TIME_LIMIT:
+      return isSetWallTimeLimit();
+    case JOB_START_TIME:
+      return isSetJobStartTime();
+    case TOTAL_PHYSICAL_MEMORY:
+      return isSetTotalPhysicalMemory();
+    case COMPUTATIONAL_PROJECT_ACCOUNT:
+      return isSetComputationalProjectAccount();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ComputationalResourceScheduling)
+      return this.equals((ComputationalResourceScheduling)that);
+    return false;
+  }
+
+  public boolean equals(ComputationalResourceScheduling that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_airavataAutoSchedule = true;
+    boolean that_present_airavataAutoSchedule = true;
+    if (this_present_airavataAutoSchedule || that_present_airavataAutoSchedule) {
+      if (!(this_present_airavataAutoSchedule && that_present_airavataAutoSchedule))
+        return false;
+      if (this.airavataAutoSchedule != that.airavataAutoSchedule)
+        return false;
+    }
+
+    boolean this_present_overrideManualScheduledParams = true;
+    boolean that_present_overrideManualScheduledParams = true;
+    if (this_present_overrideManualScheduledParams || that_present_overrideManualScheduledParams) {
+      if (!(this_present_overrideManualScheduledParams && that_present_overrideManualScheduledParams))
+        return false;
+      if (this.overrideManualScheduledParams != that.overrideManualScheduledParams)
+        return false;
+    }
+
+    boolean this_present_resourceHostId = true && this.isSetResourceHostId();
+    boolean that_present_resourceHostId = true && that.isSetResourceHostId();
+    if (this_present_resourceHostId || that_present_resourceHostId) {
+      if (!(this_present_resourceHostId && that_present_resourceHostId))
+        return false;
+      if (!this.resourceHostId.equals(that.resourceHostId))
+        return false;
+    }
+
+    boolean this_present_totalCPUCount = true && this.isSetTotalCPUCount();
+    boolean that_present_totalCPUCount = true && that.isSetTotalCPUCount();
+    if (this_present_totalCPUCount || that_present_totalCPUCount) {
+      if (!(this_present_totalCPUCount && that_present_totalCPUCount))
+        return false;
+      if (this.totalCPUCount != that.totalCPUCount)
+        return false;
+    }
+
+    boolean this_present_nodeCount = true && this.isSetNodeCount();
+    boolean that_present_nodeCount = true && that.isSetNodeCount();
+    if (this_present_nodeCount || that_present_nodeCount) {
+      if (!(this_present_nodeCount && that_present_nodeCount))
+        return false;
+      if (this.nodeCount != that.nodeCount)
+        return false;
+    }
+
+    boolean this_present_numberOfThreads = true && this.isSetNumberOfThreads();
+    boolean that_present_numberOfThreads = true && that.isSetNumberOfThreads();
+    if (this_present_numberOfThreads || that_present_numberOfThreads) {
+      if (!(this_present_numberOfThreads && that_present_numberOfThreads))
+        return false;
+      if (this.numberOfThreads != that.numberOfThreads)
+        return false;
+    }
+
+    boolean this_present_queueName = true && this.isSetQueueName();
+    boolean that_present_queueName = true && that.isSetQueueName();
+    if (this_present_queueName || that_present_queueName) {
+      if (!(this_present_queueName && that_present_queueName))
+        return false;
+      if (!this.queueName.equals(that.queueName))
+        return false;
+    }
+
+    boolean this_present_wallTimeLimit = true && this.isSetWallTimeLimit();
+    boolean that_present_wallTimeLimit = true && that.isSetWallTimeLimit();
+    if (this_present_wallTimeLimit || that_present_wallTimeLimit) {
+      if (!(this_present_wallTimeLimit && that_present_wallTimeLimit))
+        return false;
+      if (this.wallTimeLimit != that.wallTimeLimit)
+        return false;
+    }
+
+    boolean this_present_jobStartTime = true && this.isSetJobStartTime();
+    boolean that_present_jobStartTime = true && that.isSetJobStartTime();
+    if (this_present_jobStartTime || that_present_jobStartTime) {
+      if (!(this_present_jobStartTime && that_present_jobStartTime))
+        return false;
+      if (this.jobStartTime != that.jobStartTime)
+        return false;
+    }
+
+    boolean this_present_totalPhysicalMemory = true && this.isSetTotalPhysicalMemory();
+    boolean that_present_totalPhysicalMemory = true && that.isSetTotalPhysicalMemory();
+    if (this_present_totalPhysicalMemory || that_present_totalPhysicalMemory) {
+      if (!(this_present_totalPhysicalMemory && that_present_totalPhysicalMemory))
+        return false;
+      if (this.totalPhysicalMemory != that.totalPhysicalMemory)
+        return false;
+    }
+
+    boolean this_present_ComputationalProjectAccount = true && this.isSetComputationalProjectAccount();
+    boolean that_present_ComputationalProjectAccount = true && that.isSetComputationalProjectAccount();
+    if (this_present_ComputationalProjectAccount || that_present_ComputationalProjectAccount) {
+      if (!(this_present_ComputationalProjectAccount && that_present_ComputationalProjectAccount))
+        return false;
+      if (!this.ComputationalProjectAccount.equals(that.ComputationalProjectAccount))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(ComputationalResourceScheduling other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAiravataAutoSchedule()).compareTo(other.isSetAiravataAutoSchedule());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAiravataAutoSchedule()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataAutoSchedule, other.airavataAutoSchedule);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOverrideManualScheduledParams()).compareTo(other.isSetOverrideManualScheduledParams());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideManualScheduledParams()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideManualScheduledParams, other.overrideManualScheduledParams);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceHostId()).compareTo(other.isSetResourceHostId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceHostId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceHostId, other.resourceHostId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTotalCPUCount()).compareTo(other.isSetTotalCPUCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTotalCPUCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.totalCPUCount, other.totalCPUCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNodeCount()).compareTo(other.isSetNodeCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNodeCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nodeCount, other.nodeCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNumberOfThreads()).compareTo(other.isSetNumberOfThreads());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNumberOfThreads()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.numberOfThreads, other.numberOfThreads);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQueueName()).compareTo(other.isSetQueueName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueueName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queueName, other.queueName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWallTimeLimit()).compareTo(other.isSetWallTimeLimit());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWallTimeLimit()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wallTimeLimit, other.wallTimeLimit);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobStartTime()).compareTo(other.isSetJobStartTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobStartTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStartTime, other.jobStartTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTotalPhysicalMemory()).compareTo(other.isSetTotalPhysicalMemory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTotalPhysicalMemory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.totalPhysicalMemory, other.totalPhysicalMemory);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputationalProjectAccount()).compareTo(other.isSetComputationalProjectAccount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputationalProjectAccount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ComputationalProjectAccount, other.ComputationalProjectAccount);
+      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("ComputationalResourceScheduling(");
+    boolean first = true;
+
+    sb.append("airavataAutoSchedule:");
+    sb.append(this.airavataAutoSchedule);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("overrideManualScheduledParams:");
+    sb.append(this.overrideManualScheduledParams);
+    first = false;
+    if (isSetResourceHostId()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceHostId:");
+      if (this.resourceHostId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceHostId);
+      }
+      first = false;
+    }
+    if (isSetTotalCPUCount()) {
+      if (!first) sb.append(", ");
+      sb.append("totalCPUCount:");
+      sb.append(this.totalCPUCount);
+      first = false;
+    }
+    if (isSetNodeCount()) {
+      if (!first) sb.append(", ");
+      sb.append("nodeCount:");
+      sb.append(this.nodeCount);
+      first = false;
+    }
+    if (isSetNumberOfThreads()) {
+      if (!first) sb.append(", ");
+      sb.append("numberOfThreads:");
+      sb.append(this.numberOfThreads);
+      first = false;
+    }
+    if (isSetQueueName()) {
+      if (!first) sb.append(", ");
+      sb.append("queueName:");
+      if (this.queueName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.queueName);
+      }
+      first = false;
+    }
+    if (isSetWallTimeLimit()) {
+      if (!first) sb.append(", ");
+      sb.append("wallTimeLimit:");
+      sb.append(this.wallTimeLimit);
+      first = false;
+    }
+    if (isSetJobStartTime()) {
+      if (!first) sb.append(", ");
+      sb.append("jobStartTime:");
+      sb.append(this.jobStartTime);
+      first = false;
+    }
+    if (isSetTotalPhysicalMemory()) {
+      if (!first) sb.append(", ");
+      sb.append("totalPhysicalMemory:");
+      sb.append(this.totalPhysicalMemory);
+      first = false;
+    }
+    if (isSetComputationalProjectAccount()) {
+      if (!first) sb.append(", ");
+      sb.append("ComputationalProjectAccount:");
+      if (this.ComputationalProjectAccount == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ComputationalProjectAccount);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'airavataAutoSchedule' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'overrideManualScheduledParams' because it's a primitive and you chose the non-beans generator.
+    // 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 {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ComputationalResourceSchedulingStandardSchemeFactory implements SchemeFactory {
+    public ComputationalResourceSchedulingStandardScheme getScheme() {
+      return new ComputationalResourceSchedulingStandardScheme();
+    }
+  }
+
+  private static class ComputationalResourceSchedulingStandardScheme extends StandardScheme<ComputationalResourceScheduling> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputationalResourceScheduling 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_AUTO_SCHEDULE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.airavataAutoSchedule = iprot.readBool();
+              struct.setAiravataAutoScheduleIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // OVERRIDE_MANUAL_SCHEDULED_PARAMS
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.overrideManualScheduledParams = iprot.readBool();
+              struct.setOverrideManualScheduledParamsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RESOURCE_HOST_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceHostId = iprot.readString();
+              struct.setResourceHostIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TOTAL_CPUCOUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.totalCPUCount = iprot.readI32();
+              struct.setTotalCPUCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // NODE_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.nodeCount = iprot.readI32();
+              struct.setNodeCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // NUMBER_OF_THREADS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.numberOfThreads = iprot.readI32();
+              struct.setNumberOfThreadsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // QUEUE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queueName = iprot.readString();
+              struct.setQueueNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // WALL_TIME_LIMIT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.wallTimeLimit = iprot.readI32();
+              struct.setWallTimeLimitIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // JOB_START_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobStartTime = iprot.readI32();
+              struct.setJobStartTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // TOTAL_PHYSICAL_MEMORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.totalPhysicalMemory = iprot.readI32();
+              struct.setTotalPhysicalMemoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // COMPUTATIONAL_PROJECT_ACCOUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.ComputationalProjectAccount = iprot.readString();
+              struct.setComputationalProjectAccountIsSet(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
+      if (!struct.isSetAiravataAutoSchedule()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataAutoSchedule' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetOverrideManualScheduledParams()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'overrideManualScheduledParams' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputationalResourceScheduling struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(AIRAVATA_AUTO_SCHEDULE_FIELD_DESC);
+      oprot.writeBool(struct.airavataAutoSchedule);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(OVERRIDE_MANUAL_SCHEDULED_PARAMS_FIELD_DESC);
+      oprot.writeBool(struct.overrideManualScheduledParams);
+      oprot.writeFieldEnd();
+      if (struct.resourceHostId != null) {
+        if (struct.isSetResourceHostId()) {
+          oprot.writeFieldBegin(RESOURCE_HOST_ID_FIELD_DESC);
+          oprot.writeString(struct.resourceHostId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetTotalCPUCount()) {
+        oprot.writeFieldBegin(TOTAL_CPUCOUNT_FIELD_DESC);
+        oprot.writeI32(struct.totalCPUCount);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetNodeCount()) {
+        oprot.writeFieldBegin(NODE_COUNT_FIELD_DESC);
+        oprot.writeI32(struct.nodeCount);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetNumberOfThreads()) {
+        oprot.writeFieldBegin(NUMBER_OF_THREADS_FIELD_DESC);
+        oprot.writeI32(struct.numberOfThreads);
+        oprot.writeFieldEnd();
+      }
+      if (struct.queueName != null) {
+        if (struct.isSetQueueName()) {
+          oprot.writeFieldBegin(QUEUE_NAME_FIELD_DESC);
+          oprot.writeString(struct.queueName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetWallTimeLimit()) {
+        oprot.writeFieldBegin(WALL_TIME_LIMIT_FIELD_DESC);
+        oprot.writeI32(struct.wallTimeLimit);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetJobStartTime()) {
+        oprot.writeFieldBegin(JOB_START_TIME_FIELD_DESC);
+        oprot.writeI32(struct.jobStartTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        oprot.writeFieldBegin(TOTAL_PHYSICAL_MEMORY_FIELD_DESC);
+        oprot.writeI32(struct.totalPhysicalMemory);
+        oprot.writeFieldEnd();
+      }
+      if (struct.ComputationalProjectAccount != null) {
+        if (struct.isSetComputationalProjectAccount()) {
+          oprot.writeFieldBegin(COMPUTATIONAL_PROJECT_ACCOUNT_FIELD_DESC);
+          oprot.writeString(struct.ComputationalProjectAccount);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ComputationalResourceSchedulingTupleSchemeFactory implements SchemeFactory {
+    public ComputationalResourceSchedulingTupleScheme getScheme() {
+      return new ComputationalResourceSchedulingTupleScheme();
+    }
+  }
+
+  private static class ComputationalResourceSchedulingTupleScheme extends TupleScheme<ComputationalResourceScheduling> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceScheduling struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.airavataAutoSchedule);
+      oprot.writeBool(struct.overrideManualScheduledParams);
+      BitSet optionals = new BitSet();
+      if (struct.isSetResourceHostId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetTotalCPUCount()) {
+        optionals.set(1);
+      }
+      if (struct.isSetNodeCount()) {
+        optionals.set(2);
+      }
+      if (struct.isSetNumberOfThreads()) {
+        optionals.set(3);
+      }
+      if (struct.isSetQueueName()) {
+        optionals.set(4);
+      }
+      if (struct.isSetWallTimeLimit()) {
+        optionals.set(5);
+      }
+      if (struct.isSetJobStartTime()) {
+        optionals.set(6);
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        optionals.set(7);
+      }
+      if (struct.isSetComputationalProjectAccount()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetResourceHostId()) {
+        oprot.writeString(struct.resourceHostId);
+      }
+      if (struct.isSetTotalCPUCount()) {
+        oprot.writeI32(struct.totalCPUCount);
+      }
+      if (struct.isSetNodeCount()) {
+        oprot.writeI32(struct.nodeCount);
+      }
+      if (struct.isSetNumberOfThreads()) {
+        oprot.writeI32(struct.numberOfThreads);
+      }
+      if (struct.isSetQueueName()) {
+        oprot.writeString(struct.queueName);
+      }
+      if (struct.isSetWallTimeLimit()) {
+        oprot.writeI32(struct.wallTimeLimit);
+      }
+      if (struct.isSetJobStartTime()) {
+        oprot.writeI32(struct.jobStartTime);
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        oprot.writeI32(struct.totalPhysicalMemory);
+      }
+      if (struct.isSetComputationalProjectAccount()) {
+        oprot.writeString(struct.ComputationalProjectAccount);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceScheduling struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.airavataAutoSchedule = iprot.readBool();
+      struct.setAiravataAutoScheduleIsSet(true);
+      struct.overrideManualScheduledParams = iprot.readBool();
+      struct.setOverrideManualScheduledParamsIsSet(true);
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.resourceHostId = iprot.readString();
+        struct.setResourceHostIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.totalCPUCount = iprot.readI32();
+        struct.setTotalCPUCountIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.nodeCount = iprot.readI32();
+        struct.setNodeCountIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.numberOfThreads = iprot.readI32();
+        struct.setNumberOfThreadsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.queueName = iprot.readString();
+        struct.setQueueNameIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.wallTimeLimit = iprot.readI32();
+        struct.setWallTimeLimitIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.jobStartTime = iprot.readI32();
+        struct.setJobStartTimeIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.totalPhysicalMemory = iprot.readI32();
+        struct.setTotalPhysicalMemoryIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.ComputationalProjectAccount = iprot.readString();
+        struct.setComputationalProjectAccountIsSet(true);
+      }
+    }
+  }
+
+}
+