You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2016/10/27 21:32:23 UTC

[30/53] airavata git commit: Adding aurora-client project

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f781b2e/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobSummaryResult.java
----------------------------------------------------------------------
diff --git a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobSummaryResult.java b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobSummaryResult.java
new file mode 100644
index 0000000..a10c304
--- /dev/null
+++ b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobSummaryResult.java
@@ -0,0 +1,452 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.cloud.aurora.client.sdk;
+
+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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-21")
+public class JobSummaryResult implements org.apache.thrift.TBase<JobSummaryResult, JobSummaryResult._Fields>, java.io.Serializable, Cloneable, Comparable<JobSummaryResult> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSummaryResult");
+
+  private static final org.apache.thrift.protocol.TField SUMMARIES_FIELD_DESC = new org.apache.thrift.protocol.TField("summaries", org.apache.thrift.protocol.TType.SET, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobSummaryResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobSummaryResultTupleSchemeFactory());
+  }
+
+  public Set<JobSummary> summaries; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    SUMMARIES((short)1, "summaries");
+
+    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: // SUMMARIES
+          return SUMMARIES;
+        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.SUMMARIES, new org.apache.thrift.meta_data.FieldMetaData("summaries", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobSummary.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobSummaryResult.class, metaDataMap);
+  }
+
+  public JobSummaryResult() {
+  }
+
+  public JobSummaryResult(
+    Set<JobSummary> summaries)
+  {
+    this();
+    this.summaries = summaries;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobSummaryResult(JobSummaryResult other) {
+    if (other.isSetSummaries()) {
+      Set<JobSummary> __this__summaries = new HashSet<JobSummary>(other.summaries.size());
+      for (JobSummary other_element : other.summaries) {
+        __this__summaries.add(new JobSummary(other_element));
+      }
+      this.summaries = __this__summaries;
+    }
+  }
+
+  public JobSummaryResult deepCopy() {
+    return new JobSummaryResult(this);
+  }
+
+  @Override
+  public void clear() {
+    this.summaries = null;
+  }
+
+  public int getSummariesSize() {
+    return (this.summaries == null) ? 0 : this.summaries.size();
+  }
+
+  public java.util.Iterator<JobSummary> getSummariesIterator() {
+    return (this.summaries == null) ? null : this.summaries.iterator();
+  }
+
+  public void addToSummaries(JobSummary elem) {
+    if (this.summaries == null) {
+      this.summaries = new HashSet<JobSummary>();
+    }
+    this.summaries.add(elem);
+  }
+
+  public Set<JobSummary> getSummaries() {
+    return this.summaries;
+  }
+
+  public JobSummaryResult setSummaries(Set<JobSummary> summaries) {
+    this.summaries = summaries;
+    return this;
+  }
+
+  public void unsetSummaries() {
+    this.summaries = null;
+  }
+
+  /** Returns true if field summaries is set (has been assigned a value) and false otherwise */
+  public boolean isSetSummaries() {
+    return this.summaries != null;
+  }
+
+  public void setSummariesIsSet(boolean value) {
+    if (!value) {
+      this.summaries = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SUMMARIES:
+      if (value == null) {
+        unsetSummaries();
+      } else {
+        setSummaries((Set<JobSummary>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SUMMARIES:
+      return getSummaries();
+
+    }
+    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 SUMMARIES:
+      return isSetSummaries();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobSummaryResult)
+      return this.equals((JobSummaryResult)that);
+    return false;
+  }
+
+  public boolean equals(JobSummaryResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_summaries = true && this.isSetSummaries();
+    boolean that_present_summaries = true && that.isSetSummaries();
+    if (this_present_summaries || that_present_summaries) {
+      if (!(this_present_summaries && that_present_summaries))
+        return false;
+      if (!this.summaries.equals(that.summaries))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_summaries = true && (isSetSummaries());
+    list.add(present_summaries);
+    if (present_summaries)
+      list.add(summaries);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobSummaryResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetSummaries()).compareTo(other.isSetSummaries());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSummaries()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.summaries, other.summaries);
+      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("JobSummaryResult(");
+    boolean first = true;
+
+    sb.append("summaries:");
+    if (this.summaries == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.summaries);
+    }
+    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 JobSummaryResultStandardSchemeFactory implements SchemeFactory {
+    public JobSummaryResultStandardScheme getScheme() {
+      return new JobSummaryResultStandardScheme();
+    }
+  }
+
+  private static class JobSummaryResultStandardScheme extends StandardScheme<JobSummaryResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobSummaryResult 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: // SUMMARIES
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set310 = iprot.readSetBegin();
+                struct.summaries = new HashSet<JobSummary>(2*_set310.size);
+                JobSummary _elem311;
+                for (int _i312 = 0; _i312 < _set310.size; ++_i312)
+                {
+                  _elem311 = new JobSummary();
+                  _elem311.read(iprot);
+                  struct.summaries.add(_elem311);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setSummariesIsSet(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, JobSummaryResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.summaries != null) {
+        oprot.writeFieldBegin(SUMMARIES_FIELD_DESC);
+        {
+          oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, struct.summaries.size()));
+          for (JobSummary _iter313 : struct.summaries)
+          {
+            _iter313.write(oprot);
+          }
+          oprot.writeSetEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobSummaryResultTupleSchemeFactory implements SchemeFactory {
+    public JobSummaryResultTupleScheme getScheme() {
+      return new JobSummaryResultTupleScheme();
+    }
+  }
+
+  private static class JobSummaryResultTupleScheme extends TupleScheme<JobSummaryResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobSummaryResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetSummaries()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetSummaries()) {
+        {
+          oprot.writeI32(struct.summaries.size());
+          for (JobSummary _iter314 : struct.summaries)
+          {
+            _iter314.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobSummaryResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TSet _set315 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.summaries = new HashSet<JobSummary>(2*_set315.size);
+          JobSummary _elem316;
+          for (int _i317 = 0; _i317 < _set315.size; ++_i317)
+          {
+            _elem316 = new JobSummary();
+            _elem316.read(iprot);
+            struct.summaries.add(_elem316);
+          }
+        }
+        struct.setSummariesIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f781b2e/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdate.java
----------------------------------------------------------------------
diff --git a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdate.java b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdate.java
new file mode 100644
index 0000000..ef13dce
--- /dev/null
+++ b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdate.java
@@ -0,0 +1,540 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.cloud.aurora.client.sdk;
+
+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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Full definition of the job update.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-21")
+public class JobUpdate implements org.apache.thrift.TBase<JobUpdate, JobUpdate._Fields>, java.io.Serializable, Cloneable, Comparable<JobUpdate> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobUpdate");
+
+  private static final org.apache.thrift.protocol.TField SUMMARY_FIELD_DESC = new org.apache.thrift.protocol.TField("summary", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField INSTRUCTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("instructions", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobUpdateStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobUpdateTupleSchemeFactory());
+  }
+
+  /**
+   * Update summary.
+   */
+  public JobUpdateSummary summary; // required
+  /**
+   * Update configuration.
+   */
+  public JobUpdateInstructions instructions; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * Update summary.
+     */
+    SUMMARY((short)1, "summary"),
+    /**
+     * Update configuration.
+     */
+    INSTRUCTIONS((short)2, "instructions");
+
+    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: // SUMMARY
+          return SUMMARY;
+        case 2: // INSTRUCTIONS
+          return INSTRUCTIONS;
+        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.SUMMARY, new org.apache.thrift.meta_data.FieldMetaData("summary", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobUpdateSummary.class)));
+    tmpMap.put(_Fields.INSTRUCTIONS, new org.apache.thrift.meta_data.FieldMetaData("instructions", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobUpdateInstructions.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobUpdate.class, metaDataMap);
+  }
+
+  public JobUpdate() {
+  }
+
+  public JobUpdate(
+    JobUpdateSummary summary,
+    JobUpdateInstructions instructions)
+  {
+    this();
+    this.summary = summary;
+    this.instructions = instructions;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobUpdate(JobUpdate other) {
+    if (other.isSetSummary()) {
+      this.summary = new JobUpdateSummary(other.summary);
+    }
+    if (other.isSetInstructions()) {
+      this.instructions = new JobUpdateInstructions(other.instructions);
+    }
+  }
+
+  public JobUpdate deepCopy() {
+    return new JobUpdate(this);
+  }
+
+  @Override
+  public void clear() {
+    this.summary = null;
+    this.instructions = null;
+  }
+
+  /**
+   * Update summary.
+   */
+  public JobUpdateSummary getSummary() {
+    return this.summary;
+  }
+
+  /**
+   * Update summary.
+   */
+  public JobUpdate setSummary(JobUpdateSummary summary) {
+    this.summary = summary;
+    return this;
+  }
+
+  public void unsetSummary() {
+    this.summary = null;
+  }
+
+  /** Returns true if field summary is set (has been assigned a value) and false otherwise */
+  public boolean isSetSummary() {
+    return this.summary != null;
+  }
+
+  public void setSummaryIsSet(boolean value) {
+    if (!value) {
+      this.summary = null;
+    }
+  }
+
+  /**
+   * Update configuration.
+   */
+  public JobUpdateInstructions getInstructions() {
+    return this.instructions;
+  }
+
+  /**
+   * Update configuration.
+   */
+  public JobUpdate setInstructions(JobUpdateInstructions instructions) {
+    this.instructions = instructions;
+    return this;
+  }
+
+  public void unsetInstructions() {
+    this.instructions = null;
+  }
+
+  /** Returns true if field instructions is set (has been assigned a value) and false otherwise */
+  public boolean isSetInstructions() {
+    return this.instructions != null;
+  }
+
+  public void setInstructionsIsSet(boolean value) {
+    if (!value) {
+      this.instructions = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SUMMARY:
+      if (value == null) {
+        unsetSummary();
+      } else {
+        setSummary((JobUpdateSummary)value);
+      }
+      break;
+
+    case INSTRUCTIONS:
+      if (value == null) {
+        unsetInstructions();
+      } else {
+        setInstructions((JobUpdateInstructions)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SUMMARY:
+      return getSummary();
+
+    case INSTRUCTIONS:
+      return getInstructions();
+
+    }
+    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 SUMMARY:
+      return isSetSummary();
+    case INSTRUCTIONS:
+      return isSetInstructions();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobUpdate)
+      return this.equals((JobUpdate)that);
+    return false;
+  }
+
+  public boolean equals(JobUpdate that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_summary = true && this.isSetSummary();
+    boolean that_present_summary = true && that.isSetSummary();
+    if (this_present_summary || that_present_summary) {
+      if (!(this_present_summary && that_present_summary))
+        return false;
+      if (!this.summary.equals(that.summary))
+        return false;
+    }
+
+    boolean this_present_instructions = true && this.isSetInstructions();
+    boolean that_present_instructions = true && that.isSetInstructions();
+    if (this_present_instructions || that_present_instructions) {
+      if (!(this_present_instructions && that_present_instructions))
+        return false;
+      if (!this.instructions.equals(that.instructions))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_summary = true && (isSetSummary());
+    list.add(present_summary);
+    if (present_summary)
+      list.add(summary);
+
+    boolean present_instructions = true && (isSetInstructions());
+    list.add(present_instructions);
+    if (present_instructions)
+      list.add(instructions);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobUpdate other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetSummary()).compareTo(other.isSetSummary());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSummary()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.summary, other.summary);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInstructions()).compareTo(other.isSetInstructions());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInstructions()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.instructions, other.instructions);
+      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("JobUpdate(");
+    boolean first = true;
+
+    sb.append("summary:");
+    if (this.summary == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.summary);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("instructions:");
+    if (this.instructions == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.instructions);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (summary != null) {
+      summary.validate();
+    }
+    if (instructions != null) {
+      instructions.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class JobUpdateStandardSchemeFactory implements SchemeFactory {
+    public JobUpdateStandardScheme getScheme() {
+      return new JobUpdateStandardScheme();
+    }
+  }
+
+  private static class JobUpdateStandardScheme extends StandardScheme<JobUpdate> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobUpdate 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: // SUMMARY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.summary = new JobUpdateSummary();
+              struct.summary.read(iprot);
+              struct.setSummaryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // INSTRUCTIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.instructions = new JobUpdateInstructions();
+              struct.instructions.read(iprot);
+              struct.setInstructionsIsSet(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, JobUpdate struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.summary != null) {
+        oprot.writeFieldBegin(SUMMARY_FIELD_DESC);
+        struct.summary.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.instructions != null) {
+        oprot.writeFieldBegin(INSTRUCTIONS_FIELD_DESC);
+        struct.instructions.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobUpdateTupleSchemeFactory implements SchemeFactory {
+    public JobUpdateTupleScheme getScheme() {
+      return new JobUpdateTupleScheme();
+    }
+  }
+
+  private static class JobUpdateTupleScheme extends TupleScheme<JobUpdate> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobUpdate struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetSummary()) {
+        optionals.set(0);
+      }
+      if (struct.isSetInstructions()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetSummary()) {
+        struct.summary.write(oprot);
+      }
+      if (struct.isSetInstructions()) {
+        struct.instructions.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobUpdate struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.summary = new JobUpdateSummary();
+        struct.summary.read(iprot);
+        struct.setSummaryIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.instructions = new JobUpdateInstructions();
+        struct.instructions.read(iprot);
+        struct.setInstructionsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f781b2e/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateAction.java
----------------------------------------------------------------------
diff --git a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateAction.java b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateAction.java
new file mode 100644
index 0000000..a42d4b9
--- /dev/null
+++ b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateAction.java
@@ -0,0 +1,82 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.cloud.aurora.client.sdk;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Job update actions that can be applied to job instances.
+ */
+public enum JobUpdateAction implements org.apache.thrift.TEnum {
+  /**
+   * An instance was moved to the target state successfully, and declared healthy if the desired
+   * state did not involve deleting the instance.
+   */
+  INSTANCE_UPDATED(1),
+  /**
+   * An instance was rolled back because the job update did not succeed.  The instance was reverted
+   * to the original state prior to the job update, which means that the instance was removed if
+   * the update added instances to the job.
+   */
+  INSTANCE_ROLLED_BACK(2),
+  /**
+   * An instance is being moved from the original state to the desired state.
+   */
+  INSTANCE_UPDATING(3),
+  /**
+   * An instance is being moved from the desired state back to the original state, because the job
+   * update failed.
+   */
+  INSTANCE_ROLLING_BACK(4),
+  /**
+   * An instance update was attempted but failed and was not rolled back.
+   */
+  INSTANCE_UPDATE_FAILED(5),
+  /**
+   * An instance rollback was attempted but failed.
+   */
+  INSTANCE_ROLLBACK_FAILED(6);
+
+  private final int value;
+
+  private JobUpdateAction(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static JobUpdateAction findByValue(int value) { 
+    switch (value) {
+      case 1:
+        return INSTANCE_UPDATED;
+      case 2:
+        return INSTANCE_ROLLED_BACK;
+      case 3:
+        return INSTANCE_UPDATING;
+      case 4:
+        return INSTANCE_ROLLING_BACK;
+      case 5:
+        return INSTANCE_UPDATE_FAILED;
+      case 6:
+        return INSTANCE_ROLLBACK_FAILED;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f781b2e/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateDetails.java
----------------------------------------------------------------------
diff --git a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateDetails.java b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateDetails.java
new file mode 100644
index 0000000..6695cc6
--- /dev/null
+++ b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateDetails.java
@@ -0,0 +1,757 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.cloud.aurora.client.sdk;
+
+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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-21")
+public class JobUpdateDetails implements org.apache.thrift.TBase<JobUpdateDetails, JobUpdateDetails._Fields>, java.io.Serializable, Cloneable, Comparable<JobUpdateDetails> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobUpdateDetails");
+
+  private static final org.apache.thrift.protocol.TField UPDATE_FIELD_DESC = new org.apache.thrift.protocol.TField("update", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField UPDATE_EVENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("updateEvents", org.apache.thrift.protocol.TType.LIST, (short)2);
+  private static final org.apache.thrift.protocol.TField INSTANCE_EVENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("instanceEvents", org.apache.thrift.protocol.TType.LIST, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobUpdateDetailsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobUpdateDetailsTupleSchemeFactory());
+  }
+
+  /**
+   * Update definition.
+   */
+  public JobUpdate update; // required
+  /**
+   * History for this update.
+   */
+  public List<JobUpdateEvent> updateEvents; // required
+  /**
+   * History for the individual instances updated.
+   */
+  public List<JobInstanceUpdateEvent> instanceEvents; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * Update definition.
+     */
+    UPDATE((short)1, "update"),
+    /**
+     * History for this update.
+     */
+    UPDATE_EVENTS((short)2, "updateEvents"),
+    /**
+     * History for the individual instances updated.
+     */
+    INSTANCE_EVENTS((short)3, "instanceEvents");
+
+    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: // UPDATE
+          return UPDATE;
+        case 2: // UPDATE_EVENTS
+          return UPDATE_EVENTS;
+        case 3: // INSTANCE_EVENTS
+          return INSTANCE_EVENTS;
+        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.UPDATE, new org.apache.thrift.meta_data.FieldMetaData("update", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobUpdate.class)));
+    tmpMap.put(_Fields.UPDATE_EVENTS, new org.apache.thrift.meta_data.FieldMetaData("updateEvents", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobUpdateEvent.class))));
+    tmpMap.put(_Fields.INSTANCE_EVENTS, new org.apache.thrift.meta_data.FieldMetaData("instanceEvents", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobInstanceUpdateEvent.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobUpdateDetails.class, metaDataMap);
+  }
+
+  public JobUpdateDetails() {
+  }
+
+  public JobUpdateDetails(
+    JobUpdate update,
+    List<JobUpdateEvent> updateEvents,
+    List<JobInstanceUpdateEvent> instanceEvents)
+  {
+    this();
+    this.update = update;
+    this.updateEvents = updateEvents;
+    this.instanceEvents = instanceEvents;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobUpdateDetails(JobUpdateDetails other) {
+    if (other.isSetUpdate()) {
+      this.update = new JobUpdate(other.update);
+    }
+    if (other.isSetUpdateEvents()) {
+      List<JobUpdateEvent> __this__updateEvents = new ArrayList<JobUpdateEvent>(other.updateEvents.size());
+      for (JobUpdateEvent other_element : other.updateEvents) {
+        __this__updateEvents.add(new JobUpdateEvent(other_element));
+      }
+      this.updateEvents = __this__updateEvents;
+    }
+    if (other.isSetInstanceEvents()) {
+      List<JobInstanceUpdateEvent> __this__instanceEvents = new ArrayList<JobInstanceUpdateEvent>(other.instanceEvents.size());
+      for (JobInstanceUpdateEvent other_element : other.instanceEvents) {
+        __this__instanceEvents.add(new JobInstanceUpdateEvent(other_element));
+      }
+      this.instanceEvents = __this__instanceEvents;
+    }
+  }
+
+  public JobUpdateDetails deepCopy() {
+    return new JobUpdateDetails(this);
+  }
+
+  @Override
+  public void clear() {
+    this.update = null;
+    this.updateEvents = null;
+    this.instanceEvents = null;
+  }
+
+  /**
+   * Update definition.
+   */
+  public JobUpdate getUpdate() {
+    return this.update;
+  }
+
+  /**
+   * Update definition.
+   */
+  public JobUpdateDetails setUpdate(JobUpdate update) {
+    this.update = update;
+    return this;
+  }
+
+  public void unsetUpdate() {
+    this.update = null;
+  }
+
+  /** Returns true if field update is set (has been assigned a value) and false otherwise */
+  public boolean isSetUpdate() {
+    return this.update != null;
+  }
+
+  public void setUpdateIsSet(boolean value) {
+    if (!value) {
+      this.update = null;
+    }
+  }
+
+  public int getUpdateEventsSize() {
+    return (this.updateEvents == null) ? 0 : this.updateEvents.size();
+  }
+
+  public java.util.Iterator<JobUpdateEvent> getUpdateEventsIterator() {
+    return (this.updateEvents == null) ? null : this.updateEvents.iterator();
+  }
+
+  public void addToUpdateEvents(JobUpdateEvent elem) {
+    if (this.updateEvents == null) {
+      this.updateEvents = new ArrayList<JobUpdateEvent>();
+    }
+    this.updateEvents.add(elem);
+  }
+
+  /**
+   * History for this update.
+   */
+  public List<JobUpdateEvent> getUpdateEvents() {
+    return this.updateEvents;
+  }
+
+  /**
+   * History for this update.
+   */
+  public JobUpdateDetails setUpdateEvents(List<JobUpdateEvent> updateEvents) {
+    this.updateEvents = updateEvents;
+    return this;
+  }
+
+  public void unsetUpdateEvents() {
+    this.updateEvents = null;
+  }
+
+  /** Returns true if field updateEvents is set (has been assigned a value) and false otherwise */
+  public boolean isSetUpdateEvents() {
+    return this.updateEvents != null;
+  }
+
+  public void setUpdateEventsIsSet(boolean value) {
+    if (!value) {
+      this.updateEvents = null;
+    }
+  }
+
+  public int getInstanceEventsSize() {
+    return (this.instanceEvents == null) ? 0 : this.instanceEvents.size();
+  }
+
+  public java.util.Iterator<JobInstanceUpdateEvent> getInstanceEventsIterator() {
+    return (this.instanceEvents == null) ? null : this.instanceEvents.iterator();
+  }
+
+  public void addToInstanceEvents(JobInstanceUpdateEvent elem) {
+    if (this.instanceEvents == null) {
+      this.instanceEvents = new ArrayList<JobInstanceUpdateEvent>();
+    }
+    this.instanceEvents.add(elem);
+  }
+
+  /**
+   * History for the individual instances updated.
+   */
+  public List<JobInstanceUpdateEvent> getInstanceEvents() {
+    return this.instanceEvents;
+  }
+
+  /**
+   * History for the individual instances updated.
+   */
+  public JobUpdateDetails setInstanceEvents(List<JobInstanceUpdateEvent> instanceEvents) {
+    this.instanceEvents = instanceEvents;
+    return this;
+  }
+
+  public void unsetInstanceEvents() {
+    this.instanceEvents = null;
+  }
+
+  /** Returns true if field instanceEvents is set (has been assigned a value) and false otherwise */
+  public boolean isSetInstanceEvents() {
+    return this.instanceEvents != null;
+  }
+
+  public void setInstanceEventsIsSet(boolean value) {
+    if (!value) {
+      this.instanceEvents = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case UPDATE:
+      if (value == null) {
+        unsetUpdate();
+      } else {
+        setUpdate((JobUpdate)value);
+      }
+      break;
+
+    case UPDATE_EVENTS:
+      if (value == null) {
+        unsetUpdateEvents();
+      } else {
+        setUpdateEvents((List<JobUpdateEvent>)value);
+      }
+      break;
+
+    case INSTANCE_EVENTS:
+      if (value == null) {
+        unsetInstanceEvents();
+      } else {
+        setInstanceEvents((List<JobInstanceUpdateEvent>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case UPDATE:
+      return getUpdate();
+
+    case UPDATE_EVENTS:
+      return getUpdateEvents();
+
+    case INSTANCE_EVENTS:
+      return getInstanceEvents();
+
+    }
+    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 UPDATE:
+      return isSetUpdate();
+    case UPDATE_EVENTS:
+      return isSetUpdateEvents();
+    case INSTANCE_EVENTS:
+      return isSetInstanceEvents();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobUpdateDetails)
+      return this.equals((JobUpdateDetails)that);
+    return false;
+  }
+
+  public boolean equals(JobUpdateDetails that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_update = true && this.isSetUpdate();
+    boolean that_present_update = true && that.isSetUpdate();
+    if (this_present_update || that_present_update) {
+      if (!(this_present_update && that_present_update))
+        return false;
+      if (!this.update.equals(that.update))
+        return false;
+    }
+
+    boolean this_present_updateEvents = true && this.isSetUpdateEvents();
+    boolean that_present_updateEvents = true && that.isSetUpdateEvents();
+    if (this_present_updateEvents || that_present_updateEvents) {
+      if (!(this_present_updateEvents && that_present_updateEvents))
+        return false;
+      if (!this.updateEvents.equals(that.updateEvents))
+        return false;
+    }
+
+    boolean this_present_instanceEvents = true && this.isSetInstanceEvents();
+    boolean that_present_instanceEvents = true && that.isSetInstanceEvents();
+    if (this_present_instanceEvents || that_present_instanceEvents) {
+      if (!(this_present_instanceEvents && that_present_instanceEvents))
+        return false;
+      if (!this.instanceEvents.equals(that.instanceEvents))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_update = true && (isSetUpdate());
+    list.add(present_update);
+    if (present_update)
+      list.add(update);
+
+    boolean present_updateEvents = true && (isSetUpdateEvents());
+    list.add(present_updateEvents);
+    if (present_updateEvents)
+      list.add(updateEvents);
+
+    boolean present_instanceEvents = true && (isSetInstanceEvents());
+    list.add(present_instanceEvents);
+    if (present_instanceEvents)
+      list.add(instanceEvents);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobUpdateDetails other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetUpdate()).compareTo(other.isSetUpdate());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUpdate()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.update, other.update);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUpdateEvents()).compareTo(other.isSetUpdateEvents());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUpdateEvents()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updateEvents, other.updateEvents);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInstanceEvents()).compareTo(other.isSetInstanceEvents());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInstanceEvents()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.instanceEvents, other.instanceEvents);
+      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("JobUpdateDetails(");
+    boolean first = true;
+
+    sb.append("update:");
+    if (this.update == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.update);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("updateEvents:");
+    if (this.updateEvents == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.updateEvents);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("instanceEvents:");
+    if (this.instanceEvents == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.instanceEvents);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (update != null) {
+      update.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class JobUpdateDetailsStandardSchemeFactory implements SchemeFactory {
+    public JobUpdateDetailsStandardScheme getScheme() {
+      return new JobUpdateDetailsStandardScheme();
+    }
+  }
+
+  private static class JobUpdateDetailsStandardScheme extends StandardScheme<JobUpdateDetails> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobUpdateDetails 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: // UPDATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.update = new JobUpdate();
+              struct.update.read(iprot);
+              struct.setUpdateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // UPDATE_EVENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list222 = iprot.readListBegin();
+                struct.updateEvents = new ArrayList<JobUpdateEvent>(_list222.size);
+                JobUpdateEvent _elem223;
+                for (int _i224 = 0; _i224 < _list222.size; ++_i224)
+                {
+                  _elem223 = new JobUpdateEvent();
+                  _elem223.read(iprot);
+                  struct.updateEvents.add(_elem223);
+                }
+                iprot.readListEnd();
+              }
+              struct.setUpdateEventsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // INSTANCE_EVENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list225 = iprot.readListBegin();
+                struct.instanceEvents = new ArrayList<JobInstanceUpdateEvent>(_list225.size);
+                JobInstanceUpdateEvent _elem226;
+                for (int _i227 = 0; _i227 < _list225.size; ++_i227)
+                {
+                  _elem226 = new JobInstanceUpdateEvent();
+                  _elem226.read(iprot);
+                  struct.instanceEvents.add(_elem226);
+                }
+                iprot.readListEnd();
+              }
+              struct.setInstanceEventsIsSet(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, JobUpdateDetails struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.update != null) {
+        oprot.writeFieldBegin(UPDATE_FIELD_DESC);
+        struct.update.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.updateEvents != null) {
+        oprot.writeFieldBegin(UPDATE_EVENTS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.updateEvents.size()));
+          for (JobUpdateEvent _iter228 : struct.updateEvents)
+          {
+            _iter228.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.instanceEvents != null) {
+        oprot.writeFieldBegin(INSTANCE_EVENTS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.instanceEvents.size()));
+          for (JobInstanceUpdateEvent _iter229 : struct.instanceEvents)
+          {
+            _iter229.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobUpdateDetailsTupleSchemeFactory implements SchemeFactory {
+    public JobUpdateDetailsTupleScheme getScheme() {
+      return new JobUpdateDetailsTupleScheme();
+    }
+  }
+
+  private static class JobUpdateDetailsTupleScheme extends TupleScheme<JobUpdateDetails> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobUpdateDetails struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetUpdate()) {
+        optionals.set(0);
+      }
+      if (struct.isSetUpdateEvents()) {
+        optionals.set(1);
+      }
+      if (struct.isSetInstanceEvents()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetUpdate()) {
+        struct.update.write(oprot);
+      }
+      if (struct.isSetUpdateEvents()) {
+        {
+          oprot.writeI32(struct.updateEvents.size());
+          for (JobUpdateEvent _iter230 : struct.updateEvents)
+          {
+            _iter230.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetInstanceEvents()) {
+        {
+          oprot.writeI32(struct.instanceEvents.size());
+          for (JobInstanceUpdateEvent _iter231 : struct.instanceEvents)
+          {
+            _iter231.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobUpdateDetails struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.update = new JobUpdate();
+        struct.update.read(iprot);
+        struct.setUpdateIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list232 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.updateEvents = new ArrayList<JobUpdateEvent>(_list232.size);
+          JobUpdateEvent _elem233;
+          for (int _i234 = 0; _i234 < _list232.size; ++_i234)
+          {
+            _elem233 = new JobUpdateEvent();
+            _elem233.read(iprot);
+            struct.updateEvents.add(_elem233);
+          }
+        }
+        struct.setUpdateEventsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list235 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.instanceEvents = new ArrayList<JobInstanceUpdateEvent>(_list235.size);
+          JobInstanceUpdateEvent _elem236;
+          for (int _i237 = 0; _i237 < _list235.size; ++_i237)
+          {
+            _elem236 = new JobInstanceUpdateEvent();
+            _elem236.read(iprot);
+            struct.instanceEvents.add(_elem236);
+          }
+        }
+        struct.setInstanceEventsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f781b2e/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateEvent.java
----------------------------------------------------------------------
diff --git a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateEvent.java b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateEvent.java
new file mode 100644
index 0000000..2cde1bf
--- /dev/null
+++ b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/JobUpdateEvent.java
@@ -0,0 +1,779 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.cloud.aurora.client.sdk;
+
+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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Event marking a state transition in job update lifecycle.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-21")
+public class JobUpdateEvent implements org.apache.thrift.TBase<JobUpdateEvent, JobUpdateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobUpdateEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobUpdateEvent");
+
+  private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TIMESTAMP_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("timestampMs", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobUpdateEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobUpdateEventTupleSchemeFactory());
+  }
+
+  /**
+   * Update status.
+   * 
+   * @see JobUpdateStatus
+   */
+  public JobUpdateStatus status; // required
+  /**
+   * Epoch timestamp in milliseconds.
+   */
+  public long timestampMs; // required
+  /**
+   * User who performed this event (if user-initiated).
+   */
+  public String user; // optional
+  /**
+   * Message from the user (for user-initiated transitions) or the scheduler about why the state was
+   * changed.
+   */
+  public String message; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * Update status.
+     * 
+     * @see JobUpdateStatus
+     */
+    STATUS((short)1, "status"),
+    /**
+     * Epoch timestamp in milliseconds.
+     */
+    TIMESTAMP_MS((short)2, "timestampMs"),
+    /**
+     * User who performed this event (if user-initiated).
+     */
+    USER((short)3, "user"),
+    /**
+     * Message from the user (for user-initiated transitions) or the scheduler about why the state was
+     * changed.
+     */
+    MESSAGE((short)4, "message");
+
+    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: // STATUS
+          return STATUS;
+        case 2: // TIMESTAMP_MS
+          return TIMESTAMP_MS;
+        case 3: // USER
+          return USER;
+        case 4: // MESSAGE
+          return MESSAGE;
+        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 __TIMESTAMPMS_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.USER,_Fields.MESSAGE};
+  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.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobUpdateStatus.class)));
+    tmpMap.put(_Fields.TIMESTAMP_MS, new org.apache.thrift.meta_data.FieldMetaData("timestampMs", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.USER, new org.apache.thrift.meta_data.FieldMetaData("user", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", 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(JobUpdateEvent.class, metaDataMap);
+  }
+
+  public JobUpdateEvent() {
+  }
+
+  public JobUpdateEvent(
+    JobUpdateStatus status,
+    long timestampMs)
+  {
+    this();
+    this.status = status;
+    this.timestampMs = timestampMs;
+    setTimestampMsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobUpdateEvent(JobUpdateEvent other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetStatus()) {
+      this.status = other.status;
+    }
+    this.timestampMs = other.timestampMs;
+    if (other.isSetUser()) {
+      this.user = other.user;
+    }
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public JobUpdateEvent deepCopy() {
+    return new JobUpdateEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.status = null;
+    setTimestampMsIsSet(false);
+    this.timestampMs = 0;
+    this.user = null;
+    this.message = null;
+  }
+
+  /**
+   * Update status.
+   * 
+   * @see JobUpdateStatus
+   */
+  public JobUpdateStatus getStatus() {
+    return this.status;
+  }
+
+  /**
+   * Update status.
+   * 
+   * @see JobUpdateStatus
+   */
+  public JobUpdateEvent setStatus(JobUpdateStatus status) {
+    this.status = status;
+    return this;
+  }
+
+  public void unsetStatus() {
+    this.status = null;
+  }
+
+  /** Returns true if field status is set (has been assigned a value) and false otherwise */
+  public boolean isSetStatus() {
+    return this.status != null;
+  }
+
+  public void setStatusIsSet(boolean value) {
+    if (!value) {
+      this.status = null;
+    }
+  }
+
+  /**
+   * Epoch timestamp in milliseconds.
+   */
+  public long getTimestampMs() {
+    return this.timestampMs;
+  }
+
+  /**
+   * Epoch timestamp in milliseconds.
+   */
+  public JobUpdateEvent setTimestampMs(long timestampMs) {
+    this.timestampMs = timestampMs;
+    setTimestampMsIsSet(true);
+    return this;
+  }
+
+  public void unsetTimestampMs() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TIMESTAMPMS_ISSET_ID);
+  }
+
+  /** Returns true if field timestampMs is set (has been assigned a value) and false otherwise */
+  public boolean isSetTimestampMs() {
+    return EncodingUtils.testBit(__isset_bitfield, __TIMESTAMPMS_ISSET_ID);
+  }
+
+  public void setTimestampMsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMESTAMPMS_ISSET_ID, value);
+  }
+
+  /**
+   * User who performed this event (if user-initiated).
+   */
+  public String getUser() {
+    return this.user;
+  }
+
+  /**
+   * User who performed this event (if user-initiated).
+   */
+  public JobUpdateEvent setUser(String user) {
+    this.user = user;
+    return this;
+  }
+
+  public void unsetUser() {
+    this.user = null;
+  }
+
+  /** Returns true if field user is set (has been assigned a value) and false otherwise */
+  public boolean isSetUser() {
+    return this.user != null;
+  }
+
+  public void setUserIsSet(boolean value) {
+    if (!value) {
+      this.user = null;
+    }
+  }
+
+  /**
+   * Message from the user (for user-initiated transitions) or the scheduler about why the state was
+   * changed.
+   */
+  public String getMessage() {
+    return this.message;
+  }
+
+  /**
+   * Message from the user (for user-initiated transitions) or the scheduler about why the state was
+   * changed.
+   */
+  public JobUpdateEvent setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATUS:
+      if (value == null) {
+        unsetStatus();
+      } else {
+        setStatus((JobUpdateStatus)value);
+      }
+      break;
+
+    case TIMESTAMP_MS:
+      if (value == null) {
+        unsetTimestampMs();
+      } else {
+        setTimestampMs((Long)value);
+      }
+      break;
+
+    case USER:
+      if (value == null) {
+        unsetUser();
+      } else {
+        setUser((String)value);
+      }
+      break;
+
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATUS:
+      return getStatus();
+
+    case TIMESTAMP_MS:
+      return getTimestampMs();
+
+    case USER:
+      return getUser();
+
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 STATUS:
+      return isSetStatus();
+    case TIMESTAMP_MS:
+      return isSetTimestampMs();
+    case USER:
+      return isSetUser();
+    case MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobUpdateEvent)
+      return this.equals((JobUpdateEvent)that);
+    return false;
+  }
+
+  public boolean equals(JobUpdateEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_status = true && this.isSetStatus();
+    boolean that_present_status = true && that.isSetStatus();
+    if (this_present_status || that_present_status) {
+      if (!(this_present_status && that_present_status))
+        return false;
+      if (!this.status.equals(that.status))
+        return false;
+    }
+
+    boolean this_present_timestampMs = true;
+    boolean that_present_timestampMs = true;
+    if (this_present_timestampMs || that_present_timestampMs) {
+      if (!(this_present_timestampMs && that_present_timestampMs))
+        return false;
+      if (this.timestampMs != that.timestampMs)
+        return false;
+    }
+
+    boolean this_present_user = true && this.isSetUser();
+    boolean that_present_user = true && that.isSetUser();
+    if (this_present_user || that_present_user) {
+      if (!(this_present_user && that_present_user))
+        return false;
+      if (!this.user.equals(that.user))
+        return false;
+    }
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_status = true && (isSetStatus());
+    list.add(present_status);
+    if (present_status)
+      list.add(status.getValue());
+
+    boolean present_timestampMs = true;
+    list.add(present_timestampMs);
+    if (present_timestampMs)
+      list.add(timestampMs);
+
+    boolean present_user = true && (isSetUser());
+    list.add(present_user);
+    if (present_user)
+      list.add(user);
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobUpdateEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTimestampMs()).compareTo(other.isSetTimestampMs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTimestampMs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timestampMs, other.timestampMs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUser()).compareTo(other.isSetUser());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUser()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.user, other.user);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("JobUpdateEvent(");
+    boolean first = true;
+
+    sb.append("status:");
+    if (this.status == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.status);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("timestampMs:");
+    sb.append(this.timestampMs);
+    first = false;
+    if (isSetUser()) {
+      if (!first) sb.append(", ");
+      sb.append("user:");
+      if (this.user == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.user);
+      }
+      first = false;
+    }
+    if (isSetMessage()) {
+      if (!first) sb.append(", ");
+      sb.append("message:");
+      if (this.message == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.message);
+      }
+      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 {
+      // 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 JobUpdateEventStandardSchemeFactory implements SchemeFactory {
+    public JobUpdateEventStandardScheme getScheme() {
+      return new JobUpdateEventStandardScheme();
+    }
+  }
+
+  private static class JobUpdateEventStandardScheme extends StandardScheme<JobUpdateEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobUpdateEvent 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: // STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.status = org.apache.airavata.cloud.aurora.client.sdk.JobUpdateStatus.findByValue(iprot.readI32());
+              struct.setStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TIMESTAMP_MS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timestampMs = iprot.readI64();
+              struct.setTimestampMsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // USER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.user = iprot.readString();
+              struct.setUserIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(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, JobUpdateEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.status != null) {
+        oprot.writeFieldBegin(STATUS_FIELD_DESC);
+        oprot.writeI32(struct.status.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(TIMESTAMP_MS_FIELD_DESC);
+      oprot.writeI64(struct.timestampMs);
+      oprot.writeFieldEnd();
+      if (struct.user != null) {
+        if (struct.isSetUser()) {
+          oprot.writeFieldBegin(USER_FIELD_DESC);
+          oprot.writeString(struct.user);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.message != null) {
+        if (struct.isSetMessage()) {
+          oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+          oprot.writeString(struct.message);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobUpdateEventTupleSchemeFactory implements SchemeFactory {
+    public JobUpdateEventTupleScheme getScheme() {
+      return new JobUpdateEventTupleScheme();
+    }
+  }
+
+  private static class JobUpdateEventTupleScheme extends TupleScheme<JobUpdateEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobUpdateEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetStatus()) {
+        optionals.set(0);
+      }
+      if (struct.isSetTimestampMs()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUser()) {
+        optionals.set(2);
+      }
+      if (struct.isSetMessage()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetStatus()) {
+        oprot.writeI32(struct.status.getValue());
+      }
+      if (struct.isSetTimestampMs()) {
+        oprot.writeI64(struct.timestampMs);
+      }
+      if (struct.isSetUser()) {
+        oprot.writeString(struct.user);
+      }
+      if (struct.isSetMessage()) {
+        oprot.writeString(struct.message);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobUpdateEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.status = org.apache.airavata.cloud.aurora.client.sdk.JobUpdateStatus.findByValue(iprot.readI32());
+        struct.setStatusIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.timestampMs = iprot.readI64();
+        struct.setTimestampMsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.user = iprot.readString();
+        struct.setUserIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.message = iprot.readString();
+        struct.setMessageIsSet(true);
+      }
+    }
+  }
+
+}
+