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/Lock.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/Lock.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/Lock.java
new file mode 100644
index 0000000..4d3e6c3
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/Lock.java
@@ -0,0 +1,884 @@
+/**
+ * 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"})
+/**
+ * A generic lock struct to facilitate context specific resource/operation 
serialization.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-21")
+public class Lock implements org.apache.thrift.TBase<Lock, Lock._Fields>, 
java.io.Serializable, Cloneable, Comparable<Lock> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Lock");
+
+  private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new 
org.apache.thrift.protocol.TField("key", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField TOKEN_FIELD_DESC = 
new org.apache.thrift.protocol.TField("token", 
org.apache.thrift.protocol.TType.STRING, (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 
TIMESTAMP_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("timestampMs", 
org.apache.thrift.protocol.TType.I64, (short)4);
+  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)5);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new LockStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new LockTupleSchemeFactory());
+  }
+
+  /**
+   * ID of the lock - unique per storage
+   */
+  public LockKey key; // required
+  /**
+   * UUID - facilitating soft lock authorization
+   */
+  public String token; // required
+  /**
+   * Lock creator
+   */
+  public String user; // required
+  /**
+   * Lock creation timestamp in milliseconds
+   */
+  public long timestampMs; // required
+  /**
+   * Optional message to record with the lock
+   */
+  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 {
+    /**
+     * ID of the lock - unique per storage
+     */
+    KEY((short)1, "key"),
+    /**
+     * UUID - facilitating soft lock authorization
+     */
+    TOKEN((short)2, "token"),
+    /**
+     * Lock creator
+     */
+    USER((short)3, "user"),
+    /**
+     * Lock creation timestamp in milliseconds
+     */
+    TIMESTAMP_MS((short)4, "timestampMs"),
+    /**
+     * Optional message to record with the lock
+     */
+    MESSAGE((short)5, "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: // KEY
+          return KEY;
+        case 2: // TOKEN
+          return TOKEN;
+        case 3: // USER
+          return USER;
+        case 4: // TIMESTAMP_MS
+          return TIMESTAMP_MS;
+        case 5: // 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.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.KEY, new 
org.apache.thrift.meta_data.FieldMetaData("key", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 LockKey.class)));
+    tmpMap.put(_Fields.TOKEN, new 
org.apache.thrift.meta_data.FieldMetaData("token", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USER, new 
org.apache.thrift.meta_data.FieldMetaData("user", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    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.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(Lock.class, 
metaDataMap);
+  }
+
+  public Lock() {
+  }
+
+  public Lock(
+    LockKey key,
+    String token,
+    String user,
+    long timestampMs)
+  {
+    this();
+    this.key = key;
+    this.token = token;
+    this.user = user;
+    this.timestampMs = timestampMs;
+    setTimestampMsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Lock(Lock other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetKey()) {
+      this.key = new LockKey(other.key);
+    }
+    if (other.isSetToken()) {
+      this.token = other.token;
+    }
+    if (other.isSetUser()) {
+      this.user = other.user;
+    }
+    this.timestampMs = other.timestampMs;
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public Lock deepCopy() {
+    return new Lock(this);
+  }
+
+  @Override
+  public void clear() {
+    this.key = null;
+    this.token = null;
+    this.user = null;
+    setTimestampMsIsSet(false);
+    this.timestampMs = 0;
+    this.message = null;
+  }
+
+  /**
+   * ID of the lock - unique per storage
+   */
+  public LockKey getKey() {
+    return this.key;
+  }
+
+  /**
+   * ID of the lock - unique per storage
+   */
+  public Lock setKey(LockKey key) {
+    this.key = key;
+    return this;
+  }
+
+  public void unsetKey() {
+    this.key = null;
+  }
+
+  /** Returns true if field key is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetKey() {
+    return this.key != null;
+  }
+
+  public void setKeyIsSet(boolean value) {
+    if (!value) {
+      this.key = null;
+    }
+  }
+
+  /**
+   * UUID - facilitating soft lock authorization
+   */
+  public String getToken() {
+    return this.token;
+  }
+
+  /**
+   * UUID - facilitating soft lock authorization
+   */
+  public Lock setToken(String token) {
+    this.token = token;
+    return this;
+  }
+
+  public void unsetToken() {
+    this.token = null;
+  }
+
+  /** Returns true if field token is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetToken() {
+    return this.token != null;
+  }
+
+  public void setTokenIsSet(boolean value) {
+    if (!value) {
+      this.token = null;
+    }
+  }
+
+  /**
+   * Lock creator
+   */
+  public String getUser() {
+    return this.user;
+  }
+
+  /**
+   * Lock creator
+   */
+  public Lock 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;
+    }
+  }
+
+  /**
+   * Lock creation timestamp in milliseconds
+   */
+  public long getTimestampMs() {
+    return this.timestampMs;
+  }
+
+  /**
+   * Lock creation timestamp in milliseconds
+   */
+  public Lock 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);
+  }
+
+  /**
+   * Optional message to record with the lock
+   */
+  public String getMessage() {
+    return this.message;
+  }
+
+  /**
+   * Optional message to record with the lock
+   */
+  public Lock 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 KEY:
+      if (value == null) {
+        unsetKey();
+      } else {
+        setKey((LockKey)value);
+      }
+      break;
+
+    case TOKEN:
+      if (value == null) {
+        unsetToken();
+      } else {
+        setToken((String)value);
+      }
+      break;
+
+    case USER:
+      if (value == null) {
+        unsetUser();
+      } else {
+        setUser((String)value);
+      }
+      break;
+
+    case TIMESTAMP_MS:
+      if (value == null) {
+        unsetTimestampMs();
+      } else {
+        setTimestampMs((Long)value);
+      }
+      break;
+
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case KEY:
+      return getKey();
+
+    case TOKEN:
+      return getToken();
+
+    case USER:
+      return getUser();
+
+    case TIMESTAMP_MS:
+      return getTimestampMs();
+
+    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 KEY:
+      return isSetKey();
+    case TOKEN:
+      return isSetToken();
+    case USER:
+      return isSetUser();
+    case TIMESTAMP_MS:
+      return isSetTimestampMs();
+    case MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Lock)
+      return this.equals((Lock)that);
+    return false;
+  }
+
+  public boolean equals(Lock that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_key = true && this.isSetKey();
+    boolean that_present_key = true && that.isSetKey();
+    if (this_present_key || that_present_key) {
+      if (!(this_present_key && that_present_key))
+        return false;
+      if (!this.key.equals(that.key))
+        return false;
+    }
+
+    boolean this_present_token = true && this.isSetToken();
+    boolean that_present_token = true && that.isSetToken();
+    if (this_present_token || that_present_token) {
+      if (!(this_present_token && that_present_token))
+        return false;
+      if (!this.token.equals(that.token))
+        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_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_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_key = true && (isSetKey());
+    list.add(present_key);
+    if (present_key)
+      list.add(key);
+
+    boolean present_token = true && (isSetToken());
+    list.add(present_token);
+    if (present_token)
+      list.add(token);
+
+    boolean present_user = true && (isSetUser());
+    list.add(present_user);
+    if (present_user)
+      list.add(user);
+
+    boolean present_timestampMs = true;
+    list.add(present_timestampMs);
+    if (present_timestampMs)
+      list.add(timestampMs);
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Lock other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetKey()).compareTo(other.isSetKey());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetKey()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, 
other.key);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetToken()).compareTo(other.isSetToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token, 
other.token);
+      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(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(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("Lock(");
+    boolean first = true;
+
+    sb.append("key:");
+    if (this.key == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.key);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("token:");
+    if (this.token == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.token);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("user:");
+    if (this.user == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.user);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("timestampMs:");
+    sb.append(this.timestampMs);
+    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 LockStandardSchemeFactory implements SchemeFactory {
+    public LockStandardScheme getScheme() {
+      return new LockStandardScheme();
+    }
+  }
+
+  private static class LockStandardScheme extends StandardScheme<Lock> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Lock 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: // KEY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.key = new LockKey();
+              struct.key.read(iprot);
+              struct.setKeyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.token = iprot.readString();
+              struct.setTokenIsSet(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: // 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 5: // 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, Lock struct) 
throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.key != null) {
+        oprot.writeFieldBegin(KEY_FIELD_DESC);
+        struct.key.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.token != null) {
+        oprot.writeFieldBegin(TOKEN_FIELD_DESC);
+        oprot.writeString(struct.token);
+        oprot.writeFieldEnd();
+      }
+      if (struct.user != null) {
+        oprot.writeFieldBegin(USER_FIELD_DESC);
+        oprot.writeString(struct.user);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(TIMESTAMP_MS_FIELD_DESC);
+      oprot.writeI64(struct.timestampMs);
+      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 LockTupleSchemeFactory implements SchemeFactory {
+    public LockTupleScheme getScheme() {
+      return new LockTupleScheme();
+    }
+  }
+
+  private static class LockTupleScheme extends TupleScheme<Lock> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Lock struct) 
throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetKey()) {
+        optionals.set(0);
+      }
+      if (struct.isSetToken()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUser()) {
+        optionals.set(2);
+      }
+      if (struct.isSetTimestampMs()) {
+        optionals.set(3);
+      }
+      if (struct.isSetMessage()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetKey()) {
+        struct.key.write(oprot);
+      }
+      if (struct.isSetToken()) {
+        oprot.writeString(struct.token);
+      }
+      if (struct.isSetUser()) {
+        oprot.writeString(struct.user);
+      }
+      if (struct.isSetTimestampMs()) {
+        oprot.writeI64(struct.timestampMs);
+      }
+      if (struct.isSetMessage()) {
+        oprot.writeString(struct.message);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Lock struct) 
throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.key = new LockKey();
+        struct.key.read(iprot);
+        struct.setKeyIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.token = iprot.readString();
+        struct.setTokenIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.user = iprot.readString();
+        struct.setUserIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.timestampMs = iprot.readI64();
+        struct.setTimestampMsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.message = iprot.readString();
+        struct.setMessageIsSet(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/LockKey.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/LockKey.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/LockKey.java
new file mode 100644
index 0000000..bc1ae7a
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/LockKey.java
@@ -0,0 +1,312 @@
+/**
+ * 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"})
+/**
+ * A unique lock key.
+ */
+public class LockKey extends org.apache.thrift.TUnion<LockKey, 
LockKey._Fields> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("LockKey");
+  private static final org.apache.thrift.protocol.TField JOB_FIELD_DESC = new 
org.apache.thrift.protocol.TField("job", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+  /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB((short)1, "job");
+
+    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: // JOB
+          return JOB;
+        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;
+    }
+  }
+
+  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.JOB, new 
org.apache.thrift.meta_data.FieldMetaData("job", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 JobKey.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(LockKey.class, 
metaDataMap);
+  }
+
+  public LockKey() {
+    super();
+  }
+
+  public LockKey(_Fields setField, Object value) {
+    super(setField, value);
+  }
+
+  public LockKey(LockKey other) {
+    super(other);
+  }
+  public LockKey deepCopy() {
+    return new LockKey(this);
+  }
+
+  public static LockKey job(JobKey value) {
+    LockKey x = new LockKey();
+    x.setJob(value);
+    return x;
+  }
+
+
+  @Override
+  protected void checkType(_Fields setField, Object value) throws 
ClassCastException {
+    switch (setField) {
+      case JOB:
+        if (value instanceof JobKey) {
+          break;
+        }
+        throw new ClassCastException("Was expecting value of type JobKey for 
field 'job', but got " + value.getClass().getSimpleName());
+      default:
+        throw new IllegalArgumentException("Unknown field id " + setField);
+    }
+  }
+
+  @Override
+  protected Object 
standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, 
org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException {
+    _Fields setField = _Fields.findByThriftId(field.id);
+    if (setField != null) {
+      switch (setField) {
+        case JOB:
+          if (field.type == JOB_FIELD_DESC.type) {
+            JobKey job;
+            job = new JobKey();
+            job.read(iprot);
+            return job;
+          } else {
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+            return null;
+          }
+        default:
+          throw new IllegalStateException("setField wasn't null, but didn't 
match any of the case statements!");
+      }
+    } else {
+      org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
+      return null;
+    }
+  }
+
+  @Override
+  protected void standardSchemeWriteValue(org.apache.thrift.protocol.TProtocol 
oprot) throws org.apache.thrift.TException {
+    switch (setField_) {
+      case JOB:
+        JobKey job = (JobKey)value_;
+        job.write(oprot);
+        return;
+      default:
+        throw new IllegalStateException("Cannot write union with unknown field 
" + setField_);
+    }
+  }
+
+  @Override
+  protected Object tupleSchemeReadValue(org.apache.thrift.protocol.TProtocol 
iprot, short fieldID) throws org.apache.thrift.TException {
+    _Fields setField = _Fields.findByThriftId(fieldID);
+    if (setField != null) {
+      switch (setField) {
+        case JOB:
+          JobKey job;
+          job = new JobKey();
+          job.read(iprot);
+          return job;
+        default:
+          throw new IllegalStateException("setField wasn't null, but didn't 
match any of the case statements!");
+      }
+    } else {
+      throw new TProtocolException("Couldn't find a field with field id " + 
fieldID);
+    }
+  }
+
+  @Override
+  protected void tupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol 
oprot) throws org.apache.thrift.TException {
+    switch (setField_) {
+      case JOB:
+        JobKey job = (JobKey)value_;
+        job.write(oprot);
+        return;
+      default:
+        throw new IllegalStateException("Cannot write union with unknown field 
" + setField_);
+    }
+  }
+
+  @Override
+  protected org.apache.thrift.protocol.TField getFieldDesc(_Fields setField) {
+    switch (setField) {
+      case JOB:
+        return JOB_FIELD_DESC;
+      default:
+        throw new IllegalArgumentException("Unknown field id " + setField);
+    }
+  }
+
+  @Override
+  protected org.apache.thrift.protocol.TStruct getStructDesc() {
+    return STRUCT_DESC;
+  }
+
+  @Override
+  protected _Fields enumForId(short id) {
+    return _Fields.findByThriftIdOrThrow(id);
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+
+  public JobKey getJob() {
+    if (getSetField() == _Fields.JOB) {
+      return (JobKey)getFieldValue();
+    } else {
+      throw new RuntimeException("Cannot get field 'job' because union is 
currently set to " + getFieldDesc(getSetField()).name);
+    }
+  }
+
+  public void setJob(JobKey value) {
+    if (value == null) throw new NullPointerException();
+    setField_ = _Fields.JOB;
+    value_ = value;
+  }
+
+  public boolean isSetJob() {
+    return setField_ == _Fields.JOB;
+  }
+
+
+  public boolean equals(Object other) {
+    if (other instanceof LockKey) {
+      return equals((LockKey)other);
+    } else {
+      return false;
+    }
+  }
+
+  public boolean equals(LockKey other) {
+    return other != null && getSetField() == other.getSetField() && 
getFieldValue().equals(other.getFieldValue());
+  }
+
+  @Override
+  public int compareTo(LockKey other) {
+    int lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(getSetField(), other.getSetField());
+    if (lastComparison == 0) {
+      return org.apache.thrift.TBaseHelper.compareTo(getFieldValue(), 
other.getFieldValue());
+    }
+    return lastComparison;
+  }
+
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+    list.add(this.getClass().getName());
+    org.apache.thrift.TFieldIdEnum setField = getSetField();
+    if (setField != null) {
+      list.add(setField.getThriftFieldId());
+      Object value = getFieldValue();
+      if (value instanceof org.apache.thrift.TEnum) {
+        list.add(((org.apache.thrift.TEnum)getFieldValue()).getValue());
+      } else {
+        list.add(value);
+      }
+    }
+    return list.hashCode();
+  }
+  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);
+    }
+  }
+
+
+}

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/MaintenanceMode.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceMode.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceMode.java
new file mode 100644
index 0000000..38501f3
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceMode.java
@@ -0,0 +1,51 @@
+/**
+ * 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;
+
+public enum MaintenanceMode implements org.apache.thrift.TEnum {
+  NONE(1),
+  SCHEDULED(2),
+  DRAINING(3),
+  DRAINED(4);
+
+  private final int value;
+
+  private MaintenanceMode(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 MaintenanceMode findByValue(int value) { 
+    switch (value) {
+      case 1:
+        return NONE;
+      case 2:
+        return SCHEDULED;
+      case 3:
+        return DRAINING;
+      case 4:
+        return DRAINED;
+      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/MaintenanceStatusResult.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceStatusResult.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceStatusResult.java
new file mode 100644
index 0000000..0dd83b1
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MaintenanceStatusResult.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 MaintenanceStatusResult implements 
org.apache.thrift.TBase<MaintenanceStatusResult, 
MaintenanceStatusResult._Fields>, java.io.Serializable, Cloneable, 
Comparable<MaintenanceStatusResult> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("MaintenanceStatusResult");
+
+  private static final org.apache.thrift.protocol.TField STATUSES_FIELD_DESC = 
new org.apache.thrift.protocol.TField("statuses", 
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 
MaintenanceStatusResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new 
MaintenanceStatusResultTupleSchemeFactory());
+  }
+
+  public Set<HostStatus> statuses; // 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 {
+    STATUSES((short)1, "statuses");
+
+    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: // STATUSES
+          return STATUSES;
+        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.STATUSES, new 
org.apache.thrift.meta_data.FieldMetaData("statuses", 
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,
 HostStatus.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MaintenanceStatusResult.class,
 metaDataMap);
+  }
+
+  public MaintenanceStatusResult() {
+  }
+
+  public MaintenanceStatusResult(
+    Set<HostStatus> statuses)
+  {
+    this();
+    this.statuses = statuses;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MaintenanceStatusResult(MaintenanceStatusResult other) {
+    if (other.isSetStatuses()) {
+      Set<HostStatus> __this__statuses = new 
HashSet<HostStatus>(other.statuses.size());
+      for (HostStatus other_element : other.statuses) {
+        __this__statuses.add(new HostStatus(other_element));
+      }
+      this.statuses = __this__statuses;
+    }
+  }
+
+  public MaintenanceStatusResult deepCopy() {
+    return new MaintenanceStatusResult(this);
+  }
+
+  @Override
+  public void clear() {
+    this.statuses = null;
+  }
+
+  public int getStatusesSize() {
+    return (this.statuses == null) ? 0 : this.statuses.size();
+  }
+
+  public java.util.Iterator<HostStatus> getStatusesIterator() {
+    return (this.statuses == null) ? null : this.statuses.iterator();
+  }
+
+  public void addToStatuses(HostStatus elem) {
+    if (this.statuses == null) {
+      this.statuses = new HashSet<HostStatus>();
+    }
+    this.statuses.add(elem);
+  }
+
+  public Set<HostStatus> getStatuses() {
+    return this.statuses;
+  }
+
+  public MaintenanceStatusResult setStatuses(Set<HostStatus> statuses) {
+    this.statuses = statuses;
+    return this;
+  }
+
+  public void unsetStatuses() {
+    this.statuses = null;
+  }
+
+  /** Returns true if field statuses is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetStatuses() {
+    return this.statuses != null;
+  }
+
+  public void setStatusesIsSet(boolean value) {
+    if (!value) {
+      this.statuses = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATUSES:
+      if (value == null) {
+        unsetStatuses();
+      } else {
+        setStatuses((Set<HostStatus>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATUSES:
+      return getStatuses();
+
+    }
+    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 STATUSES:
+      return isSetStatuses();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MaintenanceStatusResult)
+      return this.equals((MaintenanceStatusResult)that);
+    return false;
+  }
+
+  public boolean equals(MaintenanceStatusResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_statuses = true && this.isSetStatuses();
+    boolean that_present_statuses = true && that.isSetStatuses();
+    if (this_present_statuses || that_present_statuses) {
+      if (!(this_present_statuses && that_present_statuses))
+        return false;
+      if (!this.statuses.equals(that.statuses))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_statuses = true && (isSetStatuses());
+    list.add(present_statuses);
+    if (present_statuses)
+      list.add(statuses);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MaintenanceStatusResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetStatuses()).compareTo(other.isSetStatuses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStatuses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statuses, 
other.statuses);
+      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("MaintenanceStatusResult(");
+    boolean first = true;
+
+    sb.append("statuses:");
+    if (this.statuses == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.statuses);
+    }
+    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 MaintenanceStatusResultStandardSchemeFactory implements 
SchemeFactory {
+    public MaintenanceStatusResultStandardScheme getScheme() {
+      return new MaintenanceStatusResultStandardScheme();
+    }
+  }
+
+  private static class MaintenanceStatusResultStandardScheme extends 
StandardScheme<MaintenanceStatusResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
MaintenanceStatusResult 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: // STATUSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set286 = iprot.readSetBegin();
+                struct.statuses = new HashSet<HostStatus>(2*_set286.size);
+                HostStatus _elem287;
+                for (int _i288 = 0; _i288 < _set286.size; ++_i288)
+                {
+                  _elem287 = new HostStatus();
+                  _elem287.read(iprot);
+                  struct.statuses.add(_elem287);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setStatusesIsSet(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, 
MaintenanceStatusResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.statuses != null) {
+        oprot.writeFieldBegin(STATUSES_FIELD_DESC);
+        {
+          oprot.writeSetBegin(new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, 
struct.statuses.size()));
+          for (HostStatus _iter289 : struct.statuses)
+          {
+            _iter289.write(oprot);
+          }
+          oprot.writeSetEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MaintenanceStatusResultTupleSchemeFactory implements 
SchemeFactory {
+    public MaintenanceStatusResultTupleScheme getScheme() {
+      return new MaintenanceStatusResultTupleScheme();
+    }
+  }
+
+  private static class MaintenanceStatusResultTupleScheme extends 
TupleScheme<MaintenanceStatusResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
MaintenanceStatusResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetStatuses()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetStatuses()) {
+        {
+          oprot.writeI32(struct.statuses.size());
+          for (HostStatus _iter290 : struct.statuses)
+          {
+            _iter290.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, 
MaintenanceStatusResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TSet _set291 = new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
+          struct.statuses = new HashSet<HostStatus>(2*_set291.size);
+          HostStatus _elem292;
+          for (int _i293 = 0; _i293 < _set291.size; ++_i293)
+          {
+            _elem292 = new HostStatus();
+            _elem292.read(iprot);
+            struct.statuses.add(_elem292);
+          }
+        }
+        struct.setStatusesIsSet(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/MesosContainer.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosContainer.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosContainer.java
new file mode 100644
index 0000000..cb50263
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosContainer.java
@@ -0,0 +1,413 @@
+/**
+ * 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"})
+/**
+ * Describes a mesos container, this is the default
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-21")
+public class MesosContainer implements org.apache.thrift.TBase<MesosContainer, 
MesosContainer._Fields>, java.io.Serializable, Cloneable, 
Comparable<MesosContainer> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("MesosContainer");
+
+  private static final org.apache.thrift.protocol.TField IMAGE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("image", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
MesosContainerStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MesosContainerTupleSchemeFactory());
+  }
+
+  /**
+   * the optional filesystem image to use when launching this task.
+   */
+  public Image image; // 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 {
+    /**
+     * the optional filesystem image to use when launching this task.
+     */
+    IMAGE((short)1, "image");
+
+    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: // IMAGE
+          return IMAGE;
+        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 _Fields optionals[] = {_Fields.IMAGE};
+  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.IMAGE, new 
org.apache.thrift.meta_data.FieldMetaData("image", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 Image.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MesosContainer.class,
 metaDataMap);
+  }
+
+  public MesosContainer() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MesosContainer(MesosContainer other) {
+    if (other.isSetImage()) {
+      this.image = new Image(other.image);
+    }
+  }
+
+  public MesosContainer deepCopy() {
+    return new MesosContainer(this);
+  }
+
+  @Override
+  public void clear() {
+    this.image = null;
+  }
+
+  /**
+   * the optional filesystem image to use when launching this task.
+   */
+  public Image getImage() {
+    return this.image;
+  }
+
+  /**
+   * the optional filesystem image to use when launching this task.
+   */
+  public MesosContainer setImage(Image image) {
+    this.image = image;
+    return this;
+  }
+
+  public void unsetImage() {
+    this.image = null;
+  }
+
+  /** Returns true if field image is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetImage() {
+    return this.image != null;
+  }
+
+  public void setImageIsSet(boolean value) {
+    if (!value) {
+      this.image = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case IMAGE:
+      if (value == null) {
+        unsetImage();
+      } else {
+        setImage((Image)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case IMAGE:
+      return getImage();
+
+    }
+    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 IMAGE:
+      return isSetImage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MesosContainer)
+      return this.equals((MesosContainer)that);
+    return false;
+  }
+
+  public boolean equals(MesosContainer that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_image = true && this.isSetImage();
+    boolean that_present_image = true && that.isSetImage();
+    if (this_present_image || that_present_image) {
+      if (!(this_present_image && that_present_image))
+        return false;
+      if (!this.image.equals(that.image))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_image = true && (isSetImage());
+    list.add(present_image);
+    if (present_image)
+      list.add(image);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MesosContainer other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetImage()).compareTo(other.isSetImage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetImage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.image, 
other.image);
+      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("MesosContainer(");
+    boolean first = true;
+
+    if (isSetImage()) {
+      sb.append("image:");
+      if (this.image == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.image);
+      }
+      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 MesosContainerStandardSchemeFactory implements 
SchemeFactory {
+    public MesosContainerStandardScheme getScheme() {
+      return new MesosContainerStandardScheme();
+    }
+  }
+
+  private static class MesosContainerStandardScheme extends 
StandardScheme<MesosContainer> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
MesosContainer 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: // IMAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.image = new Image();
+              struct.image.read(iprot);
+              struct.setImageIsSet(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, 
MesosContainer struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.image != null) {
+        if (struct.isSetImage()) {
+          oprot.writeFieldBegin(IMAGE_FIELD_DESC);
+          struct.image.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MesosContainerTupleSchemeFactory implements 
SchemeFactory {
+    public MesosContainerTupleScheme getScheme() {
+      return new MesosContainerTupleScheme();
+    }
+  }
+
+  private static class MesosContainerTupleScheme extends 
TupleScheme<MesosContainer> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
MesosContainer struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetImage()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetImage()) {
+        struct.image.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, MesosContainer 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.image = new Image();
+        struct.image.read(iprot);
+        struct.setImageIsSet(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/MesosFetcherURI.java
----------------------------------------------------------------------
diff --git 
a/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosFetcherURI.java
 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosFetcherURI.java
new file mode 100644
index 0000000..6b7f87b
--- /dev/null
+++ 
b/modules/cloud/aurora-client/src/main/java/org/apache/airavata/cloud/aurora/client/sdk/MesosFetcherURI.java
@@ -0,0 +1,642 @@
+/**
+ * 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"})
+/**
+ * URI which mirrors CommandInfo.URI in the Mesos Protobuf
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-10-21")
+public class MesosFetcherURI implements 
org.apache.thrift.TBase<MesosFetcherURI, MesosFetcherURI._Fields>, 
java.io.Serializable, Cloneable, Comparable<MesosFetcherURI> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("MesosFetcherURI");
+
+  private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("value", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField EXTRACT_FIELD_DESC = 
new org.apache.thrift.protocol.TField("extract", 
org.apache.thrift.protocol.TType.BOOL, (short)2);
+  private static final org.apache.thrift.protocol.TField CACHE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("cache", 
org.apache.thrift.protocol.TType.BOOL, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
MesosFetcherURIStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MesosFetcherURITupleSchemeFactory());
+  }
+
+  /**
+   * Where to get the resource from
+   */
+  public String value; // required
+  /**
+   * Extract compressed archive after downloading
+   */
+  public boolean extract; // optional
+  /**
+   * Cache value using Mesos Fetcher caching mechanism *
+   */
+  public boolean cache; // 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 {
+    /**
+     * Where to get the resource from
+     */
+    VALUE((short)1, "value"),
+    /**
+     * Extract compressed archive after downloading
+     */
+    EXTRACT((short)2, "extract"),
+    /**
+     * Cache value using Mesos Fetcher caching mechanism *
+     */
+    CACHE((short)3, "cache");
+
+    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: // VALUE
+          return VALUE;
+        case 2: // EXTRACT
+          return EXTRACT;
+        case 3: // CACHE
+          return CACHE;
+        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 __EXTRACT_ISSET_ID = 0;
+  private static final int __CACHE_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.EXTRACT,_Fields.CACHE};
+  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.VALUE, new 
org.apache.thrift.meta_data.FieldMetaData("value", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXTRACT, new 
org.apache.thrift.meta_data.FieldMetaData("extract", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.CACHE, new 
org.apache.thrift.meta_data.FieldMetaData("cache", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MesosFetcherURI.class,
 metaDataMap);
+  }
+
+  public MesosFetcherURI() {
+  }
+
+  public MesosFetcherURI(
+    String value)
+  {
+    this();
+    this.value = value;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MesosFetcherURI(MesosFetcherURI other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+    this.extract = other.extract;
+    this.cache = other.cache;
+  }
+
+  public MesosFetcherURI deepCopy() {
+    return new MesosFetcherURI(this);
+  }
+
+  @Override
+  public void clear() {
+    this.value = null;
+    setExtractIsSet(false);
+    this.extract = false;
+    setCacheIsSet(false);
+    this.cache = false;
+  }
+
+  /**
+   * Where to get the resource from
+   */
+  public String getValue() {
+    return this.value;
+  }
+
+  /**
+   * Where to get the resource from
+   */
+  public MesosFetcherURI setValue(String value) {
+    this.value = value;
+    return this;
+  }
+
+  public void unsetValue() {
+    this.value = null;
+  }
+
+  /** Returns true if field value is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetValue() {
+    return this.value != null;
+  }
+
+  public void setValueIsSet(boolean value) {
+    if (!value) {
+      this.value = null;
+    }
+  }
+
+  /**
+   * Extract compressed archive after downloading
+   */
+  public boolean isExtract() {
+    return this.extract;
+  }
+
+  /**
+   * Extract compressed archive after downloading
+   */
+  public MesosFetcherURI setExtract(boolean extract) {
+    this.extract = extract;
+    setExtractIsSet(true);
+    return this;
+  }
+
+  public void unsetExtract() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__EXTRACT_ISSET_ID);
+  }
+
+  /** Returns true if field extract is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetExtract() {
+    return EncodingUtils.testBit(__isset_bitfield, __EXTRACT_ISSET_ID);
+  }
+
+  public void setExtractIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__EXTRACT_ISSET_ID, value);
+  }
+
+  /**
+   * Cache value using Mesos Fetcher caching mechanism *
+   */
+  public boolean isCache() {
+    return this.cache;
+  }
+
+  /**
+   * Cache value using Mesos Fetcher caching mechanism *
+   */
+  public MesosFetcherURI setCache(boolean cache) {
+    this.cache = cache;
+    setCacheIsSet(true);
+    return this;
+  }
+
+  public void unsetCache() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__CACHE_ISSET_ID);
+  }
+
+  /** Returns true if field cache is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetCache() {
+    return EncodingUtils.testBit(__isset_bitfield, __CACHE_ISSET_ID);
+  }
+
+  public void setCacheIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__CACHE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    case EXTRACT:
+      if (value == null) {
+        unsetExtract();
+      } else {
+        setExtract((Boolean)value);
+      }
+      break;
+
+    case CACHE:
+      if (value == null) {
+        unsetCache();
+      } else {
+        setCache((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case VALUE:
+      return getValue();
+
+    case EXTRACT:
+      return isExtract();
+
+    case CACHE:
+      return isCache();
+
+    }
+    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 VALUE:
+      return isSetValue();
+    case EXTRACT:
+      return isSetExtract();
+    case CACHE:
+      return isSetCache();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MesosFetcherURI)
+      return this.equals((MesosFetcherURI)that);
+    return false;
+  }
+
+  public boolean equals(MesosFetcherURI that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_value = true && this.isSetValue();
+    boolean that_present_value = true && that.isSetValue();
+    if (this_present_value || that_present_value) {
+      if (!(this_present_value && that_present_value))
+        return false;
+      if (!this.value.equals(that.value))
+        return false;
+    }
+
+    boolean this_present_extract = true && this.isSetExtract();
+    boolean that_present_extract = true && that.isSetExtract();
+    if (this_present_extract || that_present_extract) {
+      if (!(this_present_extract && that_present_extract))
+        return false;
+      if (this.extract != that.extract)
+        return false;
+    }
+
+    boolean this_present_cache = true && this.isSetCache();
+    boolean that_present_cache = true && that.isSetCache();
+    if (this_present_cache || that_present_cache) {
+      if (!(this_present_cache && that_present_cache))
+        return false;
+      if (this.cache != that.cache)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_value = true && (isSetValue());
+    list.add(present_value);
+    if (present_value)
+      list.add(value);
+
+    boolean present_extract = true && (isSetExtract());
+    list.add(present_extract);
+    if (present_extract)
+      list.add(extract);
+
+    boolean present_cache = true && (isSetCache());
+    list.add(present_cache);
+    if (present_cache)
+      list.add(cache);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MesosFetcherURI other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetValue()).compareTo(other.isSetValue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, 
other.value);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetExtract()).compareTo(other.isSetExtract());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExtract()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.extract, 
other.extract);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetCache()).compareTo(other.isSetCache());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCache()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cache, 
other.cache);
+      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("MesosFetcherURI(");
+    boolean first = true;
+
+    sb.append("value:");
+    if (this.value == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.value);
+    }
+    first = false;
+    if (isSetExtract()) {
+      if (!first) sb.append(", ");
+      sb.append("extract:");
+      sb.append(this.extract);
+      first = false;
+    }
+    if (isSetCache()) {
+      if (!first) sb.append(", ");
+      sb.append("cache:");
+      sb.append(this.cache);
+      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 MesosFetcherURIStandardSchemeFactory implements 
SchemeFactory {
+    public MesosFetcherURIStandardScheme getScheme() {
+      return new MesosFetcherURIStandardScheme();
+    }
+  }
+
+  private static class MesosFetcherURIStandardScheme extends 
StandardScheme<MesosFetcherURI> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
MesosFetcherURI 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: // VALUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.value = iprot.readString();
+              struct.setValueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // EXTRACT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.extract = iprot.readBool();
+              struct.setExtractIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // CACHE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.cache = iprot.readBool();
+              struct.setCacheIsSet(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, 
MesosFetcherURI struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.value != null) {
+        oprot.writeFieldBegin(VALUE_FIELD_DESC);
+        oprot.writeString(struct.value);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetExtract()) {
+        oprot.writeFieldBegin(EXTRACT_FIELD_DESC);
+        oprot.writeBool(struct.extract);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCache()) {
+        oprot.writeFieldBegin(CACHE_FIELD_DESC);
+        oprot.writeBool(struct.cache);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MesosFetcherURITupleSchemeFactory implements 
SchemeFactory {
+    public MesosFetcherURITupleScheme getScheme() {
+      return new MesosFetcherURITupleScheme();
+    }
+  }
+
+  private static class MesosFetcherURITupleScheme extends 
TupleScheme<MesosFetcherURI> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
MesosFetcherURI struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetValue()) {
+        optionals.set(0);
+      }
+      if (struct.isSetExtract()) {
+        optionals.set(1);
+      }
+      if (struct.isSetCache()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetValue()) {
+        oprot.writeString(struct.value);
+      }
+      if (struct.isSetExtract()) {
+        oprot.writeBool(struct.extract);
+      }
+      if (struct.isSetCache()) {
+        oprot.writeBool(struct.cache);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, 
MesosFetcherURI struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.value = iprot.readString();
+        struct.setValueIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.extract = iprot.readBool();
+        struct.setExtractIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.cache = iprot.readBool();
+        struct.setCacheIsSet(true);
+      }
+    }
+  }
+
+}
+

Reply via email to