You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/06/29 00:45:55 UTC

[01/12] adding generated code for app-catalog

Repository: airavata
Updated Branches:
  refs/heads/master 77970e0c4 -> 8ebb254ff


http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GridFTPDataMovement.java
new file mode 100644
index 0000000..1cc4328
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GridFTPDataMovement.java
@@ -0,0 +1,651 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField GRID_FTPEND_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("gridFTPEndPoint", 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 GridFTPDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GridFTPDataMovementTupleSchemeFactory());
+  }
+
+  private String dataMovementDataID; // required
+  private SecurityProtocol securityProtocol; // required
+  private List<String> gridFTPEndPoint; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_DATA_ID((short)1, "dataMovementDataID"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    GRID_FTPEND_POINT((short)3, "gridFTPEndPoint");
+
+    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: // DATA_MOVEMENT_DATA_ID
+          return DATA_MOVEMENT_DATA_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // GRID_FTPEND_POINT
+          return GRID_FTPEND_POINT;
+        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.DATA_MOVEMENT_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.GRID_FTPEND_POINT, new org.apache.thrift.meta_data.FieldMetaData("gridFTPEndPoint", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GridFTPDataMovement.class, metaDataMap);
+  }
+
+  public GridFTPDataMovement() {
+    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public GridFTPDataMovement(
+    String dataMovementDataID,
+    SecurityProtocol securityProtocol,
+    List<String> gridFTPEndPoint)
+  {
+    this();
+    this.dataMovementDataID = dataMovementDataID;
+    this.securityProtocol = securityProtocol;
+    this.gridFTPEndPoint = gridFTPEndPoint;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GridFTPDataMovement(GridFTPDataMovement other) {
+    if (other.isSetDataMovementDataID()) {
+      this.dataMovementDataID = other.dataMovementDataID;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetGridFTPEndPoint()) {
+      List<String> __this__gridFTPEndPoint = new ArrayList<String>(other.gridFTPEndPoint);
+      this.gridFTPEndPoint = __this__gridFTPEndPoint;
+    }
+  }
+
+  public GridFTPDataMovement deepCopy() {
+    return new GridFTPDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.gridFTPEndPoint = null;
+  }
+
+  public String getDataMovementDataID() {
+    return this.dataMovementDataID;
+  }
+
+  public void setDataMovementDataID(String dataMovementDataID) {
+    this.dataMovementDataID = dataMovementDataID;
+  }
+
+  public void unsetDataMovementDataID() {
+    this.dataMovementDataID = null;
+  }
+
+  /** Returns true if field dataMovementDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementDataID() {
+    return this.dataMovementDataID != null;
+  }
+
+  public void setDataMovementDataIDIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementDataID = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public int getGridFTPEndPointSize() {
+    return (this.gridFTPEndPoint == null) ? 0 : this.gridFTPEndPoint.size();
+  }
+
+  public java.util.Iterator<String> getGridFTPEndPointIterator() {
+    return (this.gridFTPEndPoint == null) ? null : this.gridFTPEndPoint.iterator();
+  }
+
+  public void addToGridFTPEndPoint(String elem) {
+    if (this.gridFTPEndPoint == null) {
+      this.gridFTPEndPoint = new ArrayList<String>();
+    }
+    this.gridFTPEndPoint.add(elem);
+  }
+
+  public List<String> getGridFTPEndPoint() {
+    return this.gridFTPEndPoint;
+  }
+
+  public void setGridFTPEndPoint(List<String> gridFTPEndPoint) {
+    this.gridFTPEndPoint = gridFTPEndPoint;
+  }
+
+  public void unsetGridFTPEndPoint() {
+    this.gridFTPEndPoint = null;
+  }
+
+  /** Returns true if field gridFTPEndPoint is set (has been assigned a value) and false otherwise */
+  public boolean isSetGridFTPEndPoint() {
+    return this.gridFTPEndPoint != null;
+  }
+
+  public void setGridFTPEndPointIsSet(boolean value) {
+    if (!value) {
+      this.gridFTPEndPoint = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_DATA_ID:
+      if (value == null) {
+        unsetDataMovementDataID();
+      } else {
+        setDataMovementDataID((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case GRID_FTPEND_POINT:
+      if (value == null) {
+        unsetGridFTPEndPoint();
+      } else {
+        setGridFTPEndPoint((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_DATA_ID:
+      return getDataMovementDataID();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case GRID_FTPEND_POINT:
+      return getGridFTPEndPoint();
+
+    }
+    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 DATA_MOVEMENT_DATA_ID:
+      return isSetDataMovementDataID();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case GRID_FTPEND_POINT:
+      return isSetGridFTPEndPoint();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GridFTPDataMovement)
+      return this.equals((GridFTPDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(GridFTPDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementDataID = true && this.isSetDataMovementDataID();
+    boolean that_present_dataMovementDataID = true && that.isSetDataMovementDataID();
+    if (this_present_dataMovementDataID || that_present_dataMovementDataID) {
+      if (!(this_present_dataMovementDataID && that_present_dataMovementDataID))
+        return false;
+      if (!this.dataMovementDataID.equals(that.dataMovementDataID))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_gridFTPEndPoint = true && this.isSetGridFTPEndPoint();
+    boolean that_present_gridFTPEndPoint = true && that.isSetGridFTPEndPoint();
+    if (this_present_gridFTPEndPoint || that_present_gridFTPEndPoint) {
+      if (!(this_present_gridFTPEndPoint && that_present_gridFTPEndPoint))
+        return false;
+      if (!this.gridFTPEndPoint.equals(that.gridFTPEndPoint))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(GridFTPDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementDataID()).compareTo(other.isSetDataMovementDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementDataID, other.dataMovementDataID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGridFTPEndPoint()).compareTo(other.isSetGridFTPEndPoint());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGridFTPEndPoint()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gridFTPEndPoint, other.gridFTPEndPoint);
+      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("GridFTPDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementDataID:");
+    if (this.dataMovementDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gridFTPEndPoint:");
+    if (this.gridFTPEndPoint == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gridFTPEndPoint);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetDataMovementDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementDataID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetGridFTPEndPoint()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gridFTPEndPoint' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      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 GridFTPDataMovementStandardSchemeFactory implements SchemeFactory {
+    public GridFTPDataMovementStandardScheme getScheme() {
+      return new GridFTPDataMovementStandardScheme();
+    }
+  }
+
+  private static class GridFTPDataMovementStandardScheme extends StandardScheme<GridFTPDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GridFTPDataMovement 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: // DATA_MOVEMENT_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementDataID = iprot.readString();
+              struct.setDataMovementDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GRID_FTPEND_POINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.gridFTPEndPoint = new ArrayList<String>(_list0.size);
+                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                {
+                  String _elem2;
+                  _elem2 = iprot.readString();
+                  struct.gridFTPEndPoint.add(_elem2);
+                }
+                iprot.readListEnd();
+              }
+              struct.setGridFTPEndPointIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementDataID != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.gridFTPEndPoint != null) {
+        oprot.writeFieldBegin(GRID_FTPEND_POINT_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.gridFTPEndPoint.size()));
+          for (String _iter3 : struct.gridFTPEndPoint)
+          {
+            oprot.writeString(_iter3);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GridFTPDataMovementTupleSchemeFactory implements SchemeFactory {
+    public GridFTPDataMovementTupleScheme getScheme() {
+      return new GridFTPDataMovementTupleScheme();
+    }
+  }
+
+  private static class GridFTPDataMovementTupleScheme extends TupleScheme<GridFTPDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementDataID);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      {
+        oprot.writeI32(struct.gridFTPEndPoint.size());
+        for (String _iter4 : struct.gridFTPEndPoint)
+        {
+          oprot.writeString(_iter4);
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementDataID = iprot.readString();
+      struct.setDataMovementDataIDIsSet(true);
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      {
+        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+        struct.gridFTPEndPoint = new ArrayList<String>(_list5.size);
+        for (int _i6 = 0; _i6 < _list5.size; ++_i6)
+        {
+          String _elem7;
+          _elem7 = iprot.readString();
+          struct.gridFTPEndPoint.add(_elem7);
+        }
+      }
+      struct.setGridFTPEndPointIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/JobSubmissionProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/JobSubmissionProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/JobSubmissionProtocol.java
new file mode 100644
index 0000000..be3b6e1
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/JobSubmissionProtocol.java
@@ -0,0 +1,80 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of Airavata supported Job Submission Mechanisms for High Perforamance Computing Clusters.
+ * 
+ * SSH:
+ *  Execute remote job submission commands using via secure shell protocol.
+ * 
+ * GRAM:
+ *  Execute remote jobs via Globus GRAM service.
+ * 
+ * UNICORE:
+ *  Execute remote jobs via Unicore services
+ * 
+ */
+@SuppressWarnings("all") public enum JobSubmissionProtocol implements org.apache.thrift.TEnum {
+  SSH(0),
+  GSISSH(1),
+  GRAM(2),
+  UNICORE(3);
+
+  private final int value;
+
+  private JobSubmissionProtocol(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 JobSubmissionProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SSH;
+      case 1:
+        return GSISSH;
+      case 2:
+        return GRAM;
+      case 3:
+        return UNICORE;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ResourceJobManager.java
new file mode 100644
index 0000000..49c5581
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ResourceJobManager.java
@@ -0,0 +1,83 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of local resource job managers supported by Airavata
+ * 
+ * FORK:
+ *  Forking of commands without any job manager
+ * 
+ * PBS:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * 
+ * UGE:
+ *  Univa Grid Engine, a variation of PBS implementation.
+ * 
+ * SLURM:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ * 
+ */
+@SuppressWarnings("all") public enum ResourceJobManager implements org.apache.thrift.TEnum {
+  FORK(0),
+  PBS(1),
+  UGE(2),
+  SLURM(3);
+
+  private final int value;
+
+  private ResourceJobManager(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 ResourceJobManager findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FORK;
+      case 1:
+        return PBS;
+      case 2:
+        return UGE;
+      case 3:
+        return SLURM;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SCPDataMovement.java
new file mode 100644
index 0000000..699dfaf
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SCPDataMovement.java
@@ -0,0 +1,610 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SCPDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SCPDataMovementTupleSchemeFactory());
+  }
+
+  private String dataMovementDataID; // required
+  private SecurityProtocol securityProtocol; // required
+  private int sshPort; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_DATA_ID((short)1, "dataMovementDataID"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    SSH_PORT((short)3, "sshPort");
+
+    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: // DATA_MOVEMENT_DATA_ID
+          return DATA_MOVEMENT_DATA_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // SSH_PORT
+          return SSH_PORT;
+        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 __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT};
+  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.DATA_MOVEMENT_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SCPDataMovement.class, metaDataMap);
+  }
+
+  public SCPDataMovement() {
+    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public SCPDataMovement(
+    String dataMovementDataID,
+    SecurityProtocol securityProtocol)
+  {
+    this();
+    this.dataMovementDataID = dataMovementDataID;
+    this.securityProtocol = securityProtocol;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SCPDataMovement(SCPDataMovement other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetDataMovementDataID()) {
+      this.dataMovementDataID = other.dataMovementDataID;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    this.sshPort = other.sshPort;
+  }
+
+  public SCPDataMovement deepCopy() {
+    return new SCPDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.sshPort = 22;
+
+  }
+
+  public String getDataMovementDataID() {
+    return this.dataMovementDataID;
+  }
+
+  public void setDataMovementDataID(String dataMovementDataID) {
+    this.dataMovementDataID = dataMovementDataID;
+  }
+
+  public void unsetDataMovementDataID() {
+    this.dataMovementDataID = null;
+  }
+
+  /** Returns true if field dataMovementDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementDataID() {
+    return this.dataMovementDataID != null;
+  }
+
+  public void setDataMovementDataIDIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementDataID = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_DATA_ID:
+      if (value == null) {
+        unsetDataMovementDataID();
+      } else {
+        setDataMovementDataID((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_DATA_ID:
+      return getDataMovementDataID();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    }
+    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 DATA_MOVEMENT_DATA_ID:
+      return isSetDataMovementDataID();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case SSH_PORT:
+      return isSetSshPort();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SCPDataMovement)
+      return this.equals((SCPDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(SCPDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementDataID = true && this.isSetDataMovementDataID();
+    boolean that_present_dataMovementDataID = true && that.isSetDataMovementDataID();
+    if (this_present_dataMovementDataID || that_present_dataMovementDataID) {
+      if (!(this_present_dataMovementDataID && that_present_dataMovementDataID))
+        return false;
+      if (!this.dataMovementDataID.equals(that.dataMovementDataID))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(SCPDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementDataID()).compareTo(other.isSetDataMovementDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementDataID, other.dataMovementDataID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      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("SCPDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementDataID:");
+    if (this.dataMovementDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetDataMovementDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementDataID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SCPDataMovementStandardSchemeFactory implements SchemeFactory {
+    public SCPDataMovementStandardScheme getScheme() {
+      return new SCPDataMovementStandardScheme();
+    }
+  }
+
+  private static class SCPDataMovementStandardScheme extends StandardScheme<SCPDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SCPDataMovement 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: // DATA_MOVEMENT_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementDataID = iprot.readString();
+              struct.setDataMovementDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementDataID != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SCPDataMovementTupleSchemeFactory implements SchemeFactory {
+    public SCPDataMovementTupleScheme getScheme() {
+      return new SCPDataMovementTupleScheme();
+    }
+  }
+
+  private static class SCPDataMovementTupleScheme extends TupleScheme<SCPDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementDataID);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementDataID = iprot.readString();
+      struct.setDataMovementDataIDIsSet(true);
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SSHJobSubmission.java
new file mode 100644
index 0000000..127dc27
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SSHJobSubmission.java
@@ -0,0 +1,610 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SSHJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SSHJobSubmissionTupleSchemeFactory());
+  }
+
+  private String jobSubmissionDataID; // required
+  private ResourceJobManager resourceJobManager; // required
+  private int sshPort; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
+    SSH_PORT((short)3, "sshPort");
+
+    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_SUBMISSION_DATA_ID
+          return JOB_SUBMISSION_DATA_ID;
+        case 2: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 3: // SSH_PORT
+          return SSH_PORT;
+        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 __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT};
+  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
+  }
+
+  public SSHJobSubmission() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public SSHJobSubmission(
+    String jobSubmissionDataID,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionDataID = jobSubmissionDataID;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SSHJobSubmission(SSHJobSubmission other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionDataID()) {
+      this.jobSubmissionDataID = other.jobSubmissionDataID;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    this.sshPort = other.sshPort;
+  }
+
+  public SSHJobSubmission deepCopy() {
+    return new SSHJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.resourceJobManager = null;
+    this.sshPort = 22;
+
+  }
+
+  public String getJobSubmissionDataID() {
+    return this.jobSubmissionDataID;
+  }
+
+  public void setJobSubmissionDataID(String jobSubmissionDataID) {
+    this.jobSubmissionDataID = jobSubmissionDataID;
+  }
+
+  public void unsetJobSubmissionDataID() {
+    this.jobSubmissionDataID = null;
+  }
+
+  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionDataID() {
+    return this.jobSubmissionDataID != null;
+  }
+
+  public void setJobSubmissionDataIDIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionDataID = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      if (value == null) {
+        unsetJobSubmissionDataID();
+      } else {
+        setJobSubmissionDataID((String)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      return getJobSubmissionDataID();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    }
+    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 JOB_SUBMISSION_DATA_ID:
+      return isSetJobSubmissionDataID();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case SSH_PORT:
+      return isSetSshPort();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SSHJobSubmission)
+      return this.equals((SSHJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(SSHJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
+    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
+    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
+      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
+        return false;
+      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
+        return false;
+    }
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(SSHJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      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("SSHJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionDataID:");
+    if (this.jobSubmissionDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobSubmissionDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetResourceJobManager()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionStandardScheme getScheme() {
+      return new SSHJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionStandardScheme extends StandardScheme<SSHJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SSHJobSubmission 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: // JOB_SUBMISSION_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionDataID = iprot.readString();
+              struct.setJobSubmissionDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionDataID != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionTupleScheme getScheme() {
+      return new SSHJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionTupleScheme extends TupleScheme<SSHJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionDataID);
+      oprot.writeI32(struct.resourceJobManager.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionDataID = iprot.readString();
+      struct.setJobSubmissionDataIDIsSet(true);
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SecurityProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SecurityProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SecurityProtocol.java
new file mode 100644
index 0000000..0f6673a
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/SecurityProtocol.java
@@ -0,0 +1,82 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just
+ *  describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential
+ *  store.
+ * 
+ * USERNAME_PASSWORD:
+ *  A User Name.
+ * 
+ * SSH_KEYS:
+ *  SSH Keys
+ * 
+ */
+@SuppressWarnings("all") public enum SecurityProtocol implements org.apache.thrift.TEnum {
+  USERNAME_PASSWORD(0),
+  SSH_KEYS(1),
+  GSI(2),
+  KERBEROS(3),
+  OAUTH(4);
+
+  private final int value;
+
+  private SecurityProtocol(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 SecurityProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return USERNAME_PASSWORD;
+      case 1:
+        return SSH_KEYS;
+      case 2:
+        return GSI;
+      case 3:
+        return KERBEROS;
+      case 4:
+        return OAUTH;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/computeHostModelConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/computeHostModelConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/computeHostModelConstants.java
new file mode 100644
index 0000000..fa923f3
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/computeHostModelConstants.java
@@ -0,0 +1,55 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class computeHostModelConstants {
+
+  public static final String DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/thrift-interface-descriptions/applicationCatalogAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/applicationCatalogAPI.thrift b/airavata-api/thrift-interface-descriptions/applicationCatalogAPI.thrift
index 383aafd..c86ca60 100644
--- a/airavata-api/thrift-interface-descriptions/applicationCatalogAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationCatalogAPI.thrift
@@ -27,6 +27,7 @@
 include "airavataErrors.thrift"
 include "airavataDataModel.thrift"
 include "computeHostModel.thrift"
+include "applicationInterfaceModel.thrift"
 include "applicationDeploymentModel.thrift"
 
 namespace java org.apache.airavata.api.appcatalog
@@ -141,7 +142,7 @@ service ApplicationCatalogAPI {
   /**
    * Manage Application Interfaces
   */
-  string addApplicationInterface(1: required computeHostModel.ApplicationInterface applicationInterface)
+  string addApplicationInterface(1: required applicationInterfaceModel.ApplicationInterfaceDescription applicationInterface)
   	throws (1: airavataErrors.InvalidRequestException ire,
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)
@@ -151,7 +152,7 @@ service ApplicationCatalogAPI {
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)  
 
-  computeHostModel.ApplicationInterface getApplicationInterface(1: required string applicationInterfaceId)
+  applicationInterfaceModel.ApplicationInterfaceDescription getApplicationInterface(1: required string applicationInterfaceId)
   	throws (1: airavataErrors.InvalidRequestException ire,
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)  
@@ -186,7 +187,7 @@ service ApplicationCatalogAPI {
    * Manage application modules
   */
 
-  string addApplicationDeployment(1: required string applicationInterfaceId, 2: required computeHostModel.ApplicationDeployment applicationDeployment)
+  string addApplicationDeployment(1: required string applicationInterfaceId, 2: required applicationDeploymentModel.ApplicationDeploymentDescription applicationDeployment)
   	throws (1: airavataErrors.InvalidRequestException ire,
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)   
@@ -196,7 +197,7 @@ service ApplicationCatalogAPI {
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)  
 
-  computeHostModel.ApplicationDeployment getApplicationDeployment(1: required string applicationInterfaceId, 2: required string applicationDeploymentId)
+  applicationDeploymentModel.ApplicationDeploymentDescription getApplicationDeployment(1: required string applicationInterfaceId, 2: required string applicationDeploymentId)
   	throws (1: airavataErrors.InvalidRequestException ire,
             2: airavataErrors.AiravataClientException ace,
             3: airavataErrors.AiravataSystemException ase)  

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
index 1a89380..0c40e32 100644
--- a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
@@ -1,4 +1,4 @@
-ut/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
@@ -123,7 +123,7 @@ struct ApplicationInterfaceDescription {
     1: required bool isEmpty = 0,
     2: required string applicationInterfaceId = DEFAULT_ID,
     3: required string applicationName,
-    4: optional list<appModuleId> applicationModules,
+    4: optional list<string> applicationModules,
     5: optional list<InputDataObjectType> applicationInputs,
-    6: optional list<outputDataObjectType> applicationOutputs,
+    6: optional list<OutputDataObjectType> applicationOutputs
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
new file mode 100644
index 0000000..56cfbe7
--- /dev/null
+++ b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
@@ -0,0 +1,5 @@
+package org.airavata.appcatalog.cpi;
+
+public interface AppCatalog {
+
+}


[09/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.h
index 6cfc0dc..b3ce2e9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.h
@@ -31,12 +31,16 @@ class ApplicationCatalogAPIIf {
   virtual void getGridFTPDataMovementProtocol( ::GridFTPDataMovement& _return, const std::string& gridFTPDataMovementResourceId) = 0;
   virtual bool isComputeResourceDescriptionRegistered(const std::string& hostName) = 0;
   virtual void getComputeResourceDescriptionFromHostName( ::ComputeResourceDescription& _return, const std::string& hostName) = 0;
-  virtual void addApplicationInterface(std::string& _return, const  ::ApplicationInterface& applicationInterface) = 0;
+  virtual void addApplicationInterface(std::string& _return, const  ::ApplicationInterfaceDescription& applicationInterface) = 0;
   virtual void listApplicationInterfaceIds(std::vector<std::string> & _return) = 0;
-  virtual void getApplicationInterface( ::ApplicationInterface& _return, const std::string& applicationInterfaceId) = 0;
-  virtual void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeployment& applicationDeployment) = 0;
+  virtual void getApplicationInterface( ::ApplicationInterfaceDescription& _return, const std::string& applicationInterfaceId) = 0;
+  virtual void registerAppicationModule(std::string& _return, const  ::ApplicationModule& applicationModule, const bool publish) = 0;
+  virtual void getAppicationModule( ::ApplicationModule& _return, const std::string& appModuleId) = 0;
+  virtual bool updateAppicationModule(const std::string& appModuleId, const  ::ApplicationModule& applicationModule) = 0;
+  virtual bool deleteAppicationModule(const std::string& appModuleId) = 0;
+  virtual void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeploymentDescription& applicationDeployment) = 0;
   virtual void listApplicationDeploymentIds(std::vector<std::string> & _return, const std::string& applicationInterfaceId) = 0;
-  virtual void getApplicationDeployment( ::ApplicationDeployment& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) = 0;
+  virtual void getApplicationDeployment( ::ApplicationDeploymentDescription& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) = 0;
 };
 
 class ApplicationCatalogAPIIfFactory {
@@ -115,22 +119,36 @@ class ApplicationCatalogAPINull : virtual public ApplicationCatalogAPIIf {
   void getComputeResourceDescriptionFromHostName( ::ComputeResourceDescription& /* _return */, const std::string& /* hostName */) {
     return;
   }
-  void addApplicationInterface(std::string& /* _return */, const  ::ApplicationInterface& /* applicationInterface */) {
+  void addApplicationInterface(std::string& /* _return */, const  ::ApplicationInterfaceDescription& /* applicationInterface */) {
     return;
   }
   void listApplicationInterfaceIds(std::vector<std::string> & /* _return */) {
     return;
   }
-  void getApplicationInterface( ::ApplicationInterface& /* _return */, const std::string& /* applicationInterfaceId */) {
+  void getApplicationInterface( ::ApplicationInterfaceDescription& /* _return */, const std::string& /* applicationInterfaceId */) {
     return;
   }
-  void addApplicationDeployment(std::string& /* _return */, const std::string& /* applicationInterfaceId */, const  ::ApplicationDeployment& /* applicationDeployment */) {
+  void registerAppicationModule(std::string& /* _return */, const  ::ApplicationModule& /* applicationModule */, const bool /* publish */) {
+    return;
+  }
+  void getAppicationModule( ::ApplicationModule& /* _return */, const std::string& /* appModuleId */) {
+    return;
+  }
+  bool updateAppicationModule(const std::string& /* appModuleId */, const  ::ApplicationModule& /* applicationModule */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteAppicationModule(const std::string& /* appModuleId */) {
+    bool _return = false;
+    return _return;
+  }
+  void addApplicationDeployment(std::string& /* _return */, const std::string& /* applicationInterfaceId */, const  ::ApplicationDeploymentDescription& /* applicationDeployment */) {
     return;
   }
   void listApplicationDeploymentIds(std::vector<std::string> & /* _return */, const std::string& /* applicationInterfaceId */) {
     return;
   }
-  void getApplicationDeployment( ::ApplicationDeployment& /* _return */, const std::string& /* applicationInterfaceId */, const std::string& /* applicationDeploymentId */) {
+  void getApplicationDeployment( ::ApplicationDeploymentDescription& /* _return */, const std::string& /* applicationInterfaceId */, const std::string& /* applicationDeploymentId */) {
     return;
   }
 };
@@ -2250,9 +2268,9 @@ class ApplicationCatalogAPI_addApplicationInterface_args {
 
   virtual ~ApplicationCatalogAPI_addApplicationInterface_args() throw() {}
 
-   ::ApplicationInterface applicationInterface;
+   ::ApplicationInterfaceDescription applicationInterface;
 
-  void __set_applicationInterface(const  ::ApplicationInterface& val) {
+  void __set_applicationInterface(const  ::ApplicationInterfaceDescription& val) {
     applicationInterface = val;
   }
 
@@ -2280,7 +2298,7 @@ class ApplicationCatalogAPI_addApplicationInterface_pargs {
 
   virtual ~ApplicationCatalogAPI_addApplicationInterface_pargs() throw() {}
 
-  const  ::ApplicationInterface* applicationInterface;
+  const  ::ApplicationInterfaceDescription* applicationInterface;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -2558,14 +2576,14 @@ class ApplicationCatalogAPI_getApplicationInterface_result {
 
   virtual ~ApplicationCatalogAPI_getApplicationInterface_result() throw() {}
 
-   ::ApplicationInterface success;
+   ::ApplicationInterfaceDescription success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
 
   _ApplicationCatalogAPI_getApplicationInterface_result__isset __isset;
 
-  void __set_success(const  ::ApplicationInterface& val) {
+  void __set_success(const  ::ApplicationInterfaceDescription& val) {
     success = val;
   }
 
@@ -2618,7 +2636,7 @@ class ApplicationCatalogAPI_getApplicationInterface_presult {
 
   virtual ~ApplicationCatalogAPI_getApplicationInterface_presult() throw() {}
 
-   ::ApplicationInterface* success;
+   ::ApplicationInterfaceDescription* success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
@@ -2629,6 +2647,556 @@ class ApplicationCatalogAPI_getApplicationInterface_presult {
 
 };
 
+typedef struct _ApplicationCatalogAPI_registerAppicationModule_args__isset {
+  _ApplicationCatalogAPI_registerAppicationModule_args__isset() : publish(false) {}
+  bool publish;
+} _ApplicationCatalogAPI_registerAppicationModule_args__isset;
+
+class ApplicationCatalogAPI_registerAppicationModule_args {
+ public:
+
+  ApplicationCatalogAPI_registerAppicationModule_args() : publish(0) {
+  }
+
+  virtual ~ApplicationCatalogAPI_registerAppicationModule_args() throw() {}
+
+   ::ApplicationModule applicationModule;
+  bool publish;
+
+  _ApplicationCatalogAPI_registerAppicationModule_args__isset __isset;
+
+  void __set_applicationModule(const  ::ApplicationModule& val) {
+    applicationModule = val;
+  }
+
+  void __set_publish(const bool val) {
+    publish = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_registerAppicationModule_args & rhs) const
+  {
+    if (!(applicationModule == rhs.applicationModule))
+      return false;
+    if (!(publish == rhs.publish))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_registerAppicationModule_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_registerAppicationModule_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ApplicationCatalogAPI_registerAppicationModule_pargs {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_registerAppicationModule_pargs() throw() {}
+
+  const  ::ApplicationModule* applicationModule;
+  const bool* publish;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_registerAppicationModule_result__isset {
+  _ApplicationCatalogAPI_registerAppicationModule_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_registerAppicationModule_result__isset;
+
+class ApplicationCatalogAPI_registerAppicationModule_result {
+ public:
+
+  ApplicationCatalogAPI_registerAppicationModule_result() : success() {
+  }
+
+  virtual ~ApplicationCatalogAPI_registerAppicationModule_result() throw() {}
+
+  std::string success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_registerAppicationModule_result__isset __isset;
+
+  void __set_success(const std::string& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_registerAppicationModule_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_registerAppicationModule_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_registerAppicationModule_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_registerAppicationModule_presult__isset {
+  _ApplicationCatalogAPI_registerAppicationModule_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_registerAppicationModule_presult__isset;
+
+class ApplicationCatalogAPI_registerAppicationModule_presult {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_registerAppicationModule_presult() throw() {}
+
+  std::string* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_registerAppicationModule_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class ApplicationCatalogAPI_getAppicationModule_args {
+ public:
+
+  ApplicationCatalogAPI_getAppicationModule_args() : appModuleId() {
+  }
+
+  virtual ~ApplicationCatalogAPI_getAppicationModule_args() throw() {}
+
+  std::string appModuleId;
+
+  void __set_appModuleId(const std::string& val) {
+    appModuleId = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_getAppicationModule_args & rhs) const
+  {
+    if (!(appModuleId == rhs.appModuleId))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_getAppicationModule_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_getAppicationModule_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ApplicationCatalogAPI_getAppicationModule_pargs {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_getAppicationModule_pargs() throw() {}
+
+  const std::string* appModuleId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_getAppicationModule_result__isset {
+  _ApplicationCatalogAPI_getAppicationModule_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_getAppicationModule_result__isset;
+
+class ApplicationCatalogAPI_getAppicationModule_result {
+ public:
+
+  ApplicationCatalogAPI_getAppicationModule_result() {
+  }
+
+  virtual ~ApplicationCatalogAPI_getAppicationModule_result() throw() {}
+
+   ::ApplicationModule success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_getAppicationModule_result__isset __isset;
+
+  void __set_success(const  ::ApplicationModule& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_getAppicationModule_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_getAppicationModule_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_getAppicationModule_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_getAppicationModule_presult__isset {
+  _ApplicationCatalogAPI_getAppicationModule_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_getAppicationModule_presult__isset;
+
+class ApplicationCatalogAPI_getAppicationModule_presult {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_getAppicationModule_presult() throw() {}
+
+   ::ApplicationModule* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_getAppicationModule_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class ApplicationCatalogAPI_updateAppicationModule_args {
+ public:
+
+  ApplicationCatalogAPI_updateAppicationModule_args() : appModuleId() {
+  }
+
+  virtual ~ApplicationCatalogAPI_updateAppicationModule_args() throw() {}
+
+  std::string appModuleId;
+   ::ApplicationModule applicationModule;
+
+  void __set_appModuleId(const std::string& val) {
+    appModuleId = val;
+  }
+
+  void __set_applicationModule(const  ::ApplicationModule& val) {
+    applicationModule = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_updateAppicationModule_args & rhs) const
+  {
+    if (!(appModuleId == rhs.appModuleId))
+      return false;
+    if (!(applicationModule == rhs.applicationModule))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_updateAppicationModule_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_updateAppicationModule_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ApplicationCatalogAPI_updateAppicationModule_pargs {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_updateAppicationModule_pargs() throw() {}
+
+  const std::string* appModuleId;
+  const  ::ApplicationModule* applicationModule;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_updateAppicationModule_result__isset {
+  _ApplicationCatalogAPI_updateAppicationModule_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_updateAppicationModule_result__isset;
+
+class ApplicationCatalogAPI_updateAppicationModule_result {
+ public:
+
+  ApplicationCatalogAPI_updateAppicationModule_result() : success(0) {
+  }
+
+  virtual ~ApplicationCatalogAPI_updateAppicationModule_result() throw() {}
+
+  bool success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_updateAppicationModule_result__isset __isset;
+
+  void __set_success(const bool val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_updateAppicationModule_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_updateAppicationModule_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_updateAppicationModule_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_updateAppicationModule_presult__isset {
+  _ApplicationCatalogAPI_updateAppicationModule_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_updateAppicationModule_presult__isset;
+
+class ApplicationCatalogAPI_updateAppicationModule_presult {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_updateAppicationModule_presult() throw() {}
+
+  bool* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_updateAppicationModule_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class ApplicationCatalogAPI_deleteAppicationModule_args {
+ public:
+
+  ApplicationCatalogAPI_deleteAppicationModule_args() : appModuleId() {
+  }
+
+  virtual ~ApplicationCatalogAPI_deleteAppicationModule_args() throw() {}
+
+  std::string appModuleId;
+
+  void __set_appModuleId(const std::string& val) {
+    appModuleId = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_deleteAppicationModule_args & rhs) const
+  {
+    if (!(appModuleId == rhs.appModuleId))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_deleteAppicationModule_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_deleteAppicationModule_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ApplicationCatalogAPI_deleteAppicationModule_pargs {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_deleteAppicationModule_pargs() throw() {}
+
+  const std::string* appModuleId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_deleteAppicationModule_result__isset {
+  _ApplicationCatalogAPI_deleteAppicationModule_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_deleteAppicationModule_result__isset;
+
+class ApplicationCatalogAPI_deleteAppicationModule_result {
+ public:
+
+  ApplicationCatalogAPI_deleteAppicationModule_result() : success(0) {
+  }
+
+  virtual ~ApplicationCatalogAPI_deleteAppicationModule_result() throw() {}
+
+  bool success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_deleteAppicationModule_result__isset __isset;
+
+  void __set_success(const bool val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const ApplicationCatalogAPI_deleteAppicationModule_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationCatalogAPI_deleteAppicationModule_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationCatalogAPI_deleteAppicationModule_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ApplicationCatalogAPI_deleteAppicationModule_presult__isset {
+  _ApplicationCatalogAPI_deleteAppicationModule_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _ApplicationCatalogAPI_deleteAppicationModule_presult__isset;
+
+class ApplicationCatalogAPI_deleteAppicationModule_presult {
+ public:
+
+
+  virtual ~ApplicationCatalogAPI_deleteAppicationModule_presult() throw() {}
+
+  bool* success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _ApplicationCatalogAPI_deleteAppicationModule_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
 
 class ApplicationCatalogAPI_addApplicationDeployment_args {
  public:
@@ -2639,13 +3207,13 @@ class ApplicationCatalogAPI_addApplicationDeployment_args {
   virtual ~ApplicationCatalogAPI_addApplicationDeployment_args() throw() {}
 
   std::string applicationInterfaceId;
-   ::ApplicationDeployment applicationDeployment;
+   ::ApplicationDeploymentDescription applicationDeployment;
 
   void __set_applicationInterfaceId(const std::string& val) {
     applicationInterfaceId = val;
   }
 
-  void __set_applicationDeployment(const  ::ApplicationDeployment& val) {
+  void __set_applicationDeployment(const  ::ApplicationDeploymentDescription& val) {
     applicationDeployment = val;
   }
 
@@ -2676,7 +3244,7 @@ class ApplicationCatalogAPI_addApplicationDeployment_pargs {
   virtual ~ApplicationCatalogAPI_addApplicationDeployment_pargs() throw() {}
 
   const std::string* applicationInterfaceId;
-  const  ::ApplicationDeployment* applicationDeployment;
+  const  ::ApplicationDeploymentDescription* applicationDeployment;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -2970,14 +3538,14 @@ class ApplicationCatalogAPI_getApplicationDeployment_result {
 
   virtual ~ApplicationCatalogAPI_getApplicationDeployment_result() throw() {}
 
-   ::ApplicationDeployment success;
+   ::ApplicationDeploymentDescription success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
 
   _ApplicationCatalogAPI_getApplicationDeployment_result__isset __isset;
 
-  void __set_success(const  ::ApplicationDeployment& val) {
+  void __set_success(const  ::ApplicationDeploymentDescription& val) {
     success = val;
   }
 
@@ -3030,7 +3598,7 @@ class ApplicationCatalogAPI_getApplicationDeployment_presult {
 
   virtual ~ApplicationCatalogAPI_getApplicationDeployment_presult() throw() {}
 
-   ::ApplicationDeployment* success;
+   ::ApplicationDeploymentDescription* success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
@@ -3109,24 +3677,36 @@ class ApplicationCatalogAPIClient : virtual public ApplicationCatalogAPIIf {
   void getComputeResourceDescriptionFromHostName( ::ComputeResourceDescription& _return, const std::string& hostName);
   void send_getComputeResourceDescriptionFromHostName(const std::string& hostName);
   void recv_getComputeResourceDescriptionFromHostName( ::ComputeResourceDescription& _return);
-  void addApplicationInterface(std::string& _return, const  ::ApplicationInterface& applicationInterface);
-  void send_addApplicationInterface(const  ::ApplicationInterface& applicationInterface);
+  void addApplicationInterface(std::string& _return, const  ::ApplicationInterfaceDescription& applicationInterface);
+  void send_addApplicationInterface(const  ::ApplicationInterfaceDescription& applicationInterface);
   void recv_addApplicationInterface(std::string& _return);
   void listApplicationInterfaceIds(std::vector<std::string> & _return);
   void send_listApplicationInterfaceIds();
   void recv_listApplicationInterfaceIds(std::vector<std::string> & _return);
-  void getApplicationInterface( ::ApplicationInterface& _return, const std::string& applicationInterfaceId);
+  void getApplicationInterface( ::ApplicationInterfaceDescription& _return, const std::string& applicationInterfaceId);
   void send_getApplicationInterface(const std::string& applicationInterfaceId);
-  void recv_getApplicationInterface( ::ApplicationInterface& _return);
-  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeployment& applicationDeployment);
-  void send_addApplicationDeployment(const std::string& applicationInterfaceId, const  ::ApplicationDeployment& applicationDeployment);
+  void recv_getApplicationInterface( ::ApplicationInterfaceDescription& _return);
+  void registerAppicationModule(std::string& _return, const  ::ApplicationModule& applicationModule, const bool publish);
+  void send_registerAppicationModule(const  ::ApplicationModule& applicationModule, const bool publish);
+  void recv_registerAppicationModule(std::string& _return);
+  void getAppicationModule( ::ApplicationModule& _return, const std::string& appModuleId);
+  void send_getAppicationModule(const std::string& appModuleId);
+  void recv_getAppicationModule( ::ApplicationModule& _return);
+  bool updateAppicationModule(const std::string& appModuleId, const  ::ApplicationModule& applicationModule);
+  void send_updateAppicationModule(const std::string& appModuleId, const  ::ApplicationModule& applicationModule);
+  bool recv_updateAppicationModule();
+  bool deleteAppicationModule(const std::string& appModuleId);
+  void send_deleteAppicationModule(const std::string& appModuleId);
+  bool recv_deleteAppicationModule();
+  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeploymentDescription& applicationDeployment);
+  void send_addApplicationDeployment(const std::string& applicationInterfaceId, const  ::ApplicationDeploymentDescription& applicationDeployment);
   void recv_addApplicationDeployment(std::string& _return);
   void listApplicationDeploymentIds(std::vector<std::string> & _return, const std::string& applicationInterfaceId);
   void send_listApplicationDeploymentIds(const std::string& applicationInterfaceId);
   void recv_listApplicationDeploymentIds(std::vector<std::string> & _return);
-  void getApplicationDeployment( ::ApplicationDeployment& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId);
+  void getApplicationDeployment( ::ApplicationDeploymentDescription& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId);
   void send_getApplicationDeployment(const std::string& applicationInterfaceId, const std::string& applicationDeploymentId);
-  void recv_getApplicationDeployment( ::ApplicationDeployment& _return);
+  void recv_getApplicationDeployment( ::ApplicationDeploymentDescription& _return);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -3161,6 +3741,10 @@ class ApplicationCatalogAPIProcessor : public ::apache::thrift::TDispatchProcess
   void process_addApplicationInterface(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_listApplicationInterfaceIds(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationInterface(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_registerAppicationModule(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAppicationModule(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateAppicationModule(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteAppicationModule(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_addApplicationDeployment(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_listApplicationDeploymentIds(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationDeployment(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -3186,6 +3770,10 @@ class ApplicationCatalogAPIProcessor : public ::apache::thrift::TDispatchProcess
     processMap_["addApplicationInterface"] = &ApplicationCatalogAPIProcessor::process_addApplicationInterface;
     processMap_["listApplicationInterfaceIds"] = &ApplicationCatalogAPIProcessor::process_listApplicationInterfaceIds;
     processMap_["getApplicationInterface"] = &ApplicationCatalogAPIProcessor::process_getApplicationInterface;
+    processMap_["registerAppicationModule"] = &ApplicationCatalogAPIProcessor::process_registerAppicationModule;
+    processMap_["getAppicationModule"] = &ApplicationCatalogAPIProcessor::process_getAppicationModule;
+    processMap_["updateAppicationModule"] = &ApplicationCatalogAPIProcessor::process_updateAppicationModule;
+    processMap_["deleteAppicationModule"] = &ApplicationCatalogAPIProcessor::process_deleteAppicationModule;
     processMap_["addApplicationDeployment"] = &ApplicationCatalogAPIProcessor::process_addApplicationDeployment;
     processMap_["listApplicationDeploymentIds"] = &ApplicationCatalogAPIProcessor::process_listApplicationDeploymentIds;
     processMap_["getApplicationDeployment"] = &ApplicationCatalogAPIProcessor::process_getApplicationDeployment;
@@ -3376,7 +3964,7 @@ class ApplicationCatalogAPIMultiface : virtual public ApplicationCatalogAPIIf {
     return;
   }
 
-  void addApplicationInterface(std::string& _return, const  ::ApplicationInterface& applicationInterface) {
+  void addApplicationInterface(std::string& _return, const  ::ApplicationInterfaceDescription& applicationInterface) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -3396,7 +3984,7 @@ class ApplicationCatalogAPIMultiface : virtual public ApplicationCatalogAPIIf {
     return;
   }
 
-  void getApplicationInterface( ::ApplicationInterface& _return, const std::string& applicationInterfaceId) {
+  void getApplicationInterface( ::ApplicationInterfaceDescription& _return, const std::string& applicationInterfaceId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -3406,7 +3994,45 @@ class ApplicationCatalogAPIMultiface : virtual public ApplicationCatalogAPIIf {
     return;
   }
 
-  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeployment& applicationDeployment) {
+  void registerAppicationModule(std::string& _return, const  ::ApplicationModule& applicationModule, const bool publish) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->registerAppicationModule(_return, applicationModule, publish);
+    }
+    ifaces_[i]->registerAppicationModule(_return, applicationModule, publish);
+    return;
+  }
+
+  void getAppicationModule( ::ApplicationModule& _return, const std::string& appModuleId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAppicationModule(_return, appModuleId);
+    }
+    ifaces_[i]->getAppicationModule(_return, appModuleId);
+    return;
+  }
+
+  bool updateAppicationModule(const std::string& appModuleId, const  ::ApplicationModule& applicationModule) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateAppicationModule(appModuleId, applicationModule);
+    }
+    return ifaces_[i]->updateAppicationModule(appModuleId, applicationModule);
+  }
+
+  bool deleteAppicationModule(const std::string& appModuleId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteAppicationModule(appModuleId);
+    }
+    return ifaces_[i]->deleteAppicationModule(appModuleId);
+  }
+
+  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeploymentDescription& applicationDeployment) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
@@ -3426,7 +4052,7 @@ class ApplicationCatalogAPIMultiface : virtual public ApplicationCatalogAPIIf {
     return;
   }
 
-  void getApplicationDeployment( ::ApplicationDeployment& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) {
+  void getApplicationDeployment( ::ApplicationDeploymentDescription& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI_server.skeleton.cpp
index ed61bd8..ae4afe6 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI_server.skeleton.cpp
@@ -102,7 +102,7 @@ class ApplicationCatalogAPIHandler : virtual public ApplicationCatalogAPIIf {
     printf("getComputeResourceDescriptionFromHostName\n");
   }
 
-  void addApplicationInterface(std::string& _return, const  ::ApplicationInterface& applicationInterface) {
+  void addApplicationInterface(std::string& _return, const  ::ApplicationInterfaceDescription& applicationInterface) {
     // Your implementation goes here
     printf("addApplicationInterface\n");
   }
@@ -112,12 +112,32 @@ class ApplicationCatalogAPIHandler : virtual public ApplicationCatalogAPIIf {
     printf("listApplicationInterfaceIds\n");
   }
 
-  void getApplicationInterface( ::ApplicationInterface& _return, const std::string& applicationInterfaceId) {
+  void getApplicationInterface( ::ApplicationInterfaceDescription& _return, const std::string& applicationInterfaceId) {
     // Your implementation goes here
     printf("getApplicationInterface\n");
   }
 
-  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeployment& applicationDeployment) {
+  void registerAppicationModule(std::string& _return, const  ::ApplicationModule& applicationModule, const bool publish) {
+    // Your implementation goes here
+    printf("registerAppicationModule\n");
+  }
+
+  void getAppicationModule( ::ApplicationModule& _return, const std::string& appModuleId) {
+    // Your implementation goes here
+    printf("getAppicationModule\n");
+  }
+
+  bool updateAppicationModule(const std::string& appModuleId, const  ::ApplicationModule& applicationModule) {
+    // Your implementation goes here
+    printf("updateAppicationModule\n");
+  }
+
+  bool deleteAppicationModule(const std::string& appModuleId) {
+    // Your implementation goes here
+    printf("deleteAppicationModule\n");
+  }
+
+  void addApplicationDeployment(std::string& _return, const std::string& applicationInterfaceId, const  ::ApplicationDeploymentDescription& applicationDeployment) {
     // Your implementation goes here
     printf("addApplicationDeployment\n");
   }
@@ -127,7 +147,7 @@ class ApplicationCatalogAPIHandler : virtual public ApplicationCatalogAPIIf {
     printf("listApplicationDeploymentIds\n");
   }
 
-  void getApplicationDeployment( ::ApplicationDeployment& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) {
+  void getApplicationDeployment( ::ApplicationDeploymentDescription& _return, const std::string& applicationInterfaceId, const std::string& applicationDeploymentId) {
     // Your implementation goes here
     printf("getApplicationDeployment\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationCatalogAPI_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationCatalogAPI_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationCatalogAPI_types.h
index 2f7ec54..4a9fc73 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationCatalogAPI_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationCatalogAPI_types.h
@@ -15,7 +15,9 @@
 #include <thrift/cxxfunctional.h>
 #include "airavataErrors_types.h"
 #include "airavataDataModel_types.h"
-#include "applicationCatalogDataModel_types.h"
+#include "computeHostModel_types.h"
+#include "applicationInterfaceModel_types.h"
+#include "applicationDeploymentModel_types.h"
 
 
 namespace airavata { namespace api { namespace appcatalog {

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.cpp
new file mode 100644
index 0000000..d247067
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.cpp
@@ -0,0 +1,19 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "applicationDeploymentModel_constants.h"
+
+
+
+const applicationDeploymentModelConstants g_applicationDeploymentModel_constants;
+
+applicationDeploymentModelConstants::applicationDeploymentModelConstants() {
+  DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.h
new file mode 100644
index 0000000..1fa8e0b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_constants.h
@@ -0,0 +1,25 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef applicationDeploymentModel_CONSTANTS_H
+#define applicationDeploymentModel_CONSTANTS_H
+
+#include "applicationDeploymentModel_types.h"
+
+
+
+class applicationDeploymentModelConstants {
+ public:
+  applicationDeploymentModelConstants();
+
+  std::string DEFAULT_ID;
+};
+
+extern const applicationDeploymentModelConstants g_applicationDeploymentModel_constants;
+
+
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.cpp
new file mode 100644
index 0000000..9a3f90a
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.cpp
@@ -0,0 +1,477 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "applicationDeploymentModel_types.h"
+
+#include <algorithm>
+
+
+
+const char* SetEnvPaths::ascii_fingerprint = "07A9615F837F7D0A952B595DD3020972";
+const uint8_t SetEnvPaths::binary_fingerprint[16] = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
+
+uint32_t SetEnvPaths::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_name = false;
+  bool isset_value = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          isset_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->value);
+          isset_value = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_name)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_value)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t SetEnvPaths::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("SetEnvPaths");
+
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->value);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(SetEnvPaths &a, SetEnvPaths &b) {
+  using ::std::swap;
+  swap(a.name, b.name);
+  swap(a.value, b.value);
+}
+
+const char* ApplicationModule::ascii_fingerprint = "EAD3BFBDF5BD64DF63F11230D11B43DE";
+const uint8_t ApplicationModule::binary_fingerprint[16] = {0xEA,0xD3,0xBF,0xBD,0xF5,0xBD,0x64,0xDF,0x63,0xF1,0x12,0x30,0xD1,0x1B,0x43,0xDE};
+
+uint32_t ApplicationModule::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_appModuleId = false;
+  bool isset_appModuleName = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleId);
+          isset_appModuleId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleName);
+          isset_appModuleName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleVersion);
+          this->__isset.appModuleVersion = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleDescription);
+          this->__isset.appModuleDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_appModuleId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_appModuleName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationModule::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationModule");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->appModuleId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("appModuleName", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->appModuleName);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.appModuleVersion) {
+    xfer += oprot->writeFieldBegin("appModuleVersion", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->appModuleVersion);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.appModuleDescription) {
+    xfer += oprot->writeFieldBegin("appModuleDescription", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->appModuleDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ApplicationModule &a, ApplicationModule &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.appModuleId, b.appModuleId);
+  swap(a.appModuleName, b.appModuleName);
+  swap(a.appModuleVersion, b.appModuleVersion);
+  swap(a.appModuleDescription, b.appModuleDescription);
+  swap(a.__isset, b.__isset);
+}
+
+const char* ApplicationDeploymentDescription::ascii_fingerprint = "50C12617CDB84220D07D0920711332CF";
+const uint8_t ApplicationDeploymentDescription::binary_fingerprint[16] = {0x50,0xC1,0x26,0x17,0xCD,0xB8,0x42,0x20,0xD0,0x7D,0x09,0x20,0x71,0x13,0x32,0xCF};
+
+uint32_t ApplicationDeploymentDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_appDeploymentId = false;
+  bool isset_appModuleId = false;
+  bool isset_computeHostId = false;
+  bool isset_executablePath = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appDeploymentId);
+          isset_appDeploymentId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleId);
+          isset_appModuleId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeHostId);
+          isset_computeHostId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->executablePath);
+          isset_executablePath = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appDeploymentDescription);
+          this->__isset.appDeploymentDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->moduleLoadCmd);
+          this->__isset.moduleLoadCmd = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->libPrependPaths.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->libPrependPaths.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += this->libPrependPaths[_i4].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.libPrependPaths = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->libAppendPaths.clear();
+            uint32_t _size5;
+            ::apache::thrift::protocol::TType _etype8;
+            xfer += iprot->readListBegin(_etype8, _size5);
+            this->libAppendPaths.resize(_size5);
+            uint32_t _i9;
+            for (_i9 = 0; _i9 < _size5; ++_i9)
+            {
+              xfer += this->libAppendPaths[_i9].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.libAppendPaths = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->setEnvironment.clear();
+            uint32_t _size10;
+            ::apache::thrift::protocol::TType _etype13;
+            xfer += iprot->readListBegin(_etype13, _size10);
+            this->setEnvironment.resize(_size10);
+            uint32_t _i14;
+            for (_i14 = 0; _i14 < _size10; ++_i14)
+            {
+              xfer += this->setEnvironment[_i14].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.setEnvironment = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_appDeploymentId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_appModuleId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeHostId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_executablePath)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationDeploymentDescription::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationDeploymentDescription");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("appDeploymentId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->appDeploymentId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->appModuleId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeHostId", ::apache::thrift::protocol::T_STRING, 4);
+  xfer += oprot->writeString(this->computeHostId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("executablePath", ::apache::thrift::protocol::T_STRING, 5);
+  xfer += oprot->writeString(this->executablePath);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.appDeploymentDescription) {
+    xfer += oprot->writeFieldBegin("appDeploymentDescription", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->appDeploymentDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.moduleLoadCmd) {
+    xfer += oprot->writeFieldBegin("moduleLoadCmd", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->moduleLoadCmd);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.libPrependPaths) {
+    xfer += oprot->writeFieldBegin("libPrependPaths", ::apache::thrift::protocol::T_LIST, 8);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->libPrependPaths.size()));
+      std::vector<SetEnvPaths> ::const_iterator _iter15;
+      for (_iter15 = this->libPrependPaths.begin(); _iter15 != this->libPrependPaths.end(); ++_iter15)
+      {
+        xfer += (*_iter15).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.libAppendPaths) {
+    xfer += oprot->writeFieldBegin("libAppendPaths", ::apache::thrift::protocol::T_LIST, 9);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->libAppendPaths.size()));
+      std::vector<SetEnvPaths> ::const_iterator _iter16;
+      for (_iter16 = this->libAppendPaths.begin(); _iter16 != this->libAppendPaths.end(); ++_iter16)
+      {
+        xfer += (*_iter16).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.setEnvironment) {
+    xfer += oprot->writeFieldBegin("setEnvironment", ::apache::thrift::protocol::T_LIST, 10);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->setEnvironment.size()));
+      std::vector<SetEnvPaths> ::const_iterator _iter17;
+      for (_iter17 = this->setEnvironment.begin(); _iter17 != this->setEnvironment.end(); ++_iter17)
+      {
+        xfer += (*_iter17).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ApplicationDeploymentDescription &a, ApplicationDeploymentDescription &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.appDeploymentId, b.appDeploymentId);
+  swap(a.appModuleId, b.appModuleId);
+  swap(a.computeHostId, b.computeHostId);
+  swap(a.executablePath, b.executablePath);
+  swap(a.appDeploymentDescription, b.appDeploymentDescription);
+  swap(a.moduleLoadCmd, b.moduleLoadCmd);
+  swap(a.libPrependPaths, b.libPrependPaths);
+  swap(a.libAppendPaths, b.libAppendPaths);
+  swap(a.setEnvironment, b.setEnvironment);
+  swap(a.__isset, b.__isset);
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.h
new file mode 100644
index 0000000..2bc61dd
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationDeploymentModel_types.h
@@ -0,0 +1,269 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef applicationDeploymentModel_TYPES_H
+#define applicationDeploymentModel_TYPES_H
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+
+
+
+class SetEnvPaths {
+ public:
+
+  static const char* ascii_fingerprint; // = "07A9615F837F7D0A952B595DD3020972";
+  static const uint8_t binary_fingerprint[16]; // = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
+
+  SetEnvPaths() : name(), value() {
+  }
+
+  virtual ~SetEnvPaths() throw() {}
+
+  std::string name;
+  std::string value;
+
+  void __set_name(const std::string& val) {
+    name = val;
+  }
+
+  void __set_value(const std::string& val) {
+    value = val;
+  }
+
+  bool operator == (const SetEnvPaths & rhs) const
+  {
+    if (!(name == rhs.name))
+      return false;
+    if (!(value == rhs.value))
+      return false;
+    return true;
+  }
+  bool operator != (const SetEnvPaths &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const SetEnvPaths & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(SetEnvPaths &a, SetEnvPaths &b);
+
+typedef struct _ApplicationModule__isset {
+  _ApplicationModule__isset() : appModuleVersion(false), appModuleDescription(false) {}
+  bool appModuleVersion;
+  bool appModuleDescription;
+} _ApplicationModule__isset;
+
+class ApplicationModule {
+ public:
+
+  static const char* ascii_fingerprint; // = "EAD3BFBDF5BD64DF63F11230D11B43DE";
+  static const uint8_t binary_fingerprint[16]; // = {0xEA,0xD3,0xBF,0xBD,0xF5,0xBD,0x64,0xDF,0x63,0xF1,0x12,0x30,0xD1,0x1B,0x43,0xDE};
+
+  ApplicationModule() : isEmpty(false), appModuleId("DO_NOT_SET_AT_CLIENTS"), appModuleName(), appModuleVersion(), appModuleDescription() {
+  }
+
+  virtual ~ApplicationModule() throw() {}
+
+  bool isEmpty;
+  std::string appModuleId;
+  std::string appModuleName;
+  std::string appModuleVersion;
+  std::string appModuleDescription;
+
+  _ApplicationModule__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_appModuleId(const std::string& val) {
+    appModuleId = val;
+  }
+
+  void __set_appModuleName(const std::string& val) {
+    appModuleName = val;
+  }
+
+  void __set_appModuleVersion(const std::string& val) {
+    appModuleVersion = val;
+    __isset.appModuleVersion = true;
+  }
+
+  void __set_appModuleDescription(const std::string& val) {
+    appModuleDescription = val;
+    __isset.appModuleDescription = true;
+  }
+
+  bool operator == (const ApplicationModule & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(appModuleId == rhs.appModuleId))
+      return false;
+    if (!(appModuleName == rhs.appModuleName))
+      return false;
+    if (__isset.appModuleVersion != rhs.__isset.appModuleVersion)
+      return false;
+    else if (__isset.appModuleVersion && !(appModuleVersion == rhs.appModuleVersion))
+      return false;
+    if (__isset.appModuleDescription != rhs.__isset.appModuleDescription)
+      return false;
+    else if (__isset.appModuleDescription && !(appModuleDescription == rhs.appModuleDescription))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationModule &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationModule & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(ApplicationModule &a, ApplicationModule &b);
+
+typedef struct _ApplicationDeploymentDescription__isset {
+  _ApplicationDeploymentDescription__isset() : appDeploymentDescription(false), moduleLoadCmd(false), libPrependPaths(false), libAppendPaths(false), setEnvironment(false) {}
+  bool appDeploymentDescription;
+  bool moduleLoadCmd;
+  bool libPrependPaths;
+  bool libAppendPaths;
+  bool setEnvironment;
+} _ApplicationDeploymentDescription__isset;
+
+class ApplicationDeploymentDescription {
+ public:
+
+  static const char* ascii_fingerprint; // = "50C12617CDB84220D07D0920711332CF";
+  static const uint8_t binary_fingerprint[16]; // = {0x50,0xC1,0x26,0x17,0xCD,0xB8,0x42,0x20,0xD0,0x7D,0x09,0x20,0x71,0x13,0x32,0xCF};
+
+  ApplicationDeploymentDescription() : isEmpty(false), appDeploymentId("DO_NOT_SET_AT_CLIENTS"), appModuleId(), computeHostId(), executablePath(), appDeploymentDescription(), moduleLoadCmd() {
+  }
+
+  virtual ~ApplicationDeploymentDescription() throw() {}
+
+  bool isEmpty;
+  std::string appDeploymentId;
+  std::string appModuleId;
+  std::string computeHostId;
+  std::string executablePath;
+  std::string appDeploymentDescription;
+  std::string moduleLoadCmd;
+  std::vector<SetEnvPaths>  libPrependPaths;
+  std::vector<SetEnvPaths>  libAppendPaths;
+  std::vector<SetEnvPaths>  setEnvironment;
+
+  _ApplicationDeploymentDescription__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_appDeploymentId(const std::string& val) {
+    appDeploymentId = val;
+  }
+
+  void __set_appModuleId(const std::string& val) {
+    appModuleId = val;
+  }
+
+  void __set_computeHostId(const std::string& val) {
+    computeHostId = val;
+  }
+
+  void __set_executablePath(const std::string& val) {
+    executablePath = val;
+  }
+
+  void __set_appDeploymentDescription(const std::string& val) {
+    appDeploymentDescription = val;
+    __isset.appDeploymentDescription = true;
+  }
+
+  void __set_moduleLoadCmd(const std::string& val) {
+    moduleLoadCmd = val;
+    __isset.moduleLoadCmd = true;
+  }
+
+  void __set_libPrependPaths(const std::vector<SetEnvPaths> & val) {
+    libPrependPaths = val;
+    __isset.libPrependPaths = true;
+  }
+
+  void __set_libAppendPaths(const std::vector<SetEnvPaths> & val) {
+    libAppendPaths = val;
+    __isset.libAppendPaths = true;
+  }
+
+  void __set_setEnvironment(const std::vector<SetEnvPaths> & val) {
+    setEnvironment = val;
+    __isset.setEnvironment = true;
+  }
+
+  bool operator == (const ApplicationDeploymentDescription & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(appDeploymentId == rhs.appDeploymentId))
+      return false;
+    if (!(appModuleId == rhs.appModuleId))
+      return false;
+    if (!(computeHostId == rhs.computeHostId))
+      return false;
+    if (!(executablePath == rhs.executablePath))
+      return false;
+    if (__isset.appDeploymentDescription != rhs.__isset.appDeploymentDescription)
+      return false;
+    else if (__isset.appDeploymentDescription && !(appDeploymentDescription == rhs.appDeploymentDescription))
+      return false;
+    if (__isset.moduleLoadCmd != rhs.__isset.moduleLoadCmd)
+      return false;
+    else if (__isset.moduleLoadCmd && !(moduleLoadCmd == rhs.moduleLoadCmd))
+      return false;
+    if (__isset.libPrependPaths != rhs.__isset.libPrependPaths)
+      return false;
+    else if (__isset.libPrependPaths && !(libPrependPaths == rhs.libPrependPaths))
+      return false;
+    if (__isset.libAppendPaths != rhs.__isset.libAppendPaths)
+      return false;
+    else if (__isset.libAppendPaths && !(libAppendPaths == rhs.libAppendPaths))
+      return false;
+    if (__isset.setEnvironment != rhs.__isset.setEnvironment)
+      return false;
+    else if (__isset.setEnvironment && !(setEnvironment == rhs.setEnvironment))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationDeploymentDescription &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationDeploymentDescription & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(ApplicationDeploymentDescription &a, ApplicationDeploymentDescription &b);
+
+
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.cpp
new file mode 100644
index 0000000..6d8887f
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.cpp
@@ -0,0 +1,19 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "applicationInterfaceModel_constants.h"
+
+
+
+const applicationInterfaceModelConstants g_applicationInterfaceModel_constants;
+
+applicationInterfaceModelConstants::applicationInterfaceModelConstants() {
+  DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.h
new file mode 100644
index 0000000..0bf5c4c
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_constants.h
@@ -0,0 +1,25 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef applicationInterfaceModel_CONSTANTS_H
+#define applicationInterfaceModel_CONSTANTS_H
+
+#include "applicationInterfaceModel_types.h"
+
+
+
+class applicationInterfaceModelConstants {
+ public:
+  applicationInterfaceModelConstants();
+
+  std::string DEFAULT_ID;
+};
+
+extern const applicationInterfaceModelConstants g_applicationInterfaceModel_constants;
+
+
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.cpp
new file mode 100644
index 0000000..c393fab
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.cpp
@@ -0,0 +1,504 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "applicationInterfaceModel_types.h"
+
+#include <algorithm>
+
+
+
+int _kDataTypeValues[] = {
+  DataType::STRING,
+  DataType::INTEGER,
+  DataType::FLOAT,
+  DataType::URI
+};
+const char* _kDataTypeNames[] = {
+  "STRING",
+  "INTEGER",
+  "FLOAT",
+  "URI"
+};
+const std::map<int, const char*> _DataType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kDataTypeValues, _kDataTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+const char* InputDataObjectType::ascii_fingerprint = "0C147F4C4DFD0B9FF70275BF29D07281";
+const uint8_t InputDataObjectType::binary_fingerprint[16] = {0x0C,0x14,0x7F,0x4C,0x4D,0xFD,0x0B,0x9F,0xF7,0x02,0x75,0xBF,0x29,0xD0,0x72,0x81};
+
+uint32_t InputDataObjectType::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_name = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          isset_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->value);
+          this->__isset.value = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->type = (DataType::type)ecast0;
+          this->__isset.type = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationArguement);
+          this->__isset.applicationArguement = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->standardInput);
+          this->__isset.standardInput = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userFriendlyDescription);
+          this->__isset.userFriendlyDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->metaData);
+          this->__isset.metaData = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_name)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t InputDataObjectType::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("InputDataObjectType");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->name);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.value) {
+    xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->value);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.type) {
+    xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 4);
+    xfer += oprot->writeI32((int32_t)this->type);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.applicationArguement) {
+    xfer += oprot->writeFieldBegin("applicationArguement", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->applicationArguement);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.standardInput) {
+    xfer += oprot->writeFieldBegin("standardInput", ::apache::thrift::protocol::T_BOOL, 6);
+    xfer += oprot->writeBool(this->standardInput);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.userFriendlyDescription) {
+    xfer += oprot->writeFieldBegin("userFriendlyDescription", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->userFriendlyDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.metaData) {
+    xfer += oprot->writeFieldBegin("metaData", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->metaData);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(InputDataObjectType &a, InputDataObjectType &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.name, b.name);
+  swap(a.value, b.value);
+  swap(a.type, b.type);
+  swap(a.applicationArguement, b.applicationArguement);
+  swap(a.standardInput, b.standardInput);
+  swap(a.userFriendlyDescription, b.userFriendlyDescription);
+  swap(a.metaData, b.metaData);
+  swap(a.__isset, b.__isset);
+}
+
+const char* OutputDataObjectType::ascii_fingerprint = "FFD96F45C68610A5AC6E843C512B01EC";
+const uint8_t OutputDataObjectType::binary_fingerprint[16] = {0xFF,0xD9,0x6F,0x45,0xC6,0x86,0x10,0xA5,0xAC,0x6E,0x84,0x3C,0x51,0x2B,0x01,0xEC};
+
+uint32_t OutputDataObjectType::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_name = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          isset_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->value);
+          this->__isset.value = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->type = (DataType::type)ecast1;
+          this->__isset.type = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_name)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t OutputDataObjectType::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("OutputDataObjectType");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->name);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.value) {
+    xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->value);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.type) {
+    xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 4);
+    xfer += oprot->writeI32((int32_t)this->type);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(OutputDataObjectType &a, OutputDataObjectType &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.name, b.name);
+  swap(a.value, b.value);
+  swap(a.type, b.type);
+  swap(a.__isset, b.__isset);
+}
+
+const char* ApplicationInterfaceDescription::ascii_fingerprint = "EF5E3A4F34CCD8942A56C19B7B92E473";
+const uint8_t ApplicationInterfaceDescription::binary_fingerprint[16] = {0xEF,0x5E,0x3A,0x4F,0x34,0xCC,0xD8,0x94,0x2A,0x56,0xC1,0x9B,0x7B,0x92,0xE4,0x73};
+
+uint32_t ApplicationInterfaceDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_applicationInterfaceId = false;
+  bool isset_applicationName = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationInterfaceId);
+          isset_applicationInterfaceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationName);
+          isset_applicationName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->applicationModules.clear();
+            uint32_t _size2;
+            ::apache::thrift::protocol::TType _etype5;
+            xfer += iprot->readListBegin(_etype5, _size2);
+            this->applicationModules.resize(_size2);
+            uint32_t _i6;
+            for (_i6 = 0; _i6 < _size2; ++_i6)
+            {
+              xfer += iprot->readString(this->applicationModules[_i6]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.applicationModules = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->applicationInputs.clear();
+            uint32_t _size7;
+            ::apache::thrift::protocol::TType _etype10;
+            xfer += iprot->readListBegin(_etype10, _size7);
+            this->applicationInputs.resize(_size7);
+            uint32_t _i11;
+            for (_i11 = 0; _i11 < _size7; ++_i11)
+            {
+              xfer += this->applicationInputs[_i11].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.applicationInputs = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->applicationOutputs.clear();
+            uint32_t _size12;
+            ::apache::thrift::protocol::TType _etype15;
+            xfer += iprot->readListBegin(_etype15, _size12);
+            this->applicationOutputs.resize(_size12);
+            uint32_t _i16;
+            for (_i16 = 0; _i16 < _size12; ++_i16)
+            {
+              xfer += this->applicationOutputs[_i16].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.applicationOutputs = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_applicationInterfaceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_applicationName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationInterfaceDescription::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationInterfaceDescription");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationName", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->applicationName);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.applicationModules) {
+    xfer += oprot->writeFieldBegin("applicationModules", ::apache::thrift::protocol::T_LIST, 4);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->applicationModules.size()));
+      std::vector<std::string> ::const_iterator _iter17;
+      for (_iter17 = this->applicationModules.begin(); _iter17 != this->applicationModules.end(); ++_iter17)
+      {
+        xfer += oprot->writeString((*_iter17));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.applicationInputs) {
+    xfer += oprot->writeFieldBegin("applicationInputs", ::apache::thrift::protocol::T_LIST, 5);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationInputs.size()));
+      std::vector<InputDataObjectType> ::const_iterator _iter18;
+      for (_iter18 = this->applicationInputs.begin(); _iter18 != this->applicationInputs.end(); ++_iter18)
+      {
+        xfer += (*_iter18).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.applicationOutputs) {
+    xfer += oprot->writeFieldBegin("applicationOutputs", ::apache::thrift::protocol::T_LIST, 6);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationOutputs.size()));
+      std::vector<OutputDataObjectType> ::const_iterator _iter19;
+      for (_iter19 = this->applicationOutputs.begin(); _iter19 != this->applicationOutputs.end(); ++_iter19)
+      {
+        xfer += (*_iter19).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ApplicationInterfaceDescription &a, ApplicationInterfaceDescription &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.applicationInterfaceId, b.applicationInterfaceId);
+  swap(a.applicationName, b.applicationName);
+  swap(a.applicationModules, b.applicationModules);
+  swap(a.applicationInputs, b.applicationInputs);
+  swap(a.applicationOutputs, b.applicationOutputs);
+  swap(a.__isset, b.__isset);
+}
+
+


[04/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GridFTPDataMovement.java
deleted file mode 100644
index 2807322..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GridFTPDataMovement.java
+++ /dev/null
@@ -1,651 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all") public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
-
-  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField GRID_FTPEND_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("gridFTPEndPoint", 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 GridFTPDataMovementStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new GridFTPDataMovementTupleSchemeFactory());
-  }
-
-  private String dataMovementDataID; // required
-  private SecurityProtocol securityProtocol; // required
-  private List<String> gridFTPEndPoint; // required
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    DATA_MOVEMENT_DATA_ID((short)1, "dataMovementDataID"),
-    /**
-     * 
-     * @see SecurityProtocol
-     */
-    SECURITY_PROTOCOL((short)2, "securityProtocol"),
-    GRID_FTPEND_POINT((short)3, "gridFTPEndPoint");
-
-    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: // DATA_MOVEMENT_DATA_ID
-          return DATA_MOVEMENT_DATA_ID;
-        case 2: // SECURITY_PROTOCOL
-          return SECURITY_PROTOCOL;
-        case 3: // GRID_FTPEND_POINT
-          return GRID_FTPEND_POINT;
-        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.DATA_MOVEMENT_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
-    tmpMap.put(_Fields.GRID_FTPEND_POINT, new org.apache.thrift.meta_data.FieldMetaData("gridFTPEndPoint", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GridFTPDataMovement.class, metaDataMap);
-  }
-
-  public GridFTPDataMovement() {
-    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
-
-  }
-
-  public GridFTPDataMovement(
-    String dataMovementDataID,
-    SecurityProtocol securityProtocol,
-    List<String> gridFTPEndPoint)
-  {
-    this();
-    this.dataMovementDataID = dataMovementDataID;
-    this.securityProtocol = securityProtocol;
-    this.gridFTPEndPoint = gridFTPEndPoint;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public GridFTPDataMovement(GridFTPDataMovement other) {
-    if (other.isSetDataMovementDataID()) {
-      this.dataMovementDataID = other.dataMovementDataID;
-    }
-    if (other.isSetSecurityProtocol()) {
-      this.securityProtocol = other.securityProtocol;
-    }
-    if (other.isSetGridFTPEndPoint()) {
-      List<String> __this__gridFTPEndPoint = new ArrayList<String>(other.gridFTPEndPoint);
-      this.gridFTPEndPoint = __this__gridFTPEndPoint;
-    }
-  }
-
-  public GridFTPDataMovement deepCopy() {
-    return new GridFTPDataMovement(this);
-  }
-
-  @Override
-  public void clear() {
-    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.securityProtocol = null;
-    this.gridFTPEndPoint = null;
-  }
-
-  public String getDataMovementDataID() {
-    return this.dataMovementDataID;
-  }
-
-  public void setDataMovementDataID(String dataMovementDataID) {
-    this.dataMovementDataID = dataMovementDataID;
-  }
-
-  public void unsetDataMovementDataID() {
-    this.dataMovementDataID = null;
-  }
-
-  /** Returns true if field dataMovementDataID is set (has been assigned a value) and false otherwise */
-  public boolean isSetDataMovementDataID() {
-    return this.dataMovementDataID != null;
-  }
-
-  public void setDataMovementDataIDIsSet(boolean value) {
-    if (!value) {
-      this.dataMovementDataID = null;
-    }
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public SecurityProtocol getSecurityProtocol() {
-    return this.securityProtocol;
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
-    this.securityProtocol = securityProtocol;
-  }
-
-  public void unsetSecurityProtocol() {
-    this.securityProtocol = null;
-  }
-
-  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetSecurityProtocol() {
-    return this.securityProtocol != null;
-  }
-
-  public void setSecurityProtocolIsSet(boolean value) {
-    if (!value) {
-      this.securityProtocol = null;
-    }
-  }
-
-  public int getGridFTPEndPointSize() {
-    return (this.gridFTPEndPoint == null) ? 0 : this.gridFTPEndPoint.size();
-  }
-
-  public java.util.Iterator<String> getGridFTPEndPointIterator() {
-    return (this.gridFTPEndPoint == null) ? null : this.gridFTPEndPoint.iterator();
-  }
-
-  public void addToGridFTPEndPoint(String elem) {
-    if (this.gridFTPEndPoint == null) {
-      this.gridFTPEndPoint = new ArrayList<String>();
-    }
-    this.gridFTPEndPoint.add(elem);
-  }
-
-  public List<String> getGridFTPEndPoint() {
-    return this.gridFTPEndPoint;
-  }
-
-  public void setGridFTPEndPoint(List<String> gridFTPEndPoint) {
-    this.gridFTPEndPoint = gridFTPEndPoint;
-  }
-
-  public void unsetGridFTPEndPoint() {
-    this.gridFTPEndPoint = null;
-  }
-
-  /** Returns true if field gridFTPEndPoint is set (has been assigned a value) and false otherwise */
-  public boolean isSetGridFTPEndPoint() {
-    return this.gridFTPEndPoint != null;
-  }
-
-  public void setGridFTPEndPointIsSet(boolean value) {
-    if (!value) {
-      this.gridFTPEndPoint = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case DATA_MOVEMENT_DATA_ID:
-      if (value == null) {
-        unsetDataMovementDataID();
-      } else {
-        setDataMovementDataID((String)value);
-      }
-      break;
-
-    case SECURITY_PROTOCOL:
-      if (value == null) {
-        unsetSecurityProtocol();
-      } else {
-        setSecurityProtocol((SecurityProtocol)value);
-      }
-      break;
-
-    case GRID_FTPEND_POINT:
-      if (value == null) {
-        unsetGridFTPEndPoint();
-      } else {
-        setGridFTPEndPoint((List<String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case DATA_MOVEMENT_DATA_ID:
-      return getDataMovementDataID();
-
-    case SECURITY_PROTOCOL:
-      return getSecurityProtocol();
-
-    case GRID_FTPEND_POINT:
-      return getGridFTPEndPoint();
-
-    }
-    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 DATA_MOVEMENT_DATA_ID:
-      return isSetDataMovementDataID();
-    case SECURITY_PROTOCOL:
-      return isSetSecurityProtocol();
-    case GRID_FTPEND_POINT:
-      return isSetGridFTPEndPoint();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof GridFTPDataMovement)
-      return this.equals((GridFTPDataMovement)that);
-    return false;
-  }
-
-  public boolean equals(GridFTPDataMovement that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_dataMovementDataID = true && this.isSetDataMovementDataID();
-    boolean that_present_dataMovementDataID = true && that.isSetDataMovementDataID();
-    if (this_present_dataMovementDataID || that_present_dataMovementDataID) {
-      if (!(this_present_dataMovementDataID && that_present_dataMovementDataID))
-        return false;
-      if (!this.dataMovementDataID.equals(that.dataMovementDataID))
-        return false;
-    }
-
-    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
-    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
-    if (this_present_securityProtocol || that_present_securityProtocol) {
-      if (!(this_present_securityProtocol && that_present_securityProtocol))
-        return false;
-      if (!this.securityProtocol.equals(that.securityProtocol))
-        return false;
-    }
-
-    boolean this_present_gridFTPEndPoint = true && this.isSetGridFTPEndPoint();
-    boolean that_present_gridFTPEndPoint = true && that.isSetGridFTPEndPoint();
-    if (this_present_gridFTPEndPoint || that_present_gridFTPEndPoint) {
-      if (!(this_present_gridFTPEndPoint && that_present_gridFTPEndPoint))
-        return false;
-      if (!this.gridFTPEndPoint.equals(that.gridFTPEndPoint))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(GridFTPDataMovement other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetDataMovementDataID()).compareTo(other.isSetDataMovementDataID());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDataMovementDataID()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementDataID, other.dataMovementDataID);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSecurityProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGridFTPEndPoint()).compareTo(other.isSetGridFTPEndPoint());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGridFTPEndPoint()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gridFTPEndPoint, other.gridFTPEndPoint);
-      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("GridFTPDataMovement(");
-    boolean first = true;
-
-    sb.append("dataMovementDataID:");
-    if (this.dataMovementDataID == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.dataMovementDataID);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("securityProtocol:");
-    if (this.securityProtocol == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.securityProtocol);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("gridFTPEndPoint:");
-    if (this.gridFTPEndPoint == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.gridFTPEndPoint);
-    }
-    first = false;
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetDataMovementDataID()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementDataID' is unset! Struct:" + toString());
-    }
-
-    if (!isSetSecurityProtocol()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
-    }
-
-    if (!isSetGridFTPEndPoint()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gridFTPEndPoint' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      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 GridFTPDataMovementStandardSchemeFactory implements SchemeFactory {
-    public GridFTPDataMovementStandardScheme getScheme() {
-      return new GridFTPDataMovementStandardScheme();
-    }
-  }
-
-  private static class GridFTPDataMovementStandardScheme extends StandardScheme<GridFTPDataMovement> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, GridFTPDataMovement 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: // DATA_MOVEMENT_DATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.dataMovementDataID = iprot.readString();
-              struct.setDataMovementDataIDIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // SECURITY_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-              struct.setSecurityProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // GRID_FTPEND_POINT
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.gridFTPEndPoint = new ArrayList<String>(_list0.size);
-                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
-                {
-                  String _elem2;
-                  _elem2 = iprot.readString();
-                  struct.gridFTPEndPoint.add(_elem2);
-                }
-                iprot.readListEnd();
-              }
-              struct.setGridFTPEndPointIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.dataMovementDataID != null) {
-        oprot.writeFieldBegin(DATA_MOVEMENT_DATA_ID_FIELD_DESC);
-        oprot.writeString(struct.dataMovementDataID);
-        oprot.writeFieldEnd();
-      }
-      if (struct.securityProtocol != null) {
-        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
-        oprot.writeI32(struct.securityProtocol.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.gridFTPEndPoint != null) {
-        oprot.writeFieldBegin(GRID_FTPEND_POINT_FIELD_DESC);
-        {
-          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.gridFTPEndPoint.size()));
-          for (String _iter3 : struct.gridFTPEndPoint)
-          {
-            oprot.writeString(_iter3);
-          }
-          oprot.writeListEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class GridFTPDataMovementTupleSchemeFactory implements SchemeFactory {
-    public GridFTPDataMovementTupleScheme getScheme() {
-      return new GridFTPDataMovementTupleScheme();
-    }
-  }
-
-  private static class GridFTPDataMovementTupleScheme extends TupleScheme<GridFTPDataMovement> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.dataMovementDataID);
-      oprot.writeI32(struct.securityProtocol.getValue());
-      {
-        oprot.writeI32(struct.gridFTPEndPoint.size());
-        for (String _iter4 : struct.gridFTPEndPoint)
-        {
-          oprot.writeString(_iter4);
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.dataMovementDataID = iprot.readString();
-      struct.setDataMovementDataIDIsSet(true);
-      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-      struct.setSecurityProtocolIsSet(true);
-      {
-        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-        struct.gridFTPEndPoint = new ArrayList<String>(_list5.size);
-        for (int _i6 = 0; _i6 < _list5.size; ++_i6)
-        {
-          String _elem7;
-          _elem7 = iprot.readString();
-          struct.gridFTPEndPoint.add(_elem7);
-        }
-      }
-      struct.setGridFTPEndPointIsSet(true);
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocol.java
deleted file mode 100644
index f606bbc..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocol.java
+++ /dev/null
@@ -1,80 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-/**
- * Enumeration of Airavata supported Job Submission Mechanisms for High Perforamance Computing Clusters.
- * 
- * SSH:
- *  Execute remote job submission commands using via secure shell protocol.
- * 
- * GRAM:
- *  Execute remote jobs via Globus GRAM service.
- * 
- * UNICORE:
- *  Execute remote jobs via Unicore services
- * 
- */
-@SuppressWarnings("all") public enum JobSubmissionProtocol implements org.apache.thrift.TEnum {
-  SSH(0),
-  GSISSH(1),
-  GRAM(2),
-  UNICORE(3);
-
-  private final int value;
-
-  private JobSubmissionProtocol(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 JobSubmissionProtocol findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return SSH;
-      case 1:
-        return GSISSH;
-      case 2:
-        return GRAM;
-      case 3:
-        return UNICORE;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
deleted file mode 100644
index 120602c..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
+++ /dev/null
@@ -1,83 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-/**
- * Enumeration of local resource job managers supported by Airavata
- * 
- * FORK:
- *  Forking of commands without any job manager
- * 
- * PBS:
- *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
- * 
- * UGE:
- *  Univa Grid Engine, a variation of PBS implementation.
- * 
- * SLURM:
- *  The Simple Linux Utility for Resource Management is a open source workload manager.
- * 
- */
-@SuppressWarnings("all") public enum ResourceJobManager implements org.apache.thrift.TEnum {
-  FORK(0),
-  PBS(1),
-  UGE(2),
-  SLURM(3);
-
-  private final int value;
-
-  private ResourceJobManager(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 ResourceJobManager findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return FORK;
-      case 1:
-        return PBS;
-      case 2:
-        return UGE;
-      case 3:
-        return SLURM;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
deleted file mode 100644
index a843319..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
+++ /dev/null
@@ -1,610 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all") public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
-
-  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new SCPDataMovementStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new SCPDataMovementTupleSchemeFactory());
-  }
-
-  private String dataMovementDataID; // required
-  private SecurityProtocol securityProtocol; // required
-  private int sshPort; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    DATA_MOVEMENT_DATA_ID((short)1, "dataMovementDataID"),
-    /**
-     * 
-     * @see SecurityProtocol
-     */
-    SECURITY_PROTOCOL((short)2, "securityProtocol"),
-    SSH_PORT((short)3, "sshPort");
-
-    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: // DATA_MOVEMENT_DATA_ID
-          return DATA_MOVEMENT_DATA_ID;
-        case 2: // SECURITY_PROTOCOL
-          return SECURITY_PROTOCOL;
-        case 3: // SSH_PORT
-          return SSH_PORT;
-        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 __SSHPORT_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.SSH_PORT};
-  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.DATA_MOVEMENT_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
-    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SCPDataMovement.class, metaDataMap);
-  }
-
-  public SCPDataMovement() {
-    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.sshPort = 22;
-
-  }
-
-  public SCPDataMovement(
-    String dataMovementDataID,
-    SecurityProtocol securityProtocol)
-  {
-    this();
-    this.dataMovementDataID = dataMovementDataID;
-    this.securityProtocol = securityProtocol;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public SCPDataMovement(SCPDataMovement other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetDataMovementDataID()) {
-      this.dataMovementDataID = other.dataMovementDataID;
-    }
-    if (other.isSetSecurityProtocol()) {
-      this.securityProtocol = other.securityProtocol;
-    }
-    this.sshPort = other.sshPort;
-  }
-
-  public SCPDataMovement deepCopy() {
-    return new SCPDataMovement(this);
-  }
-
-  @Override
-  public void clear() {
-    this.dataMovementDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.securityProtocol = null;
-    this.sshPort = 22;
-
-  }
-
-  public String getDataMovementDataID() {
-    return this.dataMovementDataID;
-  }
-
-  public void setDataMovementDataID(String dataMovementDataID) {
-    this.dataMovementDataID = dataMovementDataID;
-  }
-
-  public void unsetDataMovementDataID() {
-    this.dataMovementDataID = null;
-  }
-
-  /** Returns true if field dataMovementDataID is set (has been assigned a value) and false otherwise */
-  public boolean isSetDataMovementDataID() {
-    return this.dataMovementDataID != null;
-  }
-
-  public void setDataMovementDataIDIsSet(boolean value) {
-    if (!value) {
-      this.dataMovementDataID = null;
-    }
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public SecurityProtocol getSecurityProtocol() {
-    return this.securityProtocol;
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
-    this.securityProtocol = securityProtocol;
-  }
-
-  public void unsetSecurityProtocol() {
-    this.securityProtocol = null;
-  }
-
-  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetSecurityProtocol() {
-    return this.securityProtocol != null;
-  }
-
-  public void setSecurityProtocolIsSet(boolean value) {
-    if (!value) {
-      this.securityProtocol = null;
-    }
-  }
-
-  public int getSshPort() {
-    return this.sshPort;
-  }
-
-  public void setSshPort(int sshPort) {
-    this.sshPort = sshPort;
-    setSshPortIsSet(true);
-  }
-
-  public void unsetSshPort() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
-  public boolean isSetSshPort() {
-    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  public void setSshPortIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case DATA_MOVEMENT_DATA_ID:
-      if (value == null) {
-        unsetDataMovementDataID();
-      } else {
-        setDataMovementDataID((String)value);
-      }
-      break;
-
-    case SECURITY_PROTOCOL:
-      if (value == null) {
-        unsetSecurityProtocol();
-      } else {
-        setSecurityProtocol((SecurityProtocol)value);
-      }
-      break;
-
-    case SSH_PORT:
-      if (value == null) {
-        unsetSshPort();
-      } else {
-        setSshPort((Integer)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case DATA_MOVEMENT_DATA_ID:
-      return getDataMovementDataID();
-
-    case SECURITY_PROTOCOL:
-      return getSecurityProtocol();
-
-    case SSH_PORT:
-      return Integer.valueOf(getSshPort());
-
-    }
-    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 DATA_MOVEMENT_DATA_ID:
-      return isSetDataMovementDataID();
-    case SECURITY_PROTOCOL:
-      return isSetSecurityProtocol();
-    case SSH_PORT:
-      return isSetSshPort();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof SCPDataMovement)
-      return this.equals((SCPDataMovement)that);
-    return false;
-  }
-
-  public boolean equals(SCPDataMovement that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_dataMovementDataID = true && this.isSetDataMovementDataID();
-    boolean that_present_dataMovementDataID = true && that.isSetDataMovementDataID();
-    if (this_present_dataMovementDataID || that_present_dataMovementDataID) {
-      if (!(this_present_dataMovementDataID && that_present_dataMovementDataID))
-        return false;
-      if (!this.dataMovementDataID.equals(that.dataMovementDataID))
-        return false;
-    }
-
-    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
-    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
-    if (this_present_securityProtocol || that_present_securityProtocol) {
-      if (!(this_present_securityProtocol && that_present_securityProtocol))
-        return false;
-      if (!this.securityProtocol.equals(that.securityProtocol))
-        return false;
-    }
-
-    boolean this_present_sshPort = true && this.isSetSshPort();
-    boolean that_present_sshPort = true && that.isSetSshPort();
-    if (this_present_sshPort || that_present_sshPort) {
-      if (!(this_present_sshPort && that_present_sshPort))
-        return false;
-      if (this.sshPort != that.sshPort)
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(SCPDataMovement other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetDataMovementDataID()).compareTo(other.isSetDataMovementDataID());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDataMovementDataID()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementDataID, other.dataMovementDataID);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSecurityProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSshPort()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
-      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("SCPDataMovement(");
-    boolean first = true;
-
-    sb.append("dataMovementDataID:");
-    if (this.dataMovementDataID == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.dataMovementDataID);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("securityProtocol:");
-    if (this.securityProtocol == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.securityProtocol);
-    }
-    first = false;
-    if (isSetSshPort()) {
-      if (!first) sb.append(", ");
-      sb.append("sshPort:");
-      sb.append(this.sshPort);
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetDataMovementDataID()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementDataID' is unset! Struct:" + toString());
-    }
-
-    if (!isSetSecurityProtocol()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class SCPDataMovementStandardSchemeFactory implements SchemeFactory {
-    public SCPDataMovementStandardScheme getScheme() {
-      return new SCPDataMovementStandardScheme();
-    }
-  }
-
-  private static class SCPDataMovementStandardScheme extends StandardScheme<SCPDataMovement> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, SCPDataMovement 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: // DATA_MOVEMENT_DATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.dataMovementDataID = iprot.readString();
-              struct.setDataMovementDataIDIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // SECURITY_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-              struct.setSecurityProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // SSH_PORT
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.sshPort = iprot.readI32();
-              struct.setSshPortIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, SCPDataMovement struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.dataMovementDataID != null) {
-        oprot.writeFieldBegin(DATA_MOVEMENT_DATA_ID_FIELD_DESC);
-        oprot.writeString(struct.dataMovementDataID);
-        oprot.writeFieldEnd();
-      }
-      if (struct.securityProtocol != null) {
-        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
-        oprot.writeI32(struct.securityProtocol.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetSshPort()) {
-        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
-        oprot.writeI32(struct.sshPort);
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class SCPDataMovementTupleSchemeFactory implements SchemeFactory {
-    public SCPDataMovementTupleScheme getScheme() {
-      return new SCPDataMovementTupleScheme();
-    }
-  }
-
-  private static class SCPDataMovementTupleScheme extends TupleScheme<SCPDataMovement> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.dataMovementDataID);
-      oprot.writeI32(struct.securityProtocol.getValue());
-      BitSet optionals = new BitSet();
-      if (struct.isSetSshPort()) {
-        optionals.set(0);
-      }
-      oprot.writeBitSet(optionals, 1);
-      if (struct.isSetSshPort()) {
-        oprot.writeI32(struct.sshPort);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.dataMovementDataID = iprot.readString();
-      struct.setDataMovementDataIDIsSet(true);
-      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-      struct.setSecurityProtocolIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
-      if (incoming.get(0)) {
-        struct.sshPort = iprot.readI32();
-        struct.setSshPortIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
deleted file mode 100644
index e66ef7d..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
+++ /dev/null
@@ -1,610 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all") public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
-
-  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new SSHJobSubmissionStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new SSHJobSubmissionTupleSchemeFactory());
-  }
-
-  private String jobSubmissionDataID; // required
-  private ResourceJobManager resourceJobManager; // required
-  private int sshPort; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
-    /**
-     * 
-     * @see ResourceJobManager
-     */
-    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
-    SSH_PORT((short)3, "sshPort");
-
-    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_SUBMISSION_DATA_ID
-          return JOB_SUBMISSION_DATA_ID;
-        case 2: // RESOURCE_JOB_MANAGER
-          return RESOURCE_JOB_MANAGER;
-        case 3: // SSH_PORT
-          return SSH_PORT;
-        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 __SSHPORT_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.SSH_PORT};
-  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
-    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
-  }
-
-  public SSHJobSubmission() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.sshPort = 22;
-
-  }
-
-  public SSHJobSubmission(
-    String jobSubmissionDataID,
-    ResourceJobManager resourceJobManager)
-  {
-    this();
-    this.jobSubmissionDataID = jobSubmissionDataID;
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public SSHJobSubmission(SSHJobSubmission other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetJobSubmissionDataID()) {
-      this.jobSubmissionDataID = other.jobSubmissionDataID;
-    }
-    if (other.isSetResourceJobManager()) {
-      this.resourceJobManager = other.resourceJobManager;
-    }
-    this.sshPort = other.sshPort;
-  }
-
-  public SSHJobSubmission deepCopy() {
-    return new SSHJobSubmission(this);
-  }
-
-  @Override
-  public void clear() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.resourceJobManager = null;
-    this.sshPort = 22;
-
-  }
-
-  public String getJobSubmissionDataID() {
-    return this.jobSubmissionDataID;
-  }
-
-  public void setJobSubmissionDataID(String jobSubmissionDataID) {
-    this.jobSubmissionDataID = jobSubmissionDataID;
-  }
-
-  public void unsetJobSubmissionDataID() {
-    this.jobSubmissionDataID = null;
-  }
-
-  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobSubmissionDataID() {
-    return this.jobSubmissionDataID != null;
-  }
-
-  public void setJobSubmissionDataIDIsSet(boolean value) {
-    if (!value) {
-      this.jobSubmissionDataID = null;
-    }
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public ResourceJobManager getResourceJobManager() {
-    return this.resourceJobManager;
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  public void unsetResourceJobManager() {
-    this.resourceJobManager = null;
-  }
-
-  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
-  public boolean isSetResourceJobManager() {
-    return this.resourceJobManager != null;
-  }
-
-  public void setResourceJobManagerIsSet(boolean value) {
-    if (!value) {
-      this.resourceJobManager = null;
-    }
-  }
-
-  public int getSshPort() {
-    return this.sshPort;
-  }
-
-  public void setSshPort(int sshPort) {
-    this.sshPort = sshPort;
-    setSshPortIsSet(true);
-  }
-
-  public void unsetSshPort() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
-  public boolean isSetSshPort() {
-    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  public void setSshPortIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      if (value == null) {
-        unsetJobSubmissionDataID();
-      } else {
-        setJobSubmissionDataID((String)value);
-      }
-      break;
-
-    case RESOURCE_JOB_MANAGER:
-      if (value == null) {
-        unsetResourceJobManager();
-      } else {
-        setResourceJobManager((ResourceJobManager)value);
-      }
-      break;
-
-    case SSH_PORT:
-      if (value == null) {
-        unsetSshPort();
-      } else {
-        setSshPort((Integer)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      return getJobSubmissionDataID();
-
-    case RESOURCE_JOB_MANAGER:
-      return getResourceJobManager();
-
-    case SSH_PORT:
-      return Integer.valueOf(getSshPort());
-
-    }
-    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 JOB_SUBMISSION_DATA_ID:
-      return isSetJobSubmissionDataID();
-    case RESOURCE_JOB_MANAGER:
-      return isSetResourceJobManager();
-    case SSH_PORT:
-      return isSetSshPort();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof SSHJobSubmission)
-      return this.equals((SSHJobSubmission)that);
-    return false;
-  }
-
-  public boolean equals(SSHJobSubmission that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
-    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
-    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
-      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
-        return false;
-      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
-        return false;
-    }
-
-    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
-    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
-    if (this_present_resourceJobManager || that_present_resourceJobManager) {
-      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
-        return false;
-      if (!this.resourceJobManager.equals(that.resourceJobManager))
-        return false;
-    }
-
-    boolean this_present_sshPort = true && this.isSetSshPort();
-    boolean that_present_sshPort = true && that.isSetSshPort();
-    if (this_present_sshPort || that_present_sshPort) {
-      if (!(this_present_sshPort && that_present_sshPort))
-        return false;
-      if (this.sshPort != that.sshPort)
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(SSHJobSubmission other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobSubmissionDataID()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetResourceJobManager()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSshPort()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
-      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("SSHJobSubmission(");
-    boolean first = true;
-
-    sb.append("jobSubmissionDataID:");
-    if (this.jobSubmissionDataID == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.jobSubmissionDataID);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("resourceJobManager:");
-    if (this.resourceJobManager == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.resourceJobManager);
-    }
-    first = false;
-    if (isSetSshPort()) {
-      if (!first) sb.append(", ");
-      sb.append("sshPort:");
-      sb.append(this.sshPort);
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetJobSubmissionDataID()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
-    }
-
-    if (!isSetResourceJobManager()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class SSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
-    public SSHJobSubmissionStandardScheme getScheme() {
-      return new SSHJobSubmissionStandardScheme();
-    }
-  }
-
-  private static class SSHJobSubmissionStandardScheme extends StandardScheme<SSHJobSubmission> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, SSHJobSubmission 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: // JOB_SUBMISSION_DATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobSubmissionDataID = iprot.readString();
-              struct.setJobSubmissionDataIDIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // RESOURCE_JOB_MANAGER
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-              struct.setResourceJobManagerIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // SSH_PORT
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.sshPort = iprot.readI32();
-              struct.setSshPortIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.jobSubmissionDataID != null) {
-        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
-        oprot.writeString(struct.jobSubmissionDataID);
-        oprot.writeFieldEnd();
-      }
-      if (struct.resourceJobManager != null) {
-        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
-        oprot.writeI32(struct.resourceJobManager.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetSshPort()) {
-        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
-        oprot.writeI32(struct.sshPort);
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class SSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
-    public SSHJobSubmissionTupleScheme getScheme() {
-      return new SSHJobSubmissionTupleScheme();
-    }
-  }
-
-  private static class SSHJobSubmissionTupleScheme extends TupleScheme<SSHJobSubmission> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.jobSubmissionDataID);
-      oprot.writeI32(struct.resourceJobManager.getValue());
-      BitSet optionals = new BitSet();
-      if (struct.isSetSshPort()) {
-        optionals.set(0);
-      }
-      oprot.writeBitSet(optionals, 1);
-      if (struct.isSetSshPort()) {
-        oprot.writeI32(struct.sshPort);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.jobSubmissionDataID = iprot.readString();
-      struct.setJobSubmissionDataIDIsSet(true);
-      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-      struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
-      if (incoming.get(0)) {
-        struct.sshPort = iprot.readI32();
-        struct.setSshPortIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
deleted file mode 100644
index fcf549d..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
+++ /dev/null
@@ -1,82 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-/**
- * Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just
- *  describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential
- *  store.
- * 
- * USERNAME_PASSWORD:
- *  A User Name.
- * 
- * SSH_KEYS:
- *  SSH Keys
- * 
- */
-@SuppressWarnings("all") public enum SecurityProtocol implements org.apache.thrift.TEnum {
-  USERNAME_PASSWORD(0),
-  SSH_KEYS(1),
-  GSI(2),
-  KERBEROS(3),
-  OAUTH(4);
-
-  private final int value;
-
-  private SecurityProtocol(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 SecurityProtocol findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return USERNAME_PASSWORD;
-      case 1:
-        return SSH_KEYS;
-      case 2:
-        return GSI;
-      case 3:
-        return KERBEROS;
-      case 4:
-        return OAUTH;
-      default:
-        return null;
-    }
-  }
-}


[03/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ComputeResourceDescription.java
new file mode 100644
index 0000000..21b3f19
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/ComputeResourceDescription.java
@@ -0,0 +1,1436 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Computational Resource Description
+ * 
+ * resourceId: Airavata Internal Unique Job ID. This is set by the registry.
+ * 
+ * hostName:
+ *   Fully Qualified Host Name.
+ * 
+ * ipAddress:
+ *   IP Addresse of the Hostname.
+ * 
+ * resourceDescription:
+ *  A user friendly description of the hostname.
+ * 
+ * JobSubmissionProtocols:
+ *  A computational resources may have one or more ways of submitting Jobs. This structure
+ *  will hold all available mechanisms to interact with the resource.
+ * 
+ * DataMovementProtocol:
+ *  Option to specify a prefered data movement mechanism of the available options.
+ * 
+ */
+@SuppressWarnings("all") public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
+
+  private static final org.apache.thrift.protocol.TField IS_EMPTY_FIELD_DESC = new org.apache.thrift.protocol.TField("isEmpty", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("hostName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField HOST_ALIASES_FIELD_DESC = new org.apache.thrift.protocol.TField("hostAliases", org.apache.thrift.protocol.TType.SET, (short)4);
+  private static final org.apache.thrift.protocol.TField IP_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("ipAddresses", org.apache.thrift.protocol.TType.SET, (short)5);
+  private static final org.apache.thrift.protocol.TField RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredJobSubmissionProtocol", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_PROTOCOLS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionProtocols", org.apache.thrift.protocol.TType.MAP, (short)9);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_PROTOCOLS_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementProtocols", org.apache.thrift.protocol.TType.MAP, (short)10);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ComputeResourceDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ComputeResourceDescriptionTupleSchemeFactory());
+  }
+
+  private boolean isEmpty; // required
+  private String resourceId; // required
+  private String hostName; // required
+  private Set<String> hostAliases; // optional
+  private Set<String> ipAddresses; // optional
+  private String resourceDescription; // optional
+  private String preferredJobSubmissionProtocol; // optional
+  private Map<String,JobSubmissionProtocol> jobSubmissionProtocols; // required
+  private Map<String,DataMovementProtocol> dataMovementProtocols; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    IS_EMPTY((short)1, "isEmpty"),
+    RESOURCE_ID((short)2, "resourceId"),
+    HOST_NAME((short)3, "hostName"),
+    HOST_ALIASES((short)4, "hostAliases"),
+    IP_ADDRESSES((short)5, "ipAddresses"),
+    RESOURCE_DESCRIPTION((short)6, "resourceDescription"),
+    PREFERRED_JOB_SUBMISSION_PROTOCOL((short)8, "preferredJobSubmissionProtocol"),
+    JOB_SUBMISSION_PROTOCOLS((short)9, "jobSubmissionProtocols"),
+    DATA_MOVEMENT_PROTOCOLS((short)10, "dataMovementProtocols");
+
+    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: // IS_EMPTY
+          return IS_EMPTY;
+        case 2: // RESOURCE_ID
+          return RESOURCE_ID;
+        case 3: // HOST_NAME
+          return HOST_NAME;
+        case 4: // HOST_ALIASES
+          return HOST_ALIASES;
+        case 5: // IP_ADDRESSES
+          return IP_ADDRESSES;
+        case 6: // RESOURCE_DESCRIPTION
+          return RESOURCE_DESCRIPTION;
+        case 8: // PREFERRED_JOB_SUBMISSION_PROTOCOL
+          return PREFERRED_JOB_SUBMISSION_PROTOCOL;
+        case 9: // JOB_SUBMISSION_PROTOCOLS
+          return JOB_SUBMISSION_PROTOCOLS;
+        case 10: // DATA_MOVEMENT_PROTOCOLS
+          return DATA_MOVEMENT_PROTOCOLS;
+        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 __ISEMPTY_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.HOST_ALIASES,_Fields.IP_ADDRESSES,_Fields.RESOURCE_DESCRIPTION,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL};
+  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.IS_EMPTY, new org.apache.thrift.meta_data.FieldMetaData("isEmpty", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("hostName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_ALIASES, new org.apache.thrift.meta_data.FieldMetaData("hostAliases", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.IP_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("ipAddresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("resourceDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("preferredJobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_SUBMISSION_PROTOCOLS, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionProtocols", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobSubmissionProtocol.class))));
+    tmpMap.put(_Fields.DATA_MOVEMENT_PROTOCOLS, new org.apache.thrift.meta_data.FieldMetaData("dataMovementProtocols", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataMovementProtocol.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourceDescription.class, metaDataMap);
+  }
+
+  public ComputeResourceDescription() {
+    this.isEmpty = false;
+
+    this.resourceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ComputeResourceDescription(
+    boolean isEmpty,
+    String resourceId,
+    String hostName,
+    Map<String,JobSubmissionProtocol> jobSubmissionProtocols,
+    Map<String,DataMovementProtocol> dataMovementProtocols)
+  {
+    this();
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+    this.resourceId = resourceId;
+    this.hostName = hostName;
+    this.jobSubmissionProtocols = jobSubmissionProtocols;
+    this.dataMovementProtocols = dataMovementProtocols;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ComputeResourceDescription(ComputeResourceDescription other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.isEmpty = other.isEmpty;
+    if (other.isSetResourceId()) {
+      this.resourceId = other.resourceId;
+    }
+    if (other.isSetHostName()) {
+      this.hostName = other.hostName;
+    }
+    if (other.isSetHostAliases()) {
+      Set<String> __this__hostAliases = new HashSet<String>(other.hostAliases);
+      this.hostAliases = __this__hostAliases;
+    }
+    if (other.isSetIpAddresses()) {
+      Set<String> __this__ipAddresses = new HashSet<String>(other.ipAddresses);
+      this.ipAddresses = __this__ipAddresses;
+    }
+    if (other.isSetResourceDescription()) {
+      this.resourceDescription = other.resourceDescription;
+    }
+    if (other.isSetPreferredJobSubmissionProtocol()) {
+      this.preferredJobSubmissionProtocol = other.preferredJobSubmissionProtocol;
+    }
+    if (other.isSetJobSubmissionProtocols()) {
+      Map<String,JobSubmissionProtocol> __this__jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(other.jobSubmissionProtocols.size());
+      for (Map.Entry<String, JobSubmissionProtocol> other_element : other.jobSubmissionProtocols.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        JobSubmissionProtocol other_element_value = other_element.getValue();
+
+        String __this__jobSubmissionProtocols_copy_key = other_element_key;
+
+        JobSubmissionProtocol __this__jobSubmissionProtocols_copy_value = other_element_value;
+
+        __this__jobSubmissionProtocols.put(__this__jobSubmissionProtocols_copy_key, __this__jobSubmissionProtocols_copy_value);
+      }
+      this.jobSubmissionProtocols = __this__jobSubmissionProtocols;
+    }
+    if (other.isSetDataMovementProtocols()) {
+      Map<String,DataMovementProtocol> __this__dataMovementProtocols = new HashMap<String,DataMovementProtocol>(other.dataMovementProtocols.size());
+      for (Map.Entry<String, DataMovementProtocol> other_element : other.dataMovementProtocols.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        DataMovementProtocol other_element_value = other_element.getValue();
+
+        String __this__dataMovementProtocols_copy_key = other_element_key;
+
+        DataMovementProtocol __this__dataMovementProtocols_copy_value = other_element_value;
+
+        __this__dataMovementProtocols.put(__this__dataMovementProtocols_copy_key, __this__dataMovementProtocols_copy_value);
+      }
+      this.dataMovementProtocols = __this__dataMovementProtocols;
+    }
+  }
+
+  public ComputeResourceDescription deepCopy() {
+    return new ComputeResourceDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.isEmpty = false;
+
+    this.resourceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.hostName = null;
+    this.hostAliases = null;
+    this.ipAddresses = null;
+    this.resourceDescription = null;
+    this.preferredJobSubmissionProtocol = null;
+    this.jobSubmissionProtocols = null;
+    this.dataMovementProtocols = null;
+  }
+
+  public boolean isIsEmpty() {
+    return this.isEmpty;
+  }
+
+  public void setIsEmpty(boolean isEmpty) {
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+  }
+
+  public void unsetIsEmpty() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  /** Returns true if field isEmpty is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsEmpty() {
+    return EncodingUtils.testBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  public void setIsEmptyIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISEMPTY_ISSET_ID, value);
+  }
+
+  public String getResourceId() {
+    return this.resourceId;
+  }
+
+  public void setResourceId(String resourceId) {
+    this.resourceId = resourceId;
+  }
+
+  public void unsetResourceId() {
+    this.resourceId = null;
+  }
+
+  /** Returns true if field resourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceId() {
+    return this.resourceId != null;
+  }
+
+  public void setResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceId = null;
+    }
+  }
+
+  public String getHostName() {
+    return this.hostName;
+  }
+
+  public void setHostName(String hostName) {
+    this.hostName = hostName;
+  }
+
+  public void unsetHostName() {
+    this.hostName = null;
+  }
+
+  /** Returns true if field hostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostName() {
+    return this.hostName != null;
+  }
+
+  public void setHostNameIsSet(boolean value) {
+    if (!value) {
+      this.hostName = null;
+    }
+  }
+
+  public int getHostAliasesSize() {
+    return (this.hostAliases == null) ? 0 : this.hostAliases.size();
+  }
+
+  public java.util.Iterator<String> getHostAliasesIterator() {
+    return (this.hostAliases == null) ? null : this.hostAliases.iterator();
+  }
+
+  public void addToHostAliases(String elem) {
+    if (this.hostAliases == null) {
+      this.hostAliases = new HashSet<String>();
+    }
+    this.hostAliases.add(elem);
+  }
+
+  public Set<String> getHostAliases() {
+    return this.hostAliases;
+  }
+
+  public void setHostAliases(Set<String> hostAliases) {
+    this.hostAliases = hostAliases;
+  }
+
+  public void unsetHostAliases() {
+    this.hostAliases = null;
+  }
+
+  /** Returns true if field hostAliases is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostAliases() {
+    return this.hostAliases != null;
+  }
+
+  public void setHostAliasesIsSet(boolean value) {
+    if (!value) {
+      this.hostAliases = null;
+    }
+  }
+
+  public int getIpAddressesSize() {
+    return (this.ipAddresses == null) ? 0 : this.ipAddresses.size();
+  }
+
+  public java.util.Iterator<String> getIpAddressesIterator() {
+    return (this.ipAddresses == null) ? null : this.ipAddresses.iterator();
+  }
+
+  public void addToIpAddresses(String elem) {
+    if (this.ipAddresses == null) {
+      this.ipAddresses = new HashSet<String>();
+    }
+    this.ipAddresses.add(elem);
+  }
+
+  public Set<String> getIpAddresses() {
+    return this.ipAddresses;
+  }
+
+  public void setIpAddresses(Set<String> ipAddresses) {
+    this.ipAddresses = ipAddresses;
+  }
+
+  public void unsetIpAddresses() {
+    this.ipAddresses = null;
+  }
+
+  /** Returns true if field ipAddresses is set (has been assigned a value) and false otherwise */
+  public boolean isSetIpAddresses() {
+    return this.ipAddresses != null;
+  }
+
+  public void setIpAddressesIsSet(boolean value) {
+    if (!value) {
+      this.ipAddresses = null;
+    }
+  }
+
+  public String getResourceDescription() {
+    return this.resourceDescription;
+  }
+
+  public void setResourceDescription(String resourceDescription) {
+    this.resourceDescription = resourceDescription;
+  }
+
+  public void unsetResourceDescription() {
+    this.resourceDescription = null;
+  }
+
+  /** Returns true if field resourceDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceDescription() {
+    return this.resourceDescription != null;
+  }
+
+  public void setResourceDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.resourceDescription = null;
+    }
+  }
+
+  public String getPreferredJobSubmissionProtocol() {
+    return this.preferredJobSubmissionProtocol;
+  }
+
+  public void setPreferredJobSubmissionProtocol(String preferredJobSubmissionProtocol) {
+    this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
+  }
+
+  public void unsetPreferredJobSubmissionProtocol() {
+    this.preferredJobSubmissionProtocol = null;
+  }
+
+  /** Returns true if field preferredJobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferredJobSubmissionProtocol() {
+    return this.preferredJobSubmissionProtocol != null;
+  }
+
+  public void setPreferredJobSubmissionProtocolIsSet(boolean value) {
+    if (!value) {
+      this.preferredJobSubmissionProtocol = null;
+    }
+  }
+
+  public int getJobSubmissionProtocolsSize() {
+    return (this.jobSubmissionProtocols == null) ? 0 : this.jobSubmissionProtocols.size();
+  }
+
+  public void putToJobSubmissionProtocols(String key, JobSubmissionProtocol val) {
+    if (this.jobSubmissionProtocols == null) {
+      this.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>();
+    }
+    this.jobSubmissionProtocols.put(key, val);
+  }
+
+  public Map<String,JobSubmissionProtocol> getJobSubmissionProtocols() {
+    return this.jobSubmissionProtocols;
+  }
+
+  public void setJobSubmissionProtocols(Map<String,JobSubmissionProtocol> jobSubmissionProtocols) {
+    this.jobSubmissionProtocols = jobSubmissionProtocols;
+  }
+
+  public void unsetJobSubmissionProtocols() {
+    this.jobSubmissionProtocols = null;
+  }
+
+  /** Returns true if field jobSubmissionProtocols is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionProtocols() {
+    return this.jobSubmissionProtocols != null;
+  }
+
+  public void setJobSubmissionProtocolsIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionProtocols = null;
+    }
+  }
+
+  public int getDataMovementProtocolsSize() {
+    return (this.dataMovementProtocols == null) ? 0 : this.dataMovementProtocols.size();
+  }
+
+  public void putToDataMovementProtocols(String key, DataMovementProtocol val) {
+    if (this.dataMovementProtocols == null) {
+      this.dataMovementProtocols = new HashMap<String,DataMovementProtocol>();
+    }
+    this.dataMovementProtocols.put(key, val);
+  }
+
+  public Map<String,DataMovementProtocol> getDataMovementProtocols() {
+    return this.dataMovementProtocols;
+  }
+
+  public void setDataMovementProtocols(Map<String,DataMovementProtocol> dataMovementProtocols) {
+    this.dataMovementProtocols = dataMovementProtocols;
+  }
+
+  public void unsetDataMovementProtocols() {
+    this.dataMovementProtocols = null;
+  }
+
+  /** Returns true if field dataMovementProtocols is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementProtocols() {
+    return this.dataMovementProtocols != null;
+  }
+
+  public void setDataMovementProtocolsIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementProtocols = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case IS_EMPTY:
+      if (value == null) {
+        unsetIsEmpty();
+      } else {
+        setIsEmpty((Boolean)value);
+      }
+      break;
+
+    case RESOURCE_ID:
+      if (value == null) {
+        unsetResourceId();
+      } else {
+        setResourceId((String)value);
+      }
+      break;
+
+    case HOST_NAME:
+      if (value == null) {
+        unsetHostName();
+      } else {
+        setHostName((String)value);
+      }
+      break;
+
+    case HOST_ALIASES:
+      if (value == null) {
+        unsetHostAliases();
+      } else {
+        setHostAliases((Set<String>)value);
+      }
+      break;
+
+    case IP_ADDRESSES:
+      if (value == null) {
+        unsetIpAddresses();
+      } else {
+        setIpAddresses((Set<String>)value);
+      }
+      break;
+
+    case RESOURCE_DESCRIPTION:
+      if (value == null) {
+        unsetResourceDescription();
+      } else {
+        setResourceDescription((String)value);
+      }
+      break;
+
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      if (value == null) {
+        unsetPreferredJobSubmissionProtocol();
+      } else {
+        setPreferredJobSubmissionProtocol((String)value);
+      }
+      break;
+
+    case JOB_SUBMISSION_PROTOCOLS:
+      if (value == null) {
+        unsetJobSubmissionProtocols();
+      } else {
+        setJobSubmissionProtocols((Map<String,JobSubmissionProtocol>)value);
+      }
+      break;
+
+    case DATA_MOVEMENT_PROTOCOLS:
+      if (value == null) {
+        unsetDataMovementProtocols();
+      } else {
+        setDataMovementProtocols((Map<String,DataMovementProtocol>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case IS_EMPTY:
+      return Boolean.valueOf(isIsEmpty());
+
+    case RESOURCE_ID:
+      return getResourceId();
+
+    case HOST_NAME:
+      return getHostName();
+
+    case HOST_ALIASES:
+      return getHostAliases();
+
+    case IP_ADDRESSES:
+      return getIpAddresses();
+
+    case RESOURCE_DESCRIPTION:
+      return getResourceDescription();
+
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      return getPreferredJobSubmissionProtocol();
+
+    case JOB_SUBMISSION_PROTOCOLS:
+      return getJobSubmissionProtocols();
+
+    case DATA_MOVEMENT_PROTOCOLS:
+      return getDataMovementProtocols();
+
+    }
+    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 IS_EMPTY:
+      return isSetIsEmpty();
+    case RESOURCE_ID:
+      return isSetResourceId();
+    case HOST_NAME:
+      return isSetHostName();
+    case HOST_ALIASES:
+      return isSetHostAliases();
+    case IP_ADDRESSES:
+      return isSetIpAddresses();
+    case RESOURCE_DESCRIPTION:
+      return isSetResourceDescription();
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      return isSetPreferredJobSubmissionProtocol();
+    case JOB_SUBMISSION_PROTOCOLS:
+      return isSetJobSubmissionProtocols();
+    case DATA_MOVEMENT_PROTOCOLS:
+      return isSetDataMovementProtocols();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ComputeResourceDescription)
+      return this.equals((ComputeResourceDescription)that);
+    return false;
+  }
+
+  public boolean equals(ComputeResourceDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_isEmpty = true;
+    boolean that_present_isEmpty = true;
+    if (this_present_isEmpty || that_present_isEmpty) {
+      if (!(this_present_isEmpty && that_present_isEmpty))
+        return false;
+      if (this.isEmpty != that.isEmpty)
+        return false;
+    }
+
+    boolean this_present_resourceId = true && this.isSetResourceId();
+    boolean that_present_resourceId = true && that.isSetResourceId();
+    if (this_present_resourceId || that_present_resourceId) {
+      if (!(this_present_resourceId && that_present_resourceId))
+        return false;
+      if (!this.resourceId.equals(that.resourceId))
+        return false;
+    }
+
+    boolean this_present_hostName = true && this.isSetHostName();
+    boolean that_present_hostName = true && that.isSetHostName();
+    if (this_present_hostName || that_present_hostName) {
+      if (!(this_present_hostName && that_present_hostName))
+        return false;
+      if (!this.hostName.equals(that.hostName))
+        return false;
+    }
+
+    boolean this_present_hostAliases = true && this.isSetHostAliases();
+    boolean that_present_hostAliases = true && that.isSetHostAliases();
+    if (this_present_hostAliases || that_present_hostAliases) {
+      if (!(this_present_hostAliases && that_present_hostAliases))
+        return false;
+      if (!this.hostAliases.equals(that.hostAliases))
+        return false;
+    }
+
+    boolean this_present_ipAddresses = true && this.isSetIpAddresses();
+    boolean that_present_ipAddresses = true && that.isSetIpAddresses();
+    if (this_present_ipAddresses || that_present_ipAddresses) {
+      if (!(this_present_ipAddresses && that_present_ipAddresses))
+        return false;
+      if (!this.ipAddresses.equals(that.ipAddresses))
+        return false;
+    }
+
+    boolean this_present_resourceDescription = true && this.isSetResourceDescription();
+    boolean that_present_resourceDescription = true && that.isSetResourceDescription();
+    if (this_present_resourceDescription || that_present_resourceDescription) {
+      if (!(this_present_resourceDescription && that_present_resourceDescription))
+        return false;
+      if (!this.resourceDescription.equals(that.resourceDescription))
+        return false;
+    }
+
+    boolean this_present_preferredJobSubmissionProtocol = true && this.isSetPreferredJobSubmissionProtocol();
+    boolean that_present_preferredJobSubmissionProtocol = true && that.isSetPreferredJobSubmissionProtocol();
+    if (this_present_preferredJobSubmissionProtocol || that_present_preferredJobSubmissionProtocol) {
+      if (!(this_present_preferredJobSubmissionProtocol && that_present_preferredJobSubmissionProtocol))
+        return false;
+      if (!this.preferredJobSubmissionProtocol.equals(that.preferredJobSubmissionProtocol))
+        return false;
+    }
+
+    boolean this_present_jobSubmissionProtocols = true && this.isSetJobSubmissionProtocols();
+    boolean that_present_jobSubmissionProtocols = true && that.isSetJobSubmissionProtocols();
+    if (this_present_jobSubmissionProtocols || that_present_jobSubmissionProtocols) {
+      if (!(this_present_jobSubmissionProtocols && that_present_jobSubmissionProtocols))
+        return false;
+      if (!this.jobSubmissionProtocols.equals(that.jobSubmissionProtocols))
+        return false;
+    }
+
+    boolean this_present_dataMovementProtocols = true && this.isSetDataMovementProtocols();
+    boolean that_present_dataMovementProtocols = true && that.isSetDataMovementProtocols();
+    if (this_present_dataMovementProtocols || that_present_dataMovementProtocols) {
+      if (!(this_present_dataMovementProtocols && that_present_dataMovementProtocols))
+        return false;
+      if (!this.dataMovementProtocols.equals(that.dataMovementProtocols))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(ComputeResourceDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetIsEmpty()).compareTo(other.isSetIsEmpty());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsEmpty()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isEmpty, other.isEmpty);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceId()).compareTo(other.isSetResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceId, other.resourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHostName()).compareTo(other.isSetHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostName, other.hostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHostAliases()).compareTo(other.isSetHostAliases());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostAliases()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostAliases, other.hostAliases);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIpAddresses()).compareTo(other.isSetIpAddresses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIpAddresses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ipAddresses, other.ipAddresses);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceDescription()).compareTo(other.isSetResourceDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceDescription, other.resourceDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferredJobSubmissionProtocol()).compareTo(other.isSetPreferredJobSubmissionProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferredJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredJobSubmissionProtocol, other.preferredJobSubmissionProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobSubmissionProtocols()).compareTo(other.isSetJobSubmissionProtocols());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionProtocols()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionProtocols, other.jobSubmissionProtocols);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovementProtocols()).compareTo(other.isSetDataMovementProtocols());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementProtocols()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementProtocols, other.dataMovementProtocols);
+      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("ComputeResourceDescription(");
+    boolean first = true;
+
+    sb.append("isEmpty:");
+    sb.append(this.isEmpty);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceId:");
+    if (this.resourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("hostName:");
+    if (this.hostName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.hostName);
+    }
+    first = false;
+    if (isSetHostAliases()) {
+      if (!first) sb.append(", ");
+      sb.append("hostAliases:");
+      if (this.hostAliases == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.hostAliases);
+      }
+      first = false;
+    }
+    if (isSetIpAddresses()) {
+      if (!first) sb.append(", ");
+      sb.append("ipAddresses:");
+      if (this.ipAddresses == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ipAddresses);
+      }
+      first = false;
+    }
+    if (isSetResourceDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceDescription:");
+      if (this.resourceDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceDescription);
+      }
+      first = false;
+    }
+    if (isSetPreferredJobSubmissionProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("preferredJobSubmissionProtocol:");
+      if (this.preferredJobSubmissionProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferredJobSubmissionProtocol);
+      }
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("jobSubmissionProtocols:");
+    if (this.jobSubmissionProtocols == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionProtocols);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("dataMovementProtocols:");
+    if (this.dataMovementProtocols == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementProtocols);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetIsEmpty()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'isEmpty' is unset! Struct:" + toString());
+    }
+
+    if (!isSetResourceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetHostName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'hostName' is unset! Struct:" + toString());
+    }
+
+    if (!isSetJobSubmissionProtocols()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocols' is unset! Struct:" + toString());
+    }
+
+    if (!isSetDataMovementProtocols()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementProtocols' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ComputeResourceDescriptionStandardSchemeFactory implements SchemeFactory {
+    public ComputeResourceDescriptionStandardScheme getScheme() {
+      return new ComputeResourceDescriptionStandardScheme();
+    }
+  }
+
+  private static class ComputeResourceDescriptionStandardScheme extends StandardScheme<ComputeResourceDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputeResourceDescription 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: // IS_EMPTY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isEmpty = iprot.readBool();
+              struct.setIsEmptyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceId = iprot.readString();
+              struct.setResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // HOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.hostName = iprot.readString();
+              struct.setHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // HOST_ALIASES
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set40 = iprot.readSetBegin();
+                struct.hostAliases = new HashSet<String>(2*_set40.size);
+                for (int _i41 = 0; _i41 < _set40.size; ++_i41)
+                {
+                  String _elem42;
+                  _elem42 = iprot.readString();
+                  struct.hostAliases.add(_elem42);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setHostAliasesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // IP_ADDRESSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set43 = iprot.readSetBegin();
+                struct.ipAddresses = new HashSet<String>(2*_set43.size);
+                for (int _i44 = 0; _i44 < _set43.size; ++_i44)
+                {
+                  String _elem45;
+                  _elem45 = iprot.readString();
+                  struct.ipAddresses.add(_elem45);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setIpAddressesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // RESOURCE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceDescription = iprot.readString();
+              struct.setResourceDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // PREFERRED_JOB_SUBMISSION_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.preferredJobSubmissionProtocol = iprot.readString();
+              struct.setPreferredJobSubmissionProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // JOB_SUBMISSION_PROTOCOLS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map46 = iprot.readMapBegin();
+                struct.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(2*_map46.size);
+                for (int _i47 = 0; _i47 < _map46.size; ++_i47)
+                {
+                  String _key48;
+                  JobSubmissionProtocol _val49;
+                  _key48 = iprot.readString();
+                  _val49 = JobSubmissionProtocol.findByValue(iprot.readI32());
+                  struct.jobSubmissionProtocols.put(_key48, _val49);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setJobSubmissionProtocolsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // DATA_MOVEMENT_PROTOCOLS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map50 = iprot.readMapBegin();
+                struct.dataMovementProtocols = new HashMap<String,DataMovementProtocol>(2*_map50.size);
+                for (int _i51 = 0; _i51 < _map50.size; ++_i51)
+                {
+                  String _key52;
+                  DataMovementProtocol _val53;
+                  _key52 = iprot.readString();
+                  _val53 = DataMovementProtocol.findByValue(iprot.readI32());
+                  struct.dataMovementProtocols.put(_key52, _val53);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setDataMovementProtocolsIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(IS_EMPTY_FIELD_DESC);
+      oprot.writeBool(struct.isEmpty);
+      oprot.writeFieldEnd();
+      if (struct.resourceId != null) {
+        oprot.writeFieldBegin(RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.resourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.hostName != null) {
+        oprot.writeFieldBegin(HOST_NAME_FIELD_DESC);
+        oprot.writeString(struct.hostName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.hostAliases != null) {
+        if (struct.isSetHostAliases()) {
+          oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
+          {
+            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
+            for (String _iter54 : struct.hostAliases)
+            {
+              oprot.writeString(_iter54);
+            }
+            oprot.writeSetEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.ipAddresses != null) {
+        if (struct.isSetIpAddresses()) {
+          oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
+          {
+            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
+            for (String _iter55 : struct.ipAddresses)
+            {
+              oprot.writeString(_iter55);
+            }
+            oprot.writeSetEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceDescription != null) {
+        if (struct.isSetResourceDescription()) {
+          oprot.writeFieldBegin(RESOURCE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.resourceDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preferredJobSubmissionProtocol != null) {
+        if (struct.isSetPreferredJobSubmissionProtocol()) {
+          oprot.writeFieldBegin(PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+          oprot.writeString(struct.preferredJobSubmissionProtocol);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobSubmissionProtocols != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_PROTOCOLS_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.jobSubmissionProtocols.size()));
+          for (Map.Entry<String, JobSubmissionProtocol> _iter56 : struct.jobSubmissionProtocols.entrySet())
+          {
+            oprot.writeString(_iter56.getKey());
+            oprot.writeI32(_iter56.getValue().getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.dataMovementProtocols != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_PROTOCOLS_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.dataMovementProtocols.size()));
+          for (Map.Entry<String, DataMovementProtocol> _iter57 : struct.dataMovementProtocols.entrySet())
+          {
+            oprot.writeString(_iter57.getKey());
+            oprot.writeI32(_iter57.getValue().getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ComputeResourceDescriptionTupleSchemeFactory implements SchemeFactory {
+    public ComputeResourceDescriptionTupleScheme getScheme() {
+      return new ComputeResourceDescriptionTupleScheme();
+    }
+  }
+
+  private static class ComputeResourceDescriptionTupleScheme extends TupleScheme<ComputeResourceDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.isEmpty);
+      oprot.writeString(struct.resourceId);
+      oprot.writeString(struct.hostName);
+      {
+        oprot.writeI32(struct.jobSubmissionProtocols.size());
+        for (Map.Entry<String, JobSubmissionProtocol> _iter58 : struct.jobSubmissionProtocols.entrySet())
+        {
+          oprot.writeString(_iter58.getKey());
+          oprot.writeI32(_iter58.getValue().getValue());
+        }
+      }
+      {
+        oprot.writeI32(struct.dataMovementProtocols.size());
+        for (Map.Entry<String, DataMovementProtocol> _iter59 : struct.dataMovementProtocols.entrySet())
+        {
+          oprot.writeString(_iter59.getKey());
+          oprot.writeI32(_iter59.getValue().getValue());
+        }
+      }
+      BitSet optionals = new BitSet();
+      if (struct.isSetHostAliases()) {
+        optionals.set(0);
+      }
+      if (struct.isSetIpAddresses()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceDescription()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPreferredJobSubmissionProtocol()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetHostAliases()) {
+        {
+          oprot.writeI32(struct.hostAliases.size());
+          for (String _iter60 : struct.hostAliases)
+          {
+            oprot.writeString(_iter60);
+          }
+        }
+      }
+      if (struct.isSetIpAddresses()) {
+        {
+          oprot.writeI32(struct.ipAddresses.size());
+          for (String _iter61 : struct.ipAddresses)
+          {
+            oprot.writeString(_iter61);
+          }
+        }
+      }
+      if (struct.isSetResourceDescription()) {
+        oprot.writeString(struct.resourceDescription);
+      }
+      if (struct.isSetPreferredJobSubmissionProtocol()) {
+        oprot.writeString(struct.preferredJobSubmissionProtocol);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.isEmpty = iprot.readBool();
+      struct.setIsEmptyIsSet(true);
+      struct.resourceId = iprot.readString();
+      struct.setResourceIdIsSet(true);
+      struct.hostName = iprot.readString();
+      struct.setHostNameIsSet(true);
+      {
+        org.apache.thrift.protocol.TMap _map62 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
+        struct.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(2*_map62.size);
+        for (int _i63 = 0; _i63 < _map62.size; ++_i63)
+        {
+          String _key64;
+          JobSubmissionProtocol _val65;
+          _key64 = iprot.readString();
+          _val65 = JobSubmissionProtocol.findByValue(iprot.readI32());
+          struct.jobSubmissionProtocols.put(_key64, _val65);
+        }
+      }
+      struct.setJobSubmissionProtocolsIsSet(true);
+      {
+        org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
+        struct.dataMovementProtocols = new HashMap<String,DataMovementProtocol>(2*_map66.size);
+        for (int _i67 = 0; _i67 < _map66.size; ++_i67)
+        {
+          String _key68;
+          DataMovementProtocol _val69;
+          _key68 = iprot.readString();
+          _val69 = DataMovementProtocol.findByValue(iprot.readI32());
+          struct.dataMovementProtocols.put(_key68, _val69);
+        }
+      }
+      struct.setDataMovementProtocolsIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TSet _set70 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.hostAliases = new HashSet<String>(2*_set70.size);
+          for (int _i71 = 0; _i71 < _set70.size; ++_i71)
+          {
+            String _elem72;
+            _elem72 = iprot.readString();
+            struct.hostAliases.add(_elem72);
+          }
+        }
+        struct.setHostAliasesIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TSet _set73 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.ipAddresses = new HashSet<String>(2*_set73.size);
+          for (int _i74 = 0; _i74 < _set73.size; ++_i74)
+          {
+            String _elem75;
+            _elem75 = iprot.readString();
+            struct.ipAddresses.add(_elem75);
+          }
+        }
+        struct.setIpAddressesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceDescription = iprot.readString();
+        struct.setResourceDescriptionIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.preferredJobSubmissionProtocol = iprot.readString();
+        struct.setPreferredJobSubmissionProtocolIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/DataMovementProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/DataMovementProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/DataMovementProtocol.java
new file mode 100644
index 0000000..5f178a6
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/DataMovementProtocol.java
@@ -0,0 +1,83 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of data movement supported by Airavata
+ * 
+ * SCP:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * 
+ * SFTP:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ * 
+ * GridFTP:
+ *  Globus File Transfer Protocol
+ * 
+ * UNICORE_STORAGE_SERVICE:
+ *  Storage Service Provided by Unicore
+ * 
+ */
+@SuppressWarnings("all") public enum DataMovementProtocol implements org.apache.thrift.TEnum {
+  SCP(0),
+  SFTP(1),
+  GridFTP(2),
+  UNICORE_STORAGE_SERVICE(3);
+
+  private final int value;
+
+  private DataMovementProtocol(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 DataMovementProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SCP;
+      case 1:
+        return SFTP;
+      case 2:
+        return GridFTP;
+      case 3:
+        return UNICORE_STORAGE_SERVICE;
+      default:
+        return null;
+    }
+  }
+}


[12/12] git commit: adding generated code for app-catalog

Posted by ch...@apache.org.
adding generated code for app-catalog


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

Branch: refs/heads/master
Commit: 8ebb254ffde04734bfdfcf88a3d9708be199c2c0
Parents: 77970e0
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Sat Jun 28 18:45:48 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Sat Jun 28 18:45:48 2014 -0400

----------------------------------------------------------------------
 .../api/appcatalog/ApplicationCatalogAPI.java   | 5734 ++++++++++++++++--
 .../resources/lib/ApplicationCatalogAPI.cpp     | 2253 +++++--
 .../main/resources/lib/ApplicationCatalogAPI.h  |  690 ++-
 .../ApplicationCatalogAPI_server.skeleton.cpp   |   28 +-
 .../resources/lib/applicationCatalogAPI_types.h |    4 +-
 .../applicationDeploymentModel_constants.cpp    |   19 +
 .../lib/applicationDeploymentModel_constants.h  |   25 +
 .../lib/applicationDeploymentModel_types.cpp    |  477 ++
 .../lib/applicationDeploymentModel_types.h      |  269 +
 .../lib/applicationInterfaceModel_constants.cpp |   19 +
 .../lib/applicationInterfaceModel_constants.h   |   25 +
 .../lib/applicationInterfaceModel_types.cpp     |  504 ++
 .../lib/applicationInterfaceModel_types.h       |  308 +
 .../lib/computeHostModel_constants.cpp          |   19 +
 .../resources/lib/computeHostModel_constants.h  |   25 +
 .../resources/lib/computeHostModel_types.cpp    | 1025 ++++
 .../main/resources/lib/computeHostModel_types.h |  534 ++
 .../API/AppCatalog/ApplicationCatalogAPI.php    | 1257 +++-
 .../appcatalog/ComputeResourceDescription.java  | 1537 -----
 .../model/appcatalog/DataMovementProtocol.java  |   83 -
 .../model/appcatalog/GSISSHJobSubmission.java   | 1262 ----
 .../model/appcatalog/GlobusJobSubmission.java   |  768 ---
 .../model/appcatalog/GridFTPDataMovement.java   |  651 --
 .../model/appcatalog/JobSubmissionProtocol.java |   80 -
 .../model/appcatalog/ResourceJobManager.java    |   83 -
 .../model/appcatalog/SCPDataMovement.java       |  610 --
 .../model/appcatalog/SSHJobSubmission.java      |  610 --
 .../model/appcatalog/SecurityProtocol.java      |   82 -
 .../computehost/ComputeResourceDescription.java | 1436 +++++
 .../model/computehost/DataMovementProtocol.java |   83 +
 .../model/computehost/GSISSHJobSubmission.java  | 1262 ++++
 .../model/computehost/GlobusJobSubmission.java  |  768 +++
 .../model/computehost/GridFTPDataMovement.java  |  651 ++
 .../computehost/JobSubmissionProtocol.java      |   80 +
 .../model/computehost/ResourceJobManager.java   |   83 +
 .../model/computehost/SCPDataMovement.java      |  610 ++
 .../model/computehost/SSHJobSubmission.java     |  610 ++
 .../model/computehost/SecurityProtocol.java     |   82 +
 .../computehost/computeHostModelConstants.java  |   55 +
 .../applicationCatalogAPI.thrift                |    9 +-
 .../applicationInterfaceModel.thrift            |    6 +-
 .../org/airavata/appcatalog/cpi/AppCatalog.java |    5 +
 42 files changed, 18047 insertions(+), 6674 deletions(-)
----------------------------------------------------------------------



[10/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.cpp
index 3d0302d..a2e54f3 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/ApplicationCatalogAPI.cpp
@@ -4310,7 +4310,7 @@ uint32_t ApplicationCatalogAPI_getApplicationInterface_presult::read(::apache::t
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4321,8 +4321,7 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::read(::apache::thr
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_applicationInterfaceId = false;
-  bool isset_applicationDeployment = false;
+  bool isset_applicationModule = false;
 
   while (true)
   {
@@ -4333,17 +4332,17 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::read(::apache::thr
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->applicationInterfaceId);
-          isset_applicationInterfaceId = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->applicationModule.read(iprot);
+          isset_applicationModule = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->applicationDeployment.read(iprot);
-          isset_applicationDeployment = true;
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->publish);
+          this->__isset.publish = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4357,23 +4356,21 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::read(::apache::thr
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_applicationInterfaceId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_applicationDeployment)
+  if (!isset_applicationModule)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_args");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_registerAppicationModule_args");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldBegin("applicationModule", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->applicationModule.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("applicationDeployment", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += this->applicationDeployment.write(oprot);
+  xfer += oprot->writeFieldBegin("publish", ::apache::thrift::protocol::T_BOOL, 2);
+  xfer += oprot->writeBool(this->publish);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4381,16 +4378,16 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::write(::apache::th
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_pargs");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_registerAppicationModule_pargs");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldBegin("applicationModule", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->applicationModule)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("applicationDeployment", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += (*(this->applicationDeployment)).write(oprot);
+  xfer += oprot->writeFieldBegin("publish", ::apache::thrift::protocol::T_BOOL, 2);
+  xfer += oprot->writeBool((*(this->publish)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4398,7 +4395,7 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_pargs::write(::apache::t
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4462,11 +4459,11 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::read(::apache::t
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_result");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_registerAppicationModule_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
@@ -4490,7 +4487,7 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::write(::apache::
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_addApplicationDeployment_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_registerAppicationModule_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4554,7 +4551,7 @@ uint32_t ApplicationCatalogAPI_addApplicationDeployment_presult::read(::apache::
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_getAppicationModule_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4565,7 +4562,7 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::read(::apache:
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_applicationInterfaceId = false;
+  bool isset_appModuleId = false;
 
   while (true)
   {
@@ -4577,8 +4574,8 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::read(::apache:
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->applicationInterfaceId);
-          isset_applicationInterfaceId = true;
+          xfer += iprot->readString(this->appModuleId);
+          isset_appModuleId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4592,17 +4589,17 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::read(::apache:
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_applicationInterfaceId)
+  if (!isset_appModuleId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_getAppicationModule_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_args");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getAppicationModule_args");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->appModuleId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4610,12 +4607,12 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::write(::apache
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_getAppicationModule_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_pargs");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getAppicationModule_pargs");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->appModuleId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4623,7 +4620,7 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_pargs::write(::apach
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_getAppicationModule_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4644,20 +4641,8 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::read(::apach
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size22;
-            ::apache::thrift::protocol::TType _etype25;
-            xfer += iprot->readListBegin(_etype25, _size22);
-            this->success.resize(_size22);
-            uint32_t _i26;
-            for (_i26 = 0; _i26 < _size22; ++_i26)
-            {
-              xfer += iprot->readString(this->success[_i26]);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4699,23 +4684,15 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::read(::apach
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_getAppicationModule_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_result");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getAppicationModule_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter27;
-      for (_iter27 = this->success.begin(); _iter27 != this->success.end(); ++_iter27)
-      {
-        xfer += oprot->writeString((*_iter27));
-      }
-      xfer += oprot->writeListEnd();
-    }
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4735,7 +4712,7 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::write(::apac
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_getAppicationModule_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4756,20 +4733,8 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_presult::read(::apac
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size28;
-            ::apache::thrift::protocol::TType _etype31;
-            xfer += iprot->readListBegin(_etype31, _size28);
-            (*(this->success)).resize(_size28);
-            uint32_t _i32;
-            for (_i32 = 0; _i32 < _size28; ++_i32)
-            {
-              xfer += iprot->readString((*(this->success))[_i32]);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4811,7 +4776,7 @@ uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_presult::read(::apac
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4822,8 +4787,8 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::read(::apache::thr
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_applicationInterfaceId = false;
-  bool isset_applicationDeploymentId = false;
+  bool isset_appModuleId = false;
+  bool isset_applicationModule = false;
 
   while (true)
   {
@@ -4835,16 +4800,16 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::read(::apache::thr
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->applicationInterfaceId);
-          isset_applicationInterfaceId = true;
+          xfer += iprot->readString(this->appModuleId);
+          isset_appModuleId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->applicationDeploymentId);
-          isset_applicationDeploymentId = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->applicationModule.read(iprot);
+          isset_applicationModule = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4858,23 +4823,23 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::read(::apache::thr
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_applicationInterfaceId)
+  if (!isset_appModuleId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_applicationDeploymentId)
+  if (!isset_applicationModule)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_args");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_updateAppicationModule_args");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->appModuleId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("applicationDeploymentId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->applicationDeploymentId);
+  xfer += oprot->writeFieldBegin("applicationModule", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->applicationModule.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4882,16 +4847,16 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::write(::apache::th
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_pargs");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_updateAppicationModule_pargs");
 
-  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->appModuleId)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("applicationDeploymentId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->applicationDeploymentId)));
+  xfer += oprot->writeFieldBegin("applicationModule", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->applicationModule)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4899,7 +4864,7 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_pargs::write(::apache::t
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -4920,8 +4885,8 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::read(::apache::t
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4963,15 +4928,15 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::read(::apache::t
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_result");
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_updateAppicationModule_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4991,7 +4956,7 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::write(::apache::
   return xfer;
 }
 
-uint32_t ApplicationCatalogAPI_getApplicationDeployment_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ApplicationCatalogAPI_updateAppicationModule_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -5012,8 +4977,8 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_presult::read(::apache::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5055,109 +5020,1147 @@ uint32_t ApplicationCatalogAPI_getApplicationDeployment_presult::read(::apache::
   return xfer;
 }
 
-void ApplicationCatalogAPIClient::GetAPIVersion(std::string& _return)
-{
-  send_GetAPIVersion();
-  recv_GetAPIVersion(_return);
-}
-
-void ApplicationCatalogAPIClient::send_GetAPIVersion()
-{
-  int32_t cseqid = 0;
-  oprot_->writeMessageBegin("GetAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  ApplicationCatalogAPI_GetAPIVersion_pargs args;
-  args.write(oprot_);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
 
-  oprot_->writeMessageEnd();
-  oprot_->getTransport()->writeEnd();
-  oprot_->getTransport()->flush();
-}
+  xfer += iprot->readStructBegin(fname);
 
-void ApplicationCatalogAPIClient::recv_GetAPIVersion(std::string& _return)
-{
+  using ::apache::thrift::protocol::TProtocolException;
 
-  int32_t rseqid = 0;
-  std::string fname;
-  ::apache::thrift::protocol::TMessageType mtype;
+  bool isset_appModuleId = false;
 
-  iprot_->readMessageBegin(fname, mtype, rseqid);
-  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
-    ::apache::thrift::TApplicationException x;
-    x.read(iprot_);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
-    throw x;
-  }
-  if (mtype != ::apache::thrift::protocol::T_REPLY) {
-    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
-  }
-  if (fname.compare("GetAPIVersion") != 0) {
-    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->appModuleId);
+          isset_appModuleId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
   }
-  ApplicationCatalogAPI_GetAPIVersion_presult result;
-  result.success = &_return;
-  result.read(iprot_);
-  iprot_->readMessageEnd();
-  iprot_->getTransport()->readEnd();
 
-  if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
-  }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetAPIVersion failed: unknown result");
+  xfer += iprot->readStructEnd();
+
+  if (!isset_appModuleId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
 }
 
-void ApplicationCatalogAPIClient::addComputeResourceDescription(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription)
-{
-  send_addComputeResourceDescription(computeResourceDescription);
-  recv_addComputeResourceDescription(_return);
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_deleteAppicationModule_args");
+
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->appModuleId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
 }
 
-void ApplicationCatalogAPIClient::send_addComputeResourceDescription(const  ::ComputeResourceDescription& computeResourceDescription)
-{
-  int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addComputeResourceDescription", ::apache::thrift::protocol::T_CALL, cseqid);
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_deleteAppicationModule_pargs");
 
-  ApplicationCatalogAPI_addComputeResourceDescription_pargs args;
-  args.computeResourceDescription = &computeResourceDescription;
-  args.write(oprot_);
+  xfer += oprot->writeFieldBegin("appModuleId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->appModuleId)));
+  xfer += oprot->writeFieldEnd();
 
-  oprot_->writeMessageEnd();
-  oprot_->getTransport()->writeEnd();
-  oprot_->getTransport()->flush();
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
 }
 
-void ApplicationCatalogAPIClient::recv_addComputeResourceDescription(std::string& _return)
-{
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  int32_t rseqid = 0;
+  uint32_t xfer = 0;
   std::string fname;
-  ::apache::thrift::protocol::TMessageType mtype;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
 
-  iprot_->readMessageBegin(fname, mtype, rseqid);
-  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
-    ::apache::thrift::TApplicationException x;
-    x.read(iprot_);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
-    throw x;
-  }
-  if (mtype != ::apache::thrift::protocol::T_REPLY) {
-    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
-    iprot_->readMessageEnd();
-    iprot_->getTransport()->readEnd();
-  }
-  if (fname.compare("addComputeResourceDescription") != 0) {
-    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
-    iprot_->readMessageEnd();
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_deleteAppicationModule_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_deleteAppicationModule_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_applicationInterfaceId = false;
+  bool isset_applicationDeployment = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationInterfaceId);
+          isset_applicationInterfaceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->applicationDeployment.read(iprot);
+          isset_applicationDeployment = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_applicationInterfaceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_applicationDeployment)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_args");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationDeployment", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->applicationDeployment.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_pargs");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationDeployment", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->applicationDeployment)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_addApplicationDeployment_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_addApplicationDeployment_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_applicationInterfaceId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationInterfaceId);
+          isset_applicationInterfaceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_applicationInterfaceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_args");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_pargs");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size22;
+            ::apache::thrift::protocol::TType _etype25;
+            xfer += iprot->readListBegin(_etype25, _size22);
+            this->success.resize(_size22);
+            uint32_t _i26;
+            for (_i26 = 0; _i26 < _size22; ++_i26)
+            {
+              xfer += iprot->readString(this->success[_i26]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_listApplicationDeploymentIds_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+      std::vector<std::string> ::const_iterator _iter27;
+      for (_iter27 = this->success.begin(); _iter27 != this->success.end(); ++_iter27)
+      {
+        xfer += oprot->writeString((*_iter27));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_listApplicationDeploymentIds_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size28;
+            ::apache::thrift::protocol::TType _etype31;
+            xfer += iprot->readListBegin(_etype31, _size28);
+            (*(this->success)).resize(_size28);
+            uint32_t _i32;
+            for (_i32 = 0; _i32 < _size28; ++_i32)
+            {
+              xfer += iprot->readString((*(this->success))[_i32]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_applicationInterfaceId = false;
+  bool isset_applicationDeploymentId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationInterfaceId);
+          isset_applicationInterfaceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationDeploymentId);
+          isset_applicationDeploymentId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_applicationInterfaceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_applicationDeploymentId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_args");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->applicationInterfaceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationDeploymentId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->applicationDeploymentId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_pargs");
+
+  xfer += oprot->writeFieldBegin("applicationInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->applicationInterfaceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("applicationDeploymentId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->applicationDeploymentId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ApplicationCatalogAPI_getApplicationDeployment_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t ApplicationCatalogAPI_getApplicationDeployment_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+void ApplicationCatalogAPIClient::GetAPIVersion(std::string& _return)
+{
+  send_GetAPIVersion();
+  recv_GetAPIVersion(_return);
+}
+
+void ApplicationCatalogAPIClient::send_GetAPIVersion()
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("GetAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_GetAPIVersion_pargs args;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_GetAPIVersion(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("GetAPIVersion") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_GetAPIVersion_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetAPIVersion failed: unknown result");
+}
+
+void ApplicationCatalogAPIClient::addComputeResourceDescription(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription)
+{
+  send_addComputeResourceDescription(computeResourceDescription);
+  recv_addComputeResourceDescription(_return);
+}
+
+void ApplicationCatalogAPIClient::send_addComputeResourceDescription(const  ::ComputeResourceDescription& computeResourceDescription)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addComputeResourceDescription", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_addComputeResourceDescription_pargs args;
+  args.computeResourceDescription = &computeResourceDescription;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_addComputeResourceDescription(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("addComputeResourceDescription") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_addComputeResourceDescription_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addComputeResourceDescription failed: unknown result");
+}
+
+void ApplicationCatalogAPIClient::addSSHJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::SSHJobSubmission& jobSubmission)
+{
+  send_addSSHJobSubmissionProtocol(computeResourceId, jobSubmission);
+  recv_addSSHJobSubmissionProtocol(_return);
+}
+
+void ApplicationCatalogAPIClient::send_addSSHJobSubmissionProtocol(const std::string& computeResourceId, const  ::SSHJobSubmission& jobSubmission)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addSSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_addSSHJobSubmissionProtocol_pargs args;
+  args.computeResourceId = &computeResourceId;
+  args.jobSubmission = &jobSubmission;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_addSSHJobSubmissionProtocol(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addComputeResourceDescription_presult result;
+  if (fname.compare("addSSHJobSubmissionProtocol") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_addSSHJobSubmissionProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5176,21 +6179,21 @@ void ApplicationCatalogAPIClient::recv_addComputeResourceDescription(std::string
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addComputeResourceDescription failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addSSHJobSubmissionProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::addSSHJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::SSHJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::addGSISSHJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::GSISSHJobSubmission& jobSubmission)
 {
-  send_addSSHJobSubmissionProtocol(computeResourceId, jobSubmission);
-  recv_addSSHJobSubmissionProtocol(_return);
+  send_addGSISSHJobSubmissionProtocol(computeResourceId, jobSubmission);
+  recv_addGSISSHJobSubmissionProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_addSSHJobSubmissionProtocol(const std::string& computeResourceId, const  ::SSHJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::send_addGSISSHJobSubmissionProtocol(const std::string& computeResourceId, const  ::GSISSHJobSubmission& jobSubmission)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addSSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("addGSISSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_addSSHJobSubmissionProtocol_pargs args;
+  ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_pargs args;
   args.computeResourceId = &computeResourceId;
   args.jobSubmission = &jobSubmission;
   args.write(oprot_);
@@ -5200,7 +6203,7 @@ void ApplicationCatalogAPIClient::send_addSSHJobSubmissionProtocol(const std::st
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_addSSHJobSubmissionProtocol(std::string& _return)
+void ApplicationCatalogAPIClient::recv_addGSISSHJobSubmissionProtocol(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -5220,12 +6223,12 @@ void ApplicationCatalogAPIClient::recv_addSSHJobSubmissionProtocol(std::string&
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addSSHJobSubmissionProtocol") != 0) {
+  if (fname.compare("addGSISSHJobSubmissionProtocol") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addSSHJobSubmissionProtocol_presult result;
+  ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5244,23 +6247,225 @@ void ApplicationCatalogAPIClient::recv_addSSHJobSubmissionProtocol(std::string&
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addSSHJobSubmissionProtocol failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGSISSHJobSubmissionProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::addGSISSHJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::GSISSHJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::addGlobusJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::GlobusJobSubmission& jobSubmission)
+{
+  send_addGlobusJobSubmissionProtocol(computeResourceId, jobSubmission);
+  recv_addGlobusJobSubmissionProtocol(_return);
+}
+
+void ApplicationCatalogAPIClient::send_addGlobusJobSubmissionProtocol(const std::string& computeResourceId, const  ::GlobusJobSubmission& jobSubmission)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addGlobusJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_pargs args;
+  args.computeResourceId = &computeResourceId;
+  args.jobSubmission = &jobSubmission;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_addGlobusJobSubmissionProtocol(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("addGlobusJobSubmissionProtocol") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGlobusJobSubmissionProtocol failed: unknown result");
+}
+
+void ApplicationCatalogAPIClient::addSCPDataMovementProtocol(std::string& _return, const std::string& computeResourceId, const  ::SCPDataMovement& dataMovement)
+{
+  send_addSCPDataMovementProtocol(computeResourceId, dataMovement);
+  recv_addSCPDataMovementProtocol(_return);
+}
+
+void ApplicationCatalogAPIClient::send_addSCPDataMovementProtocol(const std::string& computeResourceId, const  ::SCPDataMovement& dataMovement)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addSCPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_addSCPDataMovementProtocol_pargs args;
+  args.computeResourceId = &computeResourceId;
+  args.dataMovement = &dataMovement;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_addSCPDataMovementProtocol(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("addSCPDataMovementProtocol") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_addSCPDataMovementProtocol_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addSCPDataMovementProtocol failed: unknown result");
+}
+
+void ApplicationCatalogAPIClient::addGridFTPDataMovementProtocol(std::string& _return, const std::string& computeResourceId, const  ::GridFTPDataMovement& dataMovement)
+{
+  send_addGridFTPDataMovementProtocol(computeResourceId, dataMovement);
+  recv_addGridFTPDataMovementProtocol(_return);
+}
+
+void ApplicationCatalogAPIClient::send_addGridFTPDataMovementProtocol(const std::string& computeResourceId, const  ::GridFTPDataMovement& dataMovement)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addGridFTPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  ApplicationCatalogAPI_addGridFTPDataMovementProtocol_pargs args;
+  args.computeResourceId = &computeResourceId;
+  args.dataMovement = &dataMovement;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void ApplicationCatalogAPIClient::recv_addGridFTPDataMovementProtocol(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("addGridFTPDataMovementProtocol") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  ApplicationCatalogAPI_addGridFTPDataMovementProtocol_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGridFTPDataMovementProtocol failed: unknown result");
+}
+
+void ApplicationCatalogAPIClient::listComputeResourceDescriptions(std::vector<std::string> & _return)
 {
-  send_addGSISSHJobSubmissionProtocol(computeResourceId, jobSubmission);
-  recv_addGSISSHJobSubmissionProtocol(_return);
+  send_listComputeResourceDescriptions();
+  recv_listComputeResourceDescriptions(_return);
 }
 
-void ApplicationCatalogAPIClient::send_addGSISSHJobSubmissionProtocol(const std::string& computeResourceId, const  ::GSISSHJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::send_listComputeResourceDescriptions()
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addGSISSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("listComputeResourceDescriptions", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_pargs args;
-  args.computeResourceId = &computeResourceId;
-  args.jobSubmission = &jobSubmission;
+  ApplicationCatalogAPI_listComputeResourceDescriptions_pargs args;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5268,7 +6473,7 @@ void ApplicationCatalogAPIClient::send_addGSISSHJobSubmissionProtocol(const std:
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_addGSISSHJobSubmissionProtocol(std::string& _return)
+void ApplicationCatalogAPIClient::recv_listComputeResourceDescriptions(std::vector<std::string> & _return)
 {
 
   int32_t rseqid = 0;
@@ -5288,12 +6493,12 @@ void ApplicationCatalogAPIClient::recv_addGSISSHJobSubmissionProtocol(std::strin
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addGSISSHJobSubmissionProtocol") != 0) {
+  if (fname.compare("listComputeResourceDescriptions") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_presult result;
+  ApplicationCatalogAPI_listComputeResourceDescriptions_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5312,23 +6517,22 @@ void ApplicationCatalogAPIClient::recv_addGSISSHJobSubmissionProtocol(std::strin
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGSISSHJobSubmissionProtocol failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "listComputeResourceDescriptions failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::addGlobusJobSubmissionProtocol(std::string& _return, const std::string& computeResourceId, const  ::GlobusJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::getComputeResourceDescription( ::ComputeResourceDescription& _return, const std::string& computeResourceId)
 {
-  send_addGlobusJobSubmissionProtocol(computeResourceId, jobSubmission);
-  recv_addGlobusJobSubmissionProtocol(_return);
+  send_getComputeResourceDescription(computeResourceId);
+  recv_getComputeResourceDescription(_return);
 }
 
-void ApplicationCatalogAPIClient::send_addGlobusJobSubmissionProtocol(const std::string& computeResourceId, const  ::GlobusJobSubmission& jobSubmission)
+void ApplicationCatalogAPIClient::send_getComputeResourceDescription(const std::string& computeResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addGlobusJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getComputeResourceDescription", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_pargs args;
+  ApplicationCatalogAPI_getComputeResourceDescription_pargs args;
   args.computeResourceId = &computeResourceId;
-  args.jobSubmission = &jobSubmission;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5336,7 +6540,7 @@ void ApplicationCatalogAPIClient::send_addGlobusJobSubmissionProtocol(const std:
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_addGlobusJobSubmissionProtocol(std::string& _return)
+void ApplicationCatalogAPIClient::recv_getComputeResourceDescription( ::ComputeResourceDescription& _return)
 {
 
   int32_t rseqid = 0;
@@ -5356,12 +6560,12 @@ void ApplicationCatalogAPIClient::recv_addGlobusJobSubmissionProtocol(std::strin
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addGlobusJobSubmissionProtocol") != 0) {
+  if (fname.compare("getComputeResourceDescription") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_presult result;
+  ApplicationCatalogAPI_getComputeResourceDescription_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5380,23 +6584,22 @@ void ApplicationCatalogAPIClient::recv_addGlobusJobSubmissionProtocol(std::strin
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGlobusJobSubmissionProtocol failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getComputeResourceDescription failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::addSCPDataMovementProtocol(std::string& _return, const std::string& computeResourceId, const  ::SCPDataMovement& dataMovement)
+void ApplicationCatalogAPIClient::getSSHJobSubmissionProtocol( ::SSHJobSubmission& _return, const std::string& sshJobSubmissionProtocolResourceId)
 {
-  send_addSCPDataMovementProtocol(computeResourceId, dataMovement);
-  recv_addSCPDataMovementProtocol(_return);
+  send_getSSHJobSubmissionProtocol(sshJobSubmissionProtocolResourceId);
+  recv_getSSHJobSubmissionProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_addSCPDataMovementProtocol(const std::string& computeResourceId, const  ::SCPDataMovement& dataMovement)
+void ApplicationCatalogAPIClient::send_getSSHJobSubmissionProtocol(const std::string& sshJobSubmissionProtocolResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addSCPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getSSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_addSCPDataMovementProtocol_pargs args;
-  args.computeResourceId = &computeResourceId;
-  args.dataMovement = &dataMovement;
+  ApplicationCatalogAPI_getSSHJobSubmissionProtocol_pargs args;
+  args.sshJobSubmissionProtocolResourceId = &sshJobSubmissionProtocolResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5404,7 +6607,7 @@ void ApplicationCatalogAPIClient::send_addSCPDataMovementProtocol(const std::str
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_addSCPDataMovementProtocol(std::string& _return)
+void ApplicationCatalogAPIClient::recv_getSSHJobSubmissionProtocol( ::SSHJobSubmission& _return)
 {
 
   int32_t rseqid = 0;
@@ -5424,12 +6627,12 @@ void ApplicationCatalogAPIClient::recv_addSCPDataMovementProtocol(std::string& _
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addSCPDataMovementProtocol") != 0) {
+  if (fname.compare("getSSHJobSubmissionProtocol") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addSCPDataMovementProtocol_presult result;
+  ApplicationCatalogAPI_getSSHJobSubmissionProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5448,23 +6651,22 @@ void ApplicationCatalogAPIClient::recv_addSCPDataMovementProtocol(std::string& _
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addSCPDataMovementProtocol failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getSSHJobSubmissionProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::addGridFTPDataMovementProtocol(std::string& _return, const std::string& computeResourceId, const  ::GridFTPDataMovement& dataMovement)
+void ApplicationCatalogAPIClient::getGSISSHJobSubmissionProtocol( ::GSISSHJobSubmission& _return, const std::string& gsisshJobSubmissionProtocolResourceId)
 {
-  send_addGridFTPDataMovementProtocol(computeResourceId, dataMovement);
-  recv_addGridFTPDataMovementProtocol(_return);
+  send_getGSISSHJobSubmissionProtocol(gsisshJobSubmissionProtocolResourceId);
+  recv_getGSISSHJobSubmissionProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_addGridFTPDataMovementProtocol(const std::string& computeResourceId, const  ::GridFTPDataMovement& dataMovement)
+void ApplicationCatalogAPIClient::send_getGSISSHJobSubmissionProtocol(const std::string& gsisshJobSubmissionProtocolResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addGridFTPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getGSISSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_addGridFTPDataMovementProtocol_pargs args;
-  args.computeResourceId = &computeResourceId;
-  args.dataMovement = &dataMovement;
+  ApplicationCatalogAPI_getGSISSHJobSubmissionProtocol_pargs args;
+  args.gsisshJobSubmissionProtocolResourceId = &gsisshJobSubmissionProtocolResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5472,7 +6674,7 @@ void ApplicationCatalogAPIClient::send_addGridFTPDataMovementProtocol(const std:
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_addGridFTPDataMovementProtocol(std::string& _return)
+void ApplicationCatalogAPIClient::recv_getGSISSHJobSubmissionProtocol( ::GSISSHJobSubmission& _return)
 {
 
   int32_t rseqid = 0;
@@ -5492,12 +6694,12 @@ void ApplicationCatalogAPIClient::recv_addGridFTPDataMovementProtocol(std::strin
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addGridFTPDataMovementProtocol") != 0) {
+  if (fname.compare("getGSISSHJobSubmissionProtocol") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_addGridFTPDataMovementProtocol_presult result;
+  ApplicationCatalogAPI_getGSISSHJobSubmissionProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5516,21 +6718,22 @@ void ApplicationCatalogAPIClient::recv_addGridFTPDataMovementProtocol(std::strin
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGridFTPDataMovementProtocol failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGSISSHJobSubmissionProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::listComputeResourceDescriptions(std::vector<std::string> & _return)
+void ApplicationCatalogAPIClient::getGlobusJobSubmissionProtocol( ::GlobusJobSubmission& _return, const std::string& globusJobSubmissionProtocolResourceId)
 {
-  send_listComputeResourceDescriptions();
-  recv_listComputeResourceDescriptions(_return);
+  send_getGlobusJobSubmissionProtocol(globusJobSubmissionProtocolResourceId);
+  recv_getGlobusJobSubmissionProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_listComputeResourceDescriptions()
+void ApplicationCatalogAPIClient::send_getGlobusJobSubmissionProtocol(const std::string& globusJobSubmissionProtocolResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("listComputeResourceDescriptions", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getGlobusJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_listComputeResourceDescriptions_pargs args;
+  ApplicationCatalogAPI_getGlobusJobSubmissionProtocol_pargs args;
+  args.globusJobSubmissionProtocolResourceId = &globusJobSubmissionProtocolResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5538,7 +6741,7 @@ void ApplicationCatalogAPIClient::send_listComputeResourceDescriptions()
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_listComputeResourceDescriptions(std::vector<std::string> & _return)
+void ApplicationCatalogAPIClient::recv_getGlobusJobSubmissionProtocol( ::GlobusJobSubmission& _return)
 {
 
   int32_t rseqid = 0;
@@ -5558,12 +6761,12 @@ void ApplicationCatalogAPIClient::recv_listComputeResourceDescriptions(std::vect
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("listComputeResourceDescriptions") != 0) {
+  if (fname.compare("getGlobusJobSubmissionProtocol") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_listComputeResourceDescriptions_presult result;
+  ApplicationCatalogAPI_getGlobusJobSubmissionProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5582,22 +6785,22 @@ void ApplicationCatalogAPIClient::recv_listComputeResourceDescriptions(std::vect
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "listComputeResourceDescriptions failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGlobusJobSubmissionProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::getComputeResourceDescription( ::ComputeResourceDescription& _return, const std::string& computeResourceId)
+void ApplicationCatalogAPIClient::getSCPDataMovementProtocol( ::SCPDataMovement& _return, const std::string& scpDataMovementResourceId)
 {
-  send_getComputeResourceDescription(computeResourceId);
-  recv_getComputeResourceDescription(_return);
+  send_getSCPDataMovementProtocol(scpDataMovementResourceId);
+  recv_getSCPDataMovementProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_getComputeResourceDescription(const std::string& computeResourceId)
+void ApplicationCatalogAPIClient::send_getSCPDataMovementProtocol(const std::string& scpDataMovementResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getComputeResourceDescription", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getSCPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_getComputeResourceDescription_pargs args;
-  args.computeResourceId = &computeResourceId;
+  ApplicationCatalogAPI_getSCPDataMovementProtocol_pargs args;
+  args.scpDataMovementResourceId = &scpDataMovementResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5605,7 +6808,7 @@ void ApplicationCatalogAPIClient::send_getComputeResourceDescription(const std::
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_getComputeResourceDescription( ::ComputeResourceDescription& _return)
+void ApplicationCatalogAPIClient::recv_getSCPDataMovementProtocol( ::SCPDataMovement& _return)
 {
 
   int32_t rseqid = 0;
@@ -5625,12 +6828,12 @@ void ApplicationCatalogAPIClient::recv_getComputeResourceDescription( ::ComputeR
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getComputeResourceDescription") != 0) {
+  if (fname.compare("getSCPDataMovementProtocol") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  ApplicationCatalogAPI_getComputeResourceDescription_presult result;
+  ApplicationCatalogAPI_getSCPDataMovementProtocol_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -5649,22 +6852,22 @@ void ApplicationCatalogAPIClient::recv_getComputeResourceDescription( ::ComputeR
   if (result.__isset.ase) {
     throw result.ase;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getComputeResourceDescription failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getSCPDataMovementProtocol failed: unknown result");
 }
 
-void ApplicationCatalogAPIClient::getSSHJobSubmissionProtocol( ::SSHJobSubmission& _return, const std::string& sshJobSubmissionProtocolResourceId)
+void ApplicationCatalogAPIClient::getGridFTPDataMovementProtocol( ::GridFTPDataMovement& _return, const std::string& gridFTPDataMovementResourceId)
 {
-  send_getSSHJobSubmissionProtocol(sshJobSubmissionProtocolResourceId);
-  recv_getSSHJobSubmissionProtocol(_return);
+  send_getGridFTPDataMovementProtocol(gridFTPDataMovementResourceId);
+  recv_getGridFTPDataMovementProtocol(_return);
 }
 
-void ApplicationCatalogAPIClient::send_getSSHJobSubmissionProtocol(const std::string& sshJobSubmissionProtocolResourceId)
+void ApplicationCatalogAPIClient::send_getGridFTPDataMovementProtocol(const std::string& gridFTPDataMovementResourceId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getSSHJobSubmissionProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getGridFTPDataMovementProtocol", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  ApplicationCatalogAPI_getSSHJobSubmissionProtocol_pargs args;
-  args.sshJobSubmissionProtocolResourceId = &sshJobSubmissionProtocolResourceId;
+  ApplicationCatalogAPI_getGridFTPDataMovementProtocol_pargs args;
+  args.gridFTPDataMovementResourceId = &gridFTPDataMovementResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -5672,7 +6875,7 @@ void ApplicationCatalogAPIClient::send_getSSHJobSubmissionProtocol(const std::st
   oprot_->getTransport()->flush();
 }
 
-void ApplicationCatalogAPIClient::recv_getSSHJobSubmissionProtocol( ::SSHJobSubmission& _return)
+void ApplicationCatalogAPIClient::recv_getGridFTPDataMovementProtocol( ::GridFTPDataMovement& _return)
 {
 
   int32_t rseqid = 0;
@@ -5692,12 +6895,12 @@ void ApplicationCatalogAPIClient::recv_getSSHJobSubmissionProtocol( ::SSHJobSubm
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getSSHJobSubmissionProtocol") != 0) {
+  if (fna

<TRUNCATED>

[07/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/AppCatalog/ApplicationCatalogAPI.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/AppCatalog/ApplicationCatalogAPI.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/AppCatalog/ApplicationCatalogAPI.php
index e2082cb..4b01af2 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/AppCatalog/ApplicationCatalogAPI.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/AppCatalog/ApplicationCatalogAPI.php
@@ -18,12 +18,12 @@ use Thrift\Exception\TApplicationException;
 
 interface ApplicationCatalogAPIIf {
   public function GetAPIVersion();
-  public function addComputeResourceDescription(\Airavata\Model\AppCatalog\ComputeResourceDescription $computeResourceDescription);
-  public function addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\SSHJobSubmission $jobSubmission);
-  public function addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GSISSHJobSubmission $jobSubmission);
-  public function addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GlobusJobSubmission $jobSubmission);
-  public function addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\SCPDataMovement $dataMovement);
-  public function addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\GridFTPDataMovement $dataMovement);
+  public function addComputeResourceDescription(\Airavata\Model\ComputeHost\ComputeResourceDescription $computeResourceDescription);
+  public function addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\SSHJobSubmission $jobSubmission);
+  public function addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GSISSHJobSubmission $jobSubmission);
+  public function addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GlobusJobSubmission $jobSubmission);
+  public function addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\SCPDataMovement $dataMovement);
+  public function addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\GridFTPDataMovement $dataMovement);
   public function listComputeResourceDescriptions();
   public function getComputeResourceDescription($computeResourceId);
   public function getSSHJobSubmissionProtocol($sshJobSubmissionProtocolResourceId);
@@ -33,10 +33,14 @@ interface ApplicationCatalogAPIIf {
   public function getGridFTPDataMovementProtocol($gridFTPDataMovementResourceId);
   public function isComputeResourceDescriptionRegistered($hostName);
   public function getComputeResourceDescriptionFromHostName($hostName);
-  public function addApplicationInterface(\Airavata\Model\AppCatalog\ApplicationInterface $applicationInterface);
+  public function addApplicationInterface(\Airavata\Model\Application\Interface\ApplicationInterfaceDescription $applicationInterface);
   public function listApplicationInterfaceIds();
   public function getApplicationInterface($applicationInterfaceId);
-  public function addApplicationDeployment($applicationInterfaceId, \Airavata\Model\AppCatalog\ApplicationDeployment $applicationDeployment);
+  public function registerAppicationModule(\Airavata\Model\Application\Deployment\ApplicationModule $applicationModule, $publish);
+  public function getAppicationModule($appModuleId);
+  public function updateAppicationModule($appModuleId, \Airavata\Model\Application\Deployment\ApplicationModule $applicationModule);
+  public function deleteAppicationModule($appModuleId);
+  public function addApplicationDeployment($applicationInterfaceId, \Airavata\Model\Application\Deployment\ApplicationDeploymentDescription $applicationDeployment);
   public function listApplicationDeploymentIds($applicationInterfaceId);
   public function getApplicationDeployment($applicationInterfaceId, $applicationDeploymentId);
 }
@@ -102,13 +106,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("GetAPIVersion failed: unknown result");
   }
 
-  public function addComputeResourceDescription(\Airavata\Model\AppCatalog\ComputeResourceDescription $computeResourceDescription)
+  public function addComputeResourceDescription(\Airavata\Model\ComputeHost\ComputeResourceDescription $computeResourceDescription)
   {
     $this->send_addComputeResourceDescription($computeResourceDescription);
     return $this->recv_addComputeResourceDescription();
   }
 
-  public function send_addComputeResourceDescription(\Airavata\Model\AppCatalog\ComputeResourceDescription $computeResourceDescription)
+  public function send_addComputeResourceDescription(\Airavata\Model\ComputeHost\ComputeResourceDescription $computeResourceDescription)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addComputeResourceDescription_args();
     $args->computeResourceDescription = $computeResourceDescription;
@@ -162,13 +166,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("addComputeResourceDescription failed: unknown result");
   }
 
-  public function addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\SSHJobSubmission $jobSubmission)
+  public function addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\SSHJobSubmission $jobSubmission)
   {
     $this->send_addSSHJobSubmissionProtocol($computeResourceId, $jobSubmission);
     return $this->recv_addSSHJobSubmissionProtocol();
   }
 
-  public function send_addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\SSHJobSubmission $jobSubmission)
+  public function send_addSSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\SSHJobSubmission $jobSubmission)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addSSHJobSubmissionProtocol_args();
     $args->computeResourceId = $computeResourceId;
@@ -223,13 +227,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("addSSHJobSubmissionProtocol failed: unknown result");
   }
 
-  public function addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GSISSHJobSubmission $jobSubmission)
+  public function addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GSISSHJobSubmission $jobSubmission)
   {
     $this->send_addGSISSHJobSubmissionProtocol($computeResourceId, $jobSubmission);
     return $this->recv_addGSISSHJobSubmissionProtocol();
   }
 
-  public function send_addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GSISSHJobSubmission $jobSubmission)
+  public function send_addGSISSHJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GSISSHJobSubmission $jobSubmission)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_args();
     $args->computeResourceId = $computeResourceId;
@@ -284,13 +288,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("addGSISSHJobSubmissionProtocol failed: unknown result");
   }
 
-  public function addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GlobusJobSubmission $jobSubmission)
+  public function addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GlobusJobSubmission $jobSubmission)
   {
     $this->send_addGlobusJobSubmissionProtocol($computeResourceId, $jobSubmission);
     return $this->recv_addGlobusJobSubmissionProtocol();
   }
 
-  public function send_addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\AppCatalog\GlobusJobSubmission $jobSubmission)
+  public function send_addGlobusJobSubmissionProtocol($computeResourceId, \Airavata\Model\ComputeHost\GlobusJobSubmission $jobSubmission)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_args();
     $args->computeResourceId = $computeResourceId;
@@ -345,13 +349,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("addGlobusJobSubmissionProtocol failed: unknown result");
   }
 
-  public function addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\SCPDataMovement $dataMovement)
+  public function addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\SCPDataMovement $dataMovement)
   {
     $this->send_addSCPDataMovementProtocol($computeResourceId, $dataMovement);
     return $this->recv_addSCPDataMovementProtocol();
   }
 
-  public function send_addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\SCPDataMovement $dataMovement)
+  public function send_addSCPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\SCPDataMovement $dataMovement)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addSCPDataMovementProtocol_args();
     $args->computeResourceId = $computeResourceId;
@@ -406,13 +410,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("addSCPDataMovementProtocol failed: unknown result");
   }
 
-  public function addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\GridFTPDataMovement $dataMovement)
+  public function addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\GridFTPDataMovement $dataMovement)
   {
     $this->send_addGridFTPDataMovementProtocol($computeResourceId, $dataMovement);
     return $this->recv_addGridFTPDataMovementProtocol();
   }
 
-  public function send_addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\AppCatalog\GridFTPDataMovement $dataMovement)
+  public function send_addGridFTPDataMovementProtocol($computeResourceId, \Airavata\Model\ComputeHost\GridFTPDataMovement $dataMovement)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addGridFTPDataMovementProtocol_args();
     $args->computeResourceId = $computeResourceId;
@@ -1006,13 +1010,13 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("getComputeResourceDescriptionFromHostName failed: unknown result");
   }
 
-  public function addApplicationInterface(\Airavata\Model\AppCatalog\ApplicationInterface $applicationInterface)
+  public function addApplicationInterface(\Airavata\Model\Application\Interface\ApplicationInterfaceDescription $applicationInterface)
   {
     $this->send_addApplicationInterface($applicationInterface);
     return $this->recv_addApplicationInterface();
   }
 
-  public function send_addApplicationInterface(\Airavata\Model\AppCatalog\ApplicationInterface $applicationInterface)
+  public function send_addApplicationInterface(\Airavata\Model\Application\Interface\ApplicationInterfaceDescription $applicationInterface)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addApplicationInterface_args();
     $args->applicationInterface = $applicationInterface;
@@ -1185,13 +1189,255 @@ class ApplicationCatalogAPIClient implements \Airavata\API\AppCatalog\Applicatio
     throw new \Exception("getApplicationInterface failed: unknown result");
   }
 
-  public function addApplicationDeployment($applicationInterfaceId, \Airavata\Model\AppCatalog\ApplicationDeployment $applicationDeployment)
+  public function registerAppicationModule(\Airavata\Model\Application\Deployment\ApplicationModule $applicationModule, $publish)
+  {
+    $this->send_registerAppicationModule($applicationModule, $publish);
+    return $this->recv_registerAppicationModule();
+  }
+
+  public function send_registerAppicationModule(\Airavata\Model\Application\Deployment\ApplicationModule $applicationModule, $publish)
+  {
+    $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_registerAppicationModule_args();
+    $args->applicationModule = $applicationModule;
+    $args->publish = $publish;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'registerAppicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('registerAppicationModule', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_registerAppicationModule()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\AppCatalog\ApplicationCatalogAPI_registerAppicationModule_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_registerAppicationModule_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("registerAppicationModule failed: unknown result");
+  }
+
+  public function getAppicationModule($appModuleId)
+  {
+    $this->send_getAppicationModule($appModuleId);
+    return $this->recv_getAppicationModule();
+  }
+
+  public function send_getAppicationModule($appModuleId)
+  {
+    $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_getAppicationModule_args();
+    $args->appModuleId = $appModuleId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAppicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAppicationModule', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAppicationModule()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\AppCatalog\ApplicationCatalogAPI_getAppicationModule_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_getAppicationModule_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("getAppicationModule failed: unknown result");
+  }
+
+  public function updateAppicationModule($appModuleId, \Airavata\Model\Application\Deployment\ApplicationModule $applicationModule)
+  {
+    $this->send_updateAppicationModule($appModuleId, $applicationModule);
+    return $this->recv_updateAppicationModule();
+  }
+
+  public function send_updateAppicationModule($appModuleId, \Airavata\Model\Application\Deployment\ApplicationModule $applicationModule)
+  {
+    $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_updateAppicationModule_args();
+    $args->appModuleId = $appModuleId;
+    $args->applicationModule = $applicationModule;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'updateAppicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('updateAppicationModule', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_updateAppicationModule()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\AppCatalog\ApplicationCatalogAPI_updateAppicationModule_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_updateAppicationModule_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("updateAppicationModule failed: unknown result");
+  }
+
+  public function deleteAppicationModule($appModuleId)
+  {
+    $this->send_deleteAppicationModule($appModuleId);
+    return $this->recv_deleteAppicationModule();
+  }
+
+  public function send_deleteAppicationModule($appModuleId)
+  {
+    $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_deleteAppicationModule_args();
+    $args->appModuleId = $appModuleId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'deleteAppicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('deleteAppicationModule', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_deleteAppicationModule()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\AppCatalog\ApplicationCatalogAPI_deleteAppicationModule_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_deleteAppicationModule_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("deleteAppicationModule failed: unknown result");
+  }
+
+  public function addApplicationDeployment($applicationInterfaceId, \Airavata\Model\Application\Deployment\ApplicationDeploymentDescription $applicationDeployment)
   {
     $this->send_addApplicationDeployment($applicationInterfaceId, $applicationDeployment);
     return $this->recv_addApplicationDeployment();
   }
 
-  public function send_addApplicationDeployment($applicationInterfaceId, \Airavata\Model\AppCatalog\ApplicationDeployment $applicationDeployment)
+  public function send_addApplicationDeployment($applicationInterfaceId, \Airavata\Model\Application\Deployment\ApplicationDeploymentDescription $applicationDeployment)
   {
     $args = new \Airavata\API\AppCatalog\ApplicationCatalogAPI_addApplicationDeployment_args();
     $args->applicationInterfaceId = $applicationInterfaceId;
@@ -1504,7 +1750,7 @@ class ApplicationCatalogAPI_addComputeResourceDescription_args {
         1 => array(
           'var' => 'computeResourceDescription',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResourceDescription',
+          'class' => '\Airavata\Model\ComputeHost\ComputeResourceDescription',
           ),
         );
     }
@@ -1536,7 +1782,7 @@ class ApplicationCatalogAPI_addComputeResourceDescription_args {
       {
         case 1:
           if ($ftype == TType::STRUCT) {
-            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResourceDescription();
+            $this->computeResourceDescription = new \Airavata\Model\ComputeHost\ComputeResourceDescription();
             $xfer += $this->computeResourceDescription->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -1724,7 +1970,7 @@ class ApplicationCatalogAPI_addSSHJobSubmissionProtocol_args {
         2 => array(
           'var' => 'jobSubmission',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\SSHJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\SSHJobSubmission',
           ),
         );
     }
@@ -1766,7 +2012,7 @@ class ApplicationCatalogAPI_addSSHJobSubmissionProtocol_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->jobSubmission = new \Airavata\Model\AppCatalog\SSHJobSubmission();
+            $this->jobSubmission = new \Airavata\Model\ComputeHost\SSHJobSubmission();
             $xfer += $this->jobSubmission->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -1959,7 +2205,7 @@ class ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_args {
         2 => array(
           'var' => 'jobSubmission',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GSISSHJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\GSISSHJobSubmission',
           ),
         );
     }
@@ -2001,7 +2247,7 @@ class ApplicationCatalogAPI_addGSISSHJobSubmissionProtocol_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->jobSubmission = new \Airavata\Model\AppCatalog\GSISSHJobSubmission();
+            $this->jobSubmission = new \Airavata\Model\ComputeHost\GSISSHJobSubmission();
             $xfer += $this->jobSubmission->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -2194,7 +2440,7 @@ class ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_args {
         2 => array(
           'var' => 'jobSubmission',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GlobusJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\GlobusJobSubmission',
           ),
         );
     }
@@ -2236,7 +2482,7 @@ class ApplicationCatalogAPI_addGlobusJobSubmissionProtocol_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->jobSubmission = new \Airavata\Model\AppCatalog\GlobusJobSubmission();
+            $this->jobSubmission = new \Airavata\Model\ComputeHost\GlobusJobSubmission();
             $xfer += $this->jobSubmission->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -2429,7 +2675,7 @@ class ApplicationCatalogAPI_addSCPDataMovementProtocol_args {
         2 => array(
           'var' => 'dataMovement',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\SCPDataMovement',
+          'class' => '\Airavata\Model\ComputeHost\SCPDataMovement',
           ),
         );
     }
@@ -2471,7 +2717,7 @@ class ApplicationCatalogAPI_addSCPDataMovementProtocol_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->dataMovement = new \Airavata\Model\AppCatalog\SCPDataMovement();
+            $this->dataMovement = new \Airavata\Model\ComputeHost\SCPDataMovement();
             $xfer += $this->dataMovement->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -2664,7 +2910,7 @@ class ApplicationCatalogAPI_addGridFTPDataMovementProtocol_args {
         2 => array(
           'var' => 'dataMovement',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GridFTPDataMovement',
+          'class' => '\Airavata\Model\ComputeHost\GridFTPDataMovement',
           ),
         );
     }
@@ -2706,7 +2952,7 @@ class ApplicationCatalogAPI_addGridFTPDataMovementProtocol_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->dataMovement = new \Airavata\Model\AppCatalog\GridFTPDataMovement();
+            $this->dataMovement = new \Airavata\Model\ComputeHost\GridFTPDataMovement();
             $xfer += $this->dataMovement->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -3183,7 +3429,7 @@ class ApplicationCatalogAPI_getComputeResourceDescription_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResourceDescription',
+          'class' => '\Airavata\Model\ComputeHost\ComputeResourceDescription',
           ),
         1 => array(
           'var' => 'ire',
@@ -3239,7 +3485,7 @@ class ApplicationCatalogAPI_getComputeResourceDescription_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\ComputeResourceDescription();
+            $this->success = new \Airavata\Model\ComputeHost\ComputeResourceDescription();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -3398,7 +3644,7 @@ class ApplicationCatalogAPI_getSSHJobSubmissionProtocol_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\SSHJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\SSHJobSubmission',
           ),
         1 => array(
           'var' => 'ire',
@@ -3454,7 +3700,7 @@ class ApplicationCatalogAPI_getSSHJobSubmissionProtocol_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\SSHJobSubmission();
+            $this->success = new \Airavata\Model\ComputeHost\SSHJobSubmission();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -3613,7 +3859,7 @@ class ApplicationCatalogAPI_getGSISSHJobSubmissionProtocol_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GSISSHJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\GSISSHJobSubmission',
           ),
         1 => array(
           'var' => 'ire',
@@ -3669,7 +3915,7 @@ class ApplicationCatalogAPI_getGSISSHJobSubmissionProtocol_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\GSISSHJobSubmission();
+            $this->success = new \Airavata\Model\ComputeHost\GSISSHJobSubmission();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -3828,7 +4074,7 @@ class ApplicationCatalogAPI_getGlobusJobSubmissionProtocol_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GlobusJobSubmission',
+          'class' => '\Airavata\Model\ComputeHost\GlobusJobSubmission',
           ),
         1 => array(
           'var' => 'ire',
@@ -3884,7 +4130,7 @@ class ApplicationCatalogAPI_getGlobusJobSubmissionProtocol_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\GlobusJobSubmission();
+            $this->success = new \Airavata\Model\ComputeHost\GlobusJobSubmission();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -4043,7 +4289,7 @@ class ApplicationCatalogAPI_getSCPDataMovementProtocol_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\SCPDataMovement',
+          'class' => '\Airavata\Model\ComputeHost\SCPDataMovement',
           ),
         1 => array(
           'var' => 'ire',
@@ -4099,7 +4345,7 @@ class ApplicationCatalogAPI_getSCPDataMovementProtocol_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\SCPDataMovement();
+            $this->success = new \Airavata\Model\ComputeHost\SCPDataMovement();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -4258,7 +4504,7 @@ class ApplicationCatalogAPI_getGridFTPDataMovementProtocol_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\GridFTPDataMovement',
+          'class' => '\Airavata\Model\ComputeHost\GridFTPDataMovement',
           ),
         1 => array(
           'var' => 'ire',
@@ -4314,7 +4560,7 @@ class ApplicationCatalogAPI_getGridFTPDataMovementProtocol_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\GridFTPDataMovement();
+            $this->success = new \Airavata\Model\ComputeHost\GridFTPDataMovement();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -4683,7 +4929,7 @@ class ApplicationCatalogAPI_getComputeResourceDescriptionFromHostName_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResourceDescription',
+          'class' => '\Airavata\Model\ComputeHost\ComputeResourceDescription',
           ),
         1 => array(
           'var' => 'ire',
@@ -4739,7 +4985,7 @@ class ApplicationCatalogAPI_getComputeResourceDescriptionFromHostName_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\ComputeResourceDescription();
+            $this->success = new \Airavata\Model\ComputeHost\ComputeResourceDescription();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -4823,7 +5069,7 @@ class ApplicationCatalogAPI_addApplicationInterface_args {
         1 => array(
           'var' => 'applicationInterface',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ApplicationInterface',
+          'class' => '\Airavata\Model\Application\Interface\ApplicationInterfaceDescription',
           ),
         );
     }
@@ -4855,7 +5101,7 @@ class ApplicationCatalogAPI_addApplicationInterface_args {
       {
         case 1:
           if ($ftype == TType::STRUCT) {
-            $this->applicationInterface = new \Airavata\Model\AppCatalog\ApplicationInterface();
+            $this->applicationInterface = new \Airavata\Model\Application\Interface\ApplicationInterfaceDescription();
             $xfer += $this->applicationInterface->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -5327,7 +5573,7 @@ class ApplicationCatalogAPI_getApplicationInterface_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ApplicationInterface',
+          'class' => '\Airavata\Model\Application\Interface\ApplicationInterfaceDescription',
           ),
         1 => array(
           'var' => 'ire',
@@ -5383,7 +5629,7 @@ class ApplicationCatalogAPI_getApplicationInterface_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\ApplicationInterface();
+            $this->success = new \Airavata\Model\Application\Interface\ApplicationInterfaceDescription();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -5456,6 +5702,901 @@ class ApplicationCatalogAPI_getApplicationInterface_result {
 
 }
 
+class ApplicationCatalogAPI_registerAppicationModule_args {
+  static $_TSPEC;
+
+  public $applicationModule = null;
+  public $publish = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'applicationModule',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Application\Deployment\ApplicationModule',
+          ),
+        2 => array(
+          'var' => 'publish',
+          'type' => TType::BOOL,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['applicationModule'])) {
+        $this->applicationModule = $vals['applicationModule'];
+      }
+      if (isset($vals['publish'])) {
+        $this->publish = $vals['publish'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_registerAppicationModule_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->applicationModule = new \Airavata\Model\Application\Deployment\ApplicationModule();
+            $xfer += $this->applicationModule->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->publish);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_registerAppicationModule_args');
+    if ($this->applicationModule !== null) {
+      if (!is_object($this->applicationModule)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('applicationModule', TType::STRUCT, 1);
+      $xfer += $this->applicationModule->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->publish !== null) {
+      $xfer += $output->writeFieldBegin('publish', TType::BOOL, 2);
+      $xfer += $output->writeBool($this->publish);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_registerAppicationModule_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRING,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_registerAppicationModule_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_registerAppicationModule_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_getAppicationModule_args {
+  static $_TSPEC;
+
+  public $appModuleId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'appModuleId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['appModuleId'])) {
+        $this->appModuleId = $vals['appModuleId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_getAppicationModule_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->appModuleId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_getAppicationModule_args');
+    if ($this->appModuleId !== null) {
+      $xfer += $output->writeFieldBegin('appModuleId', TType::STRING, 1);
+      $xfer += $output->writeString($this->appModuleId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_getAppicationModule_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Application\Deployment\ApplicationModule',
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_getAppicationModule_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\Application\Deployment\ApplicationModule();
+            $xfer += $this->success->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_getAppicationModule_result');
+    if ($this->success !== null) {
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_updateAppicationModule_args {
+  static $_TSPEC;
+
+  public $appModuleId = null;
+  public $applicationModule = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'appModuleId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'applicationModule',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Application\Deployment\ApplicationModule',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['appModuleId'])) {
+        $this->appModuleId = $vals['appModuleId'];
+      }
+      if (isset($vals['applicationModule'])) {
+        $this->applicationModule = $vals['applicationModule'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_updateAppicationModule_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->appModuleId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->applicationModule = new \Airavata\Model\Application\Deployment\ApplicationModule();
+            $xfer += $this->applicationModule->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_updateAppicationModule_args');
+    if ($this->appModuleId !== null) {
+      $xfer += $output->writeFieldBegin('appModuleId', TType::STRING, 1);
+      $xfer += $output->writeString($this->appModuleId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->applicationModule !== null) {
+      if (!is_object($this->applicationModule)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('applicationModule', TType::STRUCT, 2);
+      $xfer += $this->applicationModule->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_updateAppicationModule_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_updateAppicationModule_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_updateAppicationModule_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_deleteAppicationModule_args {
+  static $_TSPEC;
+
+  public $appModuleId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'appModuleId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['appModuleId'])) {
+        $this->appModuleId = $vals['appModuleId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_deleteAppicationModule_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->appModuleId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_deleteAppicationModule_args');
+    if ($this->appModuleId !== null) {
+      $xfer += $output->writeFieldBegin('appModuleId', TType::STRING, 1);
+      $xfer += $output->writeString($this->appModuleId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationCatalogAPI_deleteAppicationModule_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationCatalogAPI_deleteAppicationModule_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ApplicationCatalogAPI_deleteAppicationModule_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class ApplicationCatalogAPI_addApplicationDeployment_args {
   static $_TSPEC;
 
@@ -5472,7 +6613,7 @@ class ApplicationCatalogAPI_addApplicationDeployment_args {
         2 => array(
           'var' => 'applicationDeployment',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ApplicationDeployment',
+          'class' => '\Airavata\Model\Application\Deployment\ApplicationDeploymentDescription',
           ),
         );
     }
@@ -5514,7 +6655,7 @@ class ApplicationCatalogAPI_addApplicationDeployment_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->applicationDeployment = new \Airavata\Model\AppCatalog\ApplicationDeployment();
+            $this->applicationDeployment = new \Airavata\Model\Application\Deployment\ApplicationDeploymentDescription();
             $xfer += $this->applicationDeployment->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -6033,7 +7174,7 @@ class ApplicationCatalogAPI_getApplicationDeployment_result {
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ApplicationDeployment',
+          'class' => '\Airavata\Model\Application\Deployment\ApplicationDeploymentDescription',
           ),
         1 => array(
           'var' => 'ire',
@@ -6089,7 +7230,7 @@ class ApplicationCatalogAPI_getApplicationDeployment_result {
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\ApplicationDeployment();
+            $this->success = new \Airavata\Model\Application\Deployment\ApplicationDeploymentDescription();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);


[06/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ComputeResourceDescription.java
deleted file mode 100644
index 03e6c1f..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ComputeResourceDescription.java
+++ /dev/null
@@ -1,1537 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Computational Resource Description
- * 
- * resourceId:
- * 
- * hostName:
- *   Fully Qualified Host Name.
- * 
- * ipAddress:
- *   IP Addresse of the Hostname.
- * 
- * resourceDescription:
- *  A user friendly description of the hostname.
- * 
- * JobSubmissionProtocols:
- *  A computational resources may have one or more ways of submitting Jobs. This structure
- *  will hold all available mechanisms to interact with the resource.
- * 
- * DataMovementProtocol:
- *  Option to specify a prefered data movement mechanism of the available options.
- * 
- */
-@SuppressWarnings("all") public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
-
-  private static final org.apache.thrift.protocol.TField IS_EMPTY_FIELD_DESC = new org.apache.thrift.protocol.TField("isEmpty", org.apache.thrift.protocol.TType.BOOL, (short)1);
-  private static final org.apache.thrift.protocol.TField RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("hostName", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField HOST_ALIASES_FIELD_DESC = new org.apache.thrift.protocol.TField("hostAliases", org.apache.thrift.protocol.TType.SET, (short)4);
-  private static final org.apache.thrift.protocol.TField IP_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("ipAddresses", org.apache.thrift.protocol.TType.SET, (short)5);
-  private static final org.apache.thrift.protocol.TField RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField SCRATCH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("scratchLocation", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredJobSubmissionProtocol", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_PROTOCOLS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionProtocols", org.apache.thrift.protocol.TType.MAP, (short)9);
-  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_PROTOCOLS_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementProtocols", org.apache.thrift.protocol.TType.MAP, (short)10);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new ComputeResourceDescriptionStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new ComputeResourceDescriptionTupleSchemeFactory());
-  }
-
-  private boolean isEmpty; // required
-  private String resourceId; // required
-  private String hostName; // required
-  private Set<String> hostAliases; // optional
-  private Set<String> ipAddresses; // optional
-  private String resourceDescription; // optional
-  private String scratchLocation; // optional
-  private String preferredJobSubmissionProtocol; // optional
-  private Map<String,JobSubmissionProtocol> jobSubmissionProtocols; // required
-  private Map<String,DataMovementProtocol> dataMovementProtocols; // required
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    IS_EMPTY((short)1, "isEmpty"),
-    RESOURCE_ID((short)2, "resourceId"),
-    HOST_NAME((short)3, "hostName"),
-    HOST_ALIASES((short)4, "hostAliases"),
-    IP_ADDRESSES((short)5, "ipAddresses"),
-    RESOURCE_DESCRIPTION((short)6, "resourceDescription"),
-    SCRATCH_LOCATION((short)7, "scratchLocation"),
-    PREFERRED_JOB_SUBMISSION_PROTOCOL((short)8, "preferredJobSubmissionProtocol"),
-    JOB_SUBMISSION_PROTOCOLS((short)9, "jobSubmissionProtocols"),
-    DATA_MOVEMENT_PROTOCOLS((short)10, "dataMovementProtocols");
-
-    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: // IS_EMPTY
-          return IS_EMPTY;
-        case 2: // RESOURCE_ID
-          return RESOURCE_ID;
-        case 3: // HOST_NAME
-          return HOST_NAME;
-        case 4: // HOST_ALIASES
-          return HOST_ALIASES;
-        case 5: // IP_ADDRESSES
-          return IP_ADDRESSES;
-        case 6: // RESOURCE_DESCRIPTION
-          return RESOURCE_DESCRIPTION;
-        case 7: // SCRATCH_LOCATION
-          return SCRATCH_LOCATION;
-        case 8: // PREFERRED_JOB_SUBMISSION_PROTOCOL
-          return PREFERRED_JOB_SUBMISSION_PROTOCOL;
-        case 9: // JOB_SUBMISSION_PROTOCOLS
-          return JOB_SUBMISSION_PROTOCOLS;
-        case 10: // DATA_MOVEMENT_PROTOCOLS
-          return DATA_MOVEMENT_PROTOCOLS;
-        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 __ISEMPTY_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.HOST_ALIASES,_Fields.IP_ADDRESSES,_Fields.RESOURCE_DESCRIPTION,_Fields.SCRATCH_LOCATION,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL};
-  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.IS_EMPTY, new org.apache.thrift.meta_data.FieldMetaData("isEmpty", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
-    tmpMap.put(_Fields.RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("hostName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.HOST_ALIASES, new org.apache.thrift.meta_data.FieldMetaData("hostAliases", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.IP_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("ipAddresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("resourceDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SCRATCH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("scratchLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("preferredJobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_SUBMISSION_PROTOCOLS, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionProtocols", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobSubmissionProtocol.class))));
-    tmpMap.put(_Fields.DATA_MOVEMENT_PROTOCOLS, new org.apache.thrift.meta_data.FieldMetaData("dataMovementProtocols", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataMovementProtocol.class))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourceDescription.class, metaDataMap);
-  }
-
-  public ComputeResourceDescription() {
-    this.isEmpty = false;
-
-    this.resourceId = "DO_NOT_SET_AT_CLIENTS";
-
-  }
-
-  public ComputeResourceDescription(
-    boolean isEmpty,
-    String resourceId,
-    String hostName,
-    Map<String,JobSubmissionProtocol> jobSubmissionProtocols,
-    Map<String,DataMovementProtocol> dataMovementProtocols)
-  {
-    this();
-    this.isEmpty = isEmpty;
-    setIsEmptyIsSet(true);
-    this.resourceId = resourceId;
-    this.hostName = hostName;
-    this.jobSubmissionProtocols = jobSubmissionProtocols;
-    this.dataMovementProtocols = dataMovementProtocols;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public ComputeResourceDescription(ComputeResourceDescription other) {
-    __isset_bitfield = other.__isset_bitfield;
-    this.isEmpty = other.isEmpty;
-    if (other.isSetResourceId()) {
-      this.resourceId = other.resourceId;
-    }
-    if (other.isSetHostName()) {
-      this.hostName = other.hostName;
-    }
-    if (other.isSetHostAliases()) {
-      Set<String> __this__hostAliases = new HashSet<String>(other.hostAliases);
-      this.hostAliases = __this__hostAliases;
-    }
-    if (other.isSetIpAddresses()) {
-      Set<String> __this__ipAddresses = new HashSet<String>(other.ipAddresses);
-      this.ipAddresses = __this__ipAddresses;
-    }
-    if (other.isSetResourceDescription()) {
-      this.resourceDescription = other.resourceDescription;
-    }
-    if (other.isSetScratchLocation()) {
-      this.scratchLocation = other.scratchLocation;
-    }
-    if (other.isSetPreferredJobSubmissionProtocol()) {
-      this.preferredJobSubmissionProtocol = other.preferredJobSubmissionProtocol;
-    }
-    if (other.isSetJobSubmissionProtocols()) {
-      Map<String,JobSubmissionProtocol> __this__jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(other.jobSubmissionProtocols.size());
-      for (Map.Entry<String, JobSubmissionProtocol> other_element : other.jobSubmissionProtocols.entrySet()) {
-
-        String other_element_key = other_element.getKey();
-        JobSubmissionProtocol other_element_value = other_element.getValue();
-
-        String __this__jobSubmissionProtocols_copy_key = other_element_key;
-
-        JobSubmissionProtocol __this__jobSubmissionProtocols_copy_value = other_element_value;
-
-        __this__jobSubmissionProtocols.put(__this__jobSubmissionProtocols_copy_key, __this__jobSubmissionProtocols_copy_value);
-      }
-      this.jobSubmissionProtocols = __this__jobSubmissionProtocols;
-    }
-    if (other.isSetDataMovementProtocols()) {
-      Map<String,DataMovementProtocol> __this__dataMovementProtocols = new HashMap<String,DataMovementProtocol>(other.dataMovementProtocols.size());
-      for (Map.Entry<String, DataMovementProtocol> other_element : other.dataMovementProtocols.entrySet()) {
-
-        String other_element_key = other_element.getKey();
-        DataMovementProtocol other_element_value = other_element.getValue();
-
-        String __this__dataMovementProtocols_copy_key = other_element_key;
-
-        DataMovementProtocol __this__dataMovementProtocols_copy_value = other_element_value;
-
-        __this__dataMovementProtocols.put(__this__dataMovementProtocols_copy_key, __this__dataMovementProtocols_copy_value);
-      }
-      this.dataMovementProtocols = __this__dataMovementProtocols;
-    }
-  }
-
-  public ComputeResourceDescription deepCopy() {
-    return new ComputeResourceDescription(this);
-  }
-
-  @Override
-  public void clear() {
-    this.isEmpty = false;
-
-    this.resourceId = "DO_NOT_SET_AT_CLIENTS";
-
-    this.hostName = null;
-    this.hostAliases = null;
-    this.ipAddresses = null;
-    this.resourceDescription = null;
-    this.scratchLocation = null;
-    this.preferredJobSubmissionProtocol = null;
-    this.jobSubmissionProtocols = null;
-    this.dataMovementProtocols = null;
-  }
-
-  public boolean isIsEmpty() {
-    return this.isEmpty;
-  }
-
-  public void setIsEmpty(boolean isEmpty) {
-    this.isEmpty = isEmpty;
-    setIsEmptyIsSet(true);
-  }
-
-  public void unsetIsEmpty() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
-  }
-
-  /** Returns true if field isEmpty is set (has been assigned a value) and false otherwise */
-  public boolean isSetIsEmpty() {
-    return EncodingUtils.testBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
-  }
-
-  public void setIsEmptyIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISEMPTY_ISSET_ID, value);
-  }
-
-  public String getResourceId() {
-    return this.resourceId;
-  }
-
-  public void setResourceId(String resourceId) {
-    this.resourceId = resourceId;
-  }
-
-  public void unsetResourceId() {
-    this.resourceId = null;
-  }
-
-  /** Returns true if field resourceId is set (has been assigned a value) and false otherwise */
-  public boolean isSetResourceId() {
-    return this.resourceId != null;
-  }
-
-  public void setResourceIdIsSet(boolean value) {
-    if (!value) {
-      this.resourceId = null;
-    }
-  }
-
-  public String getHostName() {
-    return this.hostName;
-  }
-
-  public void setHostName(String hostName) {
-    this.hostName = hostName;
-  }
-
-  public void unsetHostName() {
-    this.hostName = null;
-  }
-
-  /** Returns true if field hostName is set (has been assigned a value) and false otherwise */
-  public boolean isSetHostName() {
-    return this.hostName != null;
-  }
-
-  public void setHostNameIsSet(boolean value) {
-    if (!value) {
-      this.hostName = null;
-    }
-  }
-
-  public int getHostAliasesSize() {
-    return (this.hostAliases == null) ? 0 : this.hostAliases.size();
-  }
-
-  public java.util.Iterator<String> getHostAliasesIterator() {
-    return (this.hostAliases == null) ? null : this.hostAliases.iterator();
-  }
-
-  public void addToHostAliases(String elem) {
-    if (this.hostAliases == null) {
-      this.hostAliases = new HashSet<String>();
-    }
-    this.hostAliases.add(elem);
-  }
-
-  public Set<String> getHostAliases() {
-    return this.hostAliases;
-  }
-
-  public void setHostAliases(Set<String> hostAliases) {
-    this.hostAliases = hostAliases;
-  }
-
-  public void unsetHostAliases() {
-    this.hostAliases = null;
-  }
-
-  /** Returns true if field hostAliases is set (has been assigned a value) and false otherwise */
-  public boolean isSetHostAliases() {
-    return this.hostAliases != null;
-  }
-
-  public void setHostAliasesIsSet(boolean value) {
-    if (!value) {
-      this.hostAliases = null;
-    }
-  }
-
-  public int getIpAddressesSize() {
-    return (this.ipAddresses == null) ? 0 : this.ipAddresses.size();
-  }
-
-  public java.util.Iterator<String> getIpAddressesIterator() {
-    return (this.ipAddresses == null) ? null : this.ipAddresses.iterator();
-  }
-
-  public void addToIpAddresses(String elem) {
-    if (this.ipAddresses == null) {
-      this.ipAddresses = new HashSet<String>();
-    }
-    this.ipAddresses.add(elem);
-  }
-
-  public Set<String> getIpAddresses() {
-    return this.ipAddresses;
-  }
-
-  public void setIpAddresses(Set<String> ipAddresses) {
-    this.ipAddresses = ipAddresses;
-  }
-
-  public void unsetIpAddresses() {
-    this.ipAddresses = null;
-  }
-
-  /** Returns true if field ipAddresses is set (has been assigned a value) and false otherwise */
-  public boolean isSetIpAddresses() {
-    return this.ipAddresses != null;
-  }
-
-  public void setIpAddressesIsSet(boolean value) {
-    if (!value) {
-      this.ipAddresses = null;
-    }
-  }
-
-  public String getResourceDescription() {
-    return this.resourceDescription;
-  }
-
-  public void setResourceDescription(String resourceDescription) {
-    this.resourceDescription = resourceDescription;
-  }
-
-  public void unsetResourceDescription() {
-    this.resourceDescription = null;
-  }
-
-  /** Returns true if field resourceDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetResourceDescription() {
-    return this.resourceDescription != null;
-  }
-
-  public void setResourceDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.resourceDescription = null;
-    }
-  }
-
-  public String getScratchLocation() {
-    return this.scratchLocation;
-  }
-
-  public void setScratchLocation(String scratchLocation) {
-    this.scratchLocation = scratchLocation;
-  }
-
-  public void unsetScratchLocation() {
-    this.scratchLocation = null;
-  }
-
-  /** Returns true if field scratchLocation is set (has been assigned a value) and false otherwise */
-  public boolean isSetScratchLocation() {
-    return this.scratchLocation != null;
-  }
-
-  public void setScratchLocationIsSet(boolean value) {
-    if (!value) {
-      this.scratchLocation = null;
-    }
-  }
-
-  public String getPreferredJobSubmissionProtocol() {
-    return this.preferredJobSubmissionProtocol;
-  }
-
-  public void setPreferredJobSubmissionProtocol(String preferredJobSubmissionProtocol) {
-    this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
-  }
-
-  public void unsetPreferredJobSubmissionProtocol() {
-    this.preferredJobSubmissionProtocol = null;
-  }
-
-  /** Returns true if field preferredJobSubmissionProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetPreferredJobSubmissionProtocol() {
-    return this.preferredJobSubmissionProtocol != null;
-  }
-
-  public void setPreferredJobSubmissionProtocolIsSet(boolean value) {
-    if (!value) {
-      this.preferredJobSubmissionProtocol = null;
-    }
-  }
-
-  public int getJobSubmissionProtocolsSize() {
-    return (this.jobSubmissionProtocols == null) ? 0 : this.jobSubmissionProtocols.size();
-  }
-
-  public void putToJobSubmissionProtocols(String key, JobSubmissionProtocol val) {
-    if (this.jobSubmissionProtocols == null) {
-      this.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>();
-    }
-    this.jobSubmissionProtocols.put(key, val);
-  }
-
-  public Map<String,JobSubmissionProtocol> getJobSubmissionProtocols() {
-    return this.jobSubmissionProtocols;
-  }
-
-  public void setJobSubmissionProtocols(Map<String,JobSubmissionProtocol> jobSubmissionProtocols) {
-    this.jobSubmissionProtocols = jobSubmissionProtocols;
-  }
-
-  public void unsetJobSubmissionProtocols() {
-    this.jobSubmissionProtocols = null;
-  }
-
-  /** Returns true if field jobSubmissionProtocols is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobSubmissionProtocols() {
-    return this.jobSubmissionProtocols != null;
-  }
-
-  public void setJobSubmissionProtocolsIsSet(boolean value) {
-    if (!value) {
-      this.jobSubmissionProtocols = null;
-    }
-  }
-
-  public int getDataMovementProtocolsSize() {
-    return (this.dataMovementProtocols == null) ? 0 : this.dataMovementProtocols.size();
-  }
-
-  public void putToDataMovementProtocols(String key, DataMovementProtocol val) {
-    if (this.dataMovementProtocols == null) {
-      this.dataMovementProtocols = new HashMap<String,DataMovementProtocol>();
-    }
-    this.dataMovementProtocols.put(key, val);
-  }
-
-  public Map<String,DataMovementProtocol> getDataMovementProtocols() {
-    return this.dataMovementProtocols;
-  }
-
-  public void setDataMovementProtocols(Map<String,DataMovementProtocol> dataMovementProtocols) {
-    this.dataMovementProtocols = dataMovementProtocols;
-  }
-
-  public void unsetDataMovementProtocols() {
-    this.dataMovementProtocols = null;
-  }
-
-  /** Returns true if field dataMovementProtocols is set (has been assigned a value) and false otherwise */
-  public boolean isSetDataMovementProtocols() {
-    return this.dataMovementProtocols != null;
-  }
-
-  public void setDataMovementProtocolsIsSet(boolean value) {
-    if (!value) {
-      this.dataMovementProtocols = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case IS_EMPTY:
-      if (value == null) {
-        unsetIsEmpty();
-      } else {
-        setIsEmpty((Boolean)value);
-      }
-      break;
-
-    case RESOURCE_ID:
-      if (value == null) {
-        unsetResourceId();
-      } else {
-        setResourceId((String)value);
-      }
-      break;
-
-    case HOST_NAME:
-      if (value == null) {
-        unsetHostName();
-      } else {
-        setHostName((String)value);
-      }
-      break;
-
-    case HOST_ALIASES:
-      if (value == null) {
-        unsetHostAliases();
-      } else {
-        setHostAliases((Set<String>)value);
-      }
-      break;
-
-    case IP_ADDRESSES:
-      if (value == null) {
-        unsetIpAddresses();
-      } else {
-        setIpAddresses((Set<String>)value);
-      }
-      break;
-
-    case RESOURCE_DESCRIPTION:
-      if (value == null) {
-        unsetResourceDescription();
-      } else {
-        setResourceDescription((String)value);
-      }
-      break;
-
-    case SCRATCH_LOCATION:
-      if (value == null) {
-        unsetScratchLocation();
-      } else {
-        setScratchLocation((String)value);
-      }
-      break;
-
-    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
-      if (value == null) {
-        unsetPreferredJobSubmissionProtocol();
-      } else {
-        setPreferredJobSubmissionProtocol((String)value);
-      }
-      break;
-
-    case JOB_SUBMISSION_PROTOCOLS:
-      if (value == null) {
-        unsetJobSubmissionProtocols();
-      } else {
-        setJobSubmissionProtocols((Map<String,JobSubmissionProtocol>)value);
-      }
-      break;
-
-    case DATA_MOVEMENT_PROTOCOLS:
-      if (value == null) {
-        unsetDataMovementProtocols();
-      } else {
-        setDataMovementProtocols((Map<String,DataMovementProtocol>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case IS_EMPTY:
-      return Boolean.valueOf(isIsEmpty());
-
-    case RESOURCE_ID:
-      return getResourceId();
-
-    case HOST_NAME:
-      return getHostName();
-
-    case HOST_ALIASES:
-      return getHostAliases();
-
-    case IP_ADDRESSES:
-      return getIpAddresses();
-
-    case RESOURCE_DESCRIPTION:
-      return getResourceDescription();
-
-    case SCRATCH_LOCATION:
-      return getScratchLocation();
-
-    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
-      return getPreferredJobSubmissionProtocol();
-
-    case JOB_SUBMISSION_PROTOCOLS:
-      return getJobSubmissionProtocols();
-
-    case DATA_MOVEMENT_PROTOCOLS:
-      return getDataMovementProtocols();
-
-    }
-    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 IS_EMPTY:
-      return isSetIsEmpty();
-    case RESOURCE_ID:
-      return isSetResourceId();
-    case HOST_NAME:
-      return isSetHostName();
-    case HOST_ALIASES:
-      return isSetHostAliases();
-    case IP_ADDRESSES:
-      return isSetIpAddresses();
-    case RESOURCE_DESCRIPTION:
-      return isSetResourceDescription();
-    case SCRATCH_LOCATION:
-      return isSetScratchLocation();
-    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
-      return isSetPreferredJobSubmissionProtocol();
-    case JOB_SUBMISSION_PROTOCOLS:
-      return isSetJobSubmissionProtocols();
-    case DATA_MOVEMENT_PROTOCOLS:
-      return isSetDataMovementProtocols();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof ComputeResourceDescription)
-      return this.equals((ComputeResourceDescription)that);
-    return false;
-  }
-
-  public boolean equals(ComputeResourceDescription that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_isEmpty = true;
-    boolean that_present_isEmpty = true;
-    if (this_present_isEmpty || that_present_isEmpty) {
-      if (!(this_present_isEmpty && that_present_isEmpty))
-        return false;
-      if (this.isEmpty != that.isEmpty)
-        return false;
-    }
-
-    boolean this_present_resourceId = true && this.isSetResourceId();
-    boolean that_present_resourceId = true && that.isSetResourceId();
-    if (this_present_resourceId || that_present_resourceId) {
-      if (!(this_present_resourceId && that_present_resourceId))
-        return false;
-      if (!this.resourceId.equals(that.resourceId))
-        return false;
-    }
-
-    boolean this_present_hostName = true && this.isSetHostName();
-    boolean that_present_hostName = true && that.isSetHostName();
-    if (this_present_hostName || that_present_hostName) {
-      if (!(this_present_hostName && that_present_hostName))
-        return false;
-      if (!this.hostName.equals(that.hostName))
-        return false;
-    }
-
-    boolean this_present_hostAliases = true && this.isSetHostAliases();
-    boolean that_present_hostAliases = true && that.isSetHostAliases();
-    if (this_present_hostAliases || that_present_hostAliases) {
-      if (!(this_present_hostAliases && that_present_hostAliases))
-        return false;
-      if (!this.hostAliases.equals(that.hostAliases))
-        return false;
-    }
-
-    boolean this_present_ipAddresses = true && this.isSetIpAddresses();
-    boolean that_present_ipAddresses = true && that.isSetIpAddresses();
-    if (this_present_ipAddresses || that_present_ipAddresses) {
-      if (!(this_present_ipAddresses && that_present_ipAddresses))
-        return false;
-      if (!this.ipAddresses.equals(that.ipAddresses))
-        return false;
-    }
-
-    boolean this_present_resourceDescription = true && this.isSetResourceDescription();
-    boolean that_present_resourceDescription = true && that.isSetResourceDescription();
-    if (this_present_resourceDescription || that_present_resourceDescription) {
-      if (!(this_present_resourceDescription && that_present_resourceDescription))
-        return false;
-      if (!this.resourceDescription.equals(that.resourceDescription))
-        return false;
-    }
-
-    boolean this_present_scratchLocation = true && this.isSetScratchLocation();
-    boolean that_present_scratchLocation = true && that.isSetScratchLocation();
-    if (this_present_scratchLocation || that_present_scratchLocation) {
-      if (!(this_present_scratchLocation && that_present_scratchLocation))
-        return false;
-      if (!this.scratchLocation.equals(that.scratchLocation))
-        return false;
-    }
-
-    boolean this_present_preferredJobSubmissionProtocol = true && this.isSetPreferredJobSubmissionProtocol();
-    boolean that_present_preferredJobSubmissionProtocol = true && that.isSetPreferredJobSubmissionProtocol();
-    if (this_present_preferredJobSubmissionProtocol || that_present_preferredJobSubmissionProtocol) {
-      if (!(this_present_preferredJobSubmissionProtocol && that_present_preferredJobSubmissionProtocol))
-        return false;
-      if (!this.preferredJobSubmissionProtocol.equals(that.preferredJobSubmissionProtocol))
-        return false;
-    }
-
-    boolean this_present_jobSubmissionProtocols = true && this.isSetJobSubmissionProtocols();
-    boolean that_present_jobSubmissionProtocols = true && that.isSetJobSubmissionProtocols();
-    if (this_present_jobSubmissionProtocols || that_present_jobSubmissionProtocols) {
-      if (!(this_present_jobSubmissionProtocols && that_present_jobSubmissionProtocols))
-        return false;
-      if (!this.jobSubmissionProtocols.equals(that.jobSubmissionProtocols))
-        return false;
-    }
-
-    boolean this_present_dataMovementProtocols = true && this.isSetDataMovementProtocols();
-    boolean that_present_dataMovementProtocols = true && that.isSetDataMovementProtocols();
-    if (this_present_dataMovementProtocols || that_present_dataMovementProtocols) {
-      if (!(this_present_dataMovementProtocols && that_present_dataMovementProtocols))
-        return false;
-      if (!this.dataMovementProtocols.equals(that.dataMovementProtocols))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(ComputeResourceDescription other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetIsEmpty()).compareTo(other.isSetIsEmpty());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetIsEmpty()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isEmpty, other.isEmpty);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetResourceId()).compareTo(other.isSetResourceId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetResourceId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceId, other.resourceId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetHostName()).compareTo(other.isSetHostName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetHostName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostName, other.hostName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetHostAliases()).compareTo(other.isSetHostAliases());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetHostAliases()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostAliases, other.hostAliases);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetIpAddresses()).compareTo(other.isSetIpAddresses());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetIpAddresses()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ipAddresses, other.ipAddresses);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetResourceDescription()).compareTo(other.isSetResourceDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetResourceDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceDescription, other.resourceDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetScratchLocation()).compareTo(other.isSetScratchLocation());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetScratchLocation()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scratchLocation, other.scratchLocation);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetPreferredJobSubmissionProtocol()).compareTo(other.isSetPreferredJobSubmissionProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetPreferredJobSubmissionProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredJobSubmissionProtocol, other.preferredJobSubmissionProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobSubmissionProtocols()).compareTo(other.isSetJobSubmissionProtocols());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobSubmissionProtocols()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionProtocols, other.jobSubmissionProtocols);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDataMovementProtocols()).compareTo(other.isSetDataMovementProtocols());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDataMovementProtocols()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementProtocols, other.dataMovementProtocols);
-      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("ComputeResourceDescription(");
-    boolean first = true;
-
-    sb.append("isEmpty:");
-    sb.append(this.isEmpty);
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("resourceId:");
-    if (this.resourceId == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.resourceId);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("hostName:");
-    if (this.hostName == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.hostName);
-    }
-    first = false;
-    if (isSetHostAliases()) {
-      if (!first) sb.append(", ");
-      sb.append("hostAliases:");
-      if (this.hostAliases == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.hostAliases);
-      }
-      first = false;
-    }
-    if (isSetIpAddresses()) {
-      if (!first) sb.append(", ");
-      sb.append("ipAddresses:");
-      if (this.ipAddresses == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.ipAddresses);
-      }
-      first = false;
-    }
-    if (isSetResourceDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("resourceDescription:");
-      if (this.resourceDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.resourceDescription);
-      }
-      first = false;
-    }
-    if (isSetScratchLocation()) {
-      if (!first) sb.append(", ");
-      sb.append("scratchLocation:");
-      if (this.scratchLocation == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.scratchLocation);
-      }
-      first = false;
-    }
-    if (isSetPreferredJobSubmissionProtocol()) {
-      if (!first) sb.append(", ");
-      sb.append("preferredJobSubmissionProtocol:");
-      if (this.preferredJobSubmissionProtocol == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.preferredJobSubmissionProtocol);
-      }
-      first = false;
-    }
-    if (!first) sb.append(", ");
-    sb.append("jobSubmissionProtocols:");
-    if (this.jobSubmissionProtocols == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.jobSubmissionProtocols);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("dataMovementProtocols:");
-    if (this.dataMovementProtocols == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.dataMovementProtocols);
-    }
-    first = false;
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetIsEmpty()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'isEmpty' is unset! Struct:" + toString());
-    }
-
-    if (!isSetResourceId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceId' is unset! Struct:" + toString());
-    }
-
-    if (!isSetHostName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'hostName' is unset! Struct:" + toString());
-    }
-
-    if (!isSetJobSubmissionProtocols()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocols' is unset! Struct:" + toString());
-    }
-
-    if (!isSetDataMovementProtocols()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementProtocols' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class ComputeResourceDescriptionStandardSchemeFactory implements SchemeFactory {
-    public ComputeResourceDescriptionStandardScheme getScheme() {
-      return new ComputeResourceDescriptionStandardScheme();
-    }
-  }
-
-  private static class ComputeResourceDescriptionStandardScheme extends StandardScheme<ComputeResourceDescription> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputeResourceDescription 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: // IS_EMPTY
-            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-              struct.isEmpty = iprot.readBool();
-              struct.setIsEmptyIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // RESOURCE_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.resourceId = iprot.readString();
-              struct.setResourceIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // HOST_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.hostName = iprot.readString();
-              struct.setHostNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // HOST_ALIASES
-            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
-              {
-                org.apache.thrift.protocol.TSet _set40 = iprot.readSetBegin();
-                struct.hostAliases = new HashSet<String>(2*_set40.size);
-                for (int _i41 = 0; _i41 < _set40.size; ++_i41)
-                {
-                  String _elem42;
-                  _elem42 = iprot.readString();
-                  struct.hostAliases.add(_elem42);
-                }
-                iprot.readSetEnd();
-              }
-              struct.setHostAliasesIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // IP_ADDRESSES
-            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
-              {
-                org.apache.thrift.protocol.TSet _set43 = iprot.readSetBegin();
-                struct.ipAddresses = new HashSet<String>(2*_set43.size);
-                for (int _i44 = 0; _i44 < _set43.size; ++_i44)
-                {
-                  String _elem45;
-                  _elem45 = iprot.readString();
-                  struct.ipAddresses.add(_elem45);
-                }
-                iprot.readSetEnd();
-              }
-              struct.setIpAddressesIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // RESOURCE_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.resourceDescription = iprot.readString();
-              struct.setResourceDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // SCRATCH_LOCATION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.scratchLocation = iprot.readString();
-              struct.setScratchLocationIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // PREFERRED_JOB_SUBMISSION_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.preferredJobSubmissionProtocol = iprot.readString();
-              struct.setPreferredJobSubmissionProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // JOB_SUBMISSION_PROTOCOLS
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map46 = iprot.readMapBegin();
-                struct.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(2*_map46.size);
-                for (int _i47 = 0; _i47 < _map46.size; ++_i47)
-                {
-                  String _key48;
-                  JobSubmissionProtocol _val49;
-                  _key48 = iprot.readString();
-                  _val49 = JobSubmissionProtocol.findByValue(iprot.readI32());
-                  struct.jobSubmissionProtocols.put(_key48, _val49);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setJobSubmissionProtocolsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // DATA_MOVEMENT_PROTOCOLS
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map50 = iprot.readMapBegin();
-                struct.dataMovementProtocols = new HashMap<String,DataMovementProtocol>(2*_map50.size);
-                for (int _i51 = 0; _i51 < _map50.size; ++_i51)
-                {
-                  String _key52;
-                  DataMovementProtocol _val53;
-                  _key52 = iprot.readString();
-                  _val53 = DataMovementProtocol.findByValue(iprot.readI32());
-                  struct.dataMovementProtocols.put(_key52, _val53);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setDataMovementProtocolsIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      oprot.writeFieldBegin(IS_EMPTY_FIELD_DESC);
-      oprot.writeBool(struct.isEmpty);
-      oprot.writeFieldEnd();
-      if (struct.resourceId != null) {
-        oprot.writeFieldBegin(RESOURCE_ID_FIELD_DESC);
-        oprot.writeString(struct.resourceId);
-        oprot.writeFieldEnd();
-      }
-      if (struct.hostName != null) {
-        oprot.writeFieldBegin(HOST_NAME_FIELD_DESC);
-        oprot.writeString(struct.hostName);
-        oprot.writeFieldEnd();
-      }
-      if (struct.hostAliases != null) {
-        if (struct.isSetHostAliases()) {
-          oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
-          {
-            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
-            for (String _iter54 : struct.hostAliases)
-            {
-              oprot.writeString(_iter54);
-            }
-            oprot.writeSetEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.ipAddresses != null) {
-        if (struct.isSetIpAddresses()) {
-          oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
-          {
-            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
-            for (String _iter55 : struct.ipAddresses)
-            {
-              oprot.writeString(_iter55);
-            }
-            oprot.writeSetEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.resourceDescription != null) {
-        if (struct.isSetResourceDescription()) {
-          oprot.writeFieldBegin(RESOURCE_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.resourceDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.scratchLocation != null) {
-        if (struct.isSetScratchLocation()) {
-          oprot.writeFieldBegin(SCRATCH_LOCATION_FIELD_DESC);
-          oprot.writeString(struct.scratchLocation);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.preferredJobSubmissionProtocol != null) {
-        if (struct.isSetPreferredJobSubmissionProtocol()) {
-          oprot.writeFieldBegin(PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
-          oprot.writeString(struct.preferredJobSubmissionProtocol);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobSubmissionProtocols != null) {
-        oprot.writeFieldBegin(JOB_SUBMISSION_PROTOCOLS_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.jobSubmissionProtocols.size()));
-          for (Map.Entry<String, JobSubmissionProtocol> _iter56 : struct.jobSubmissionProtocols.entrySet())
-          {
-            oprot.writeString(_iter56.getKey());
-            oprot.writeI32(_iter56.getValue().getValue());
-          }
-          oprot.writeMapEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-      if (struct.dataMovementProtocols != null) {
-        oprot.writeFieldBegin(DATA_MOVEMENT_PROTOCOLS_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.dataMovementProtocols.size()));
-          for (Map.Entry<String, DataMovementProtocol> _iter57 : struct.dataMovementProtocols.entrySet())
-          {
-            oprot.writeString(_iter57.getKey());
-            oprot.writeI32(_iter57.getValue().getValue());
-          }
-          oprot.writeMapEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class ComputeResourceDescriptionTupleSchemeFactory implements SchemeFactory {
-    public ComputeResourceDescriptionTupleScheme getScheme() {
-      return new ComputeResourceDescriptionTupleScheme();
-    }
-  }
-
-  private static class ComputeResourceDescriptionTupleScheme extends TupleScheme<ComputeResourceDescription> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeBool(struct.isEmpty);
-      oprot.writeString(struct.resourceId);
-      oprot.writeString(struct.hostName);
-      {
-        oprot.writeI32(struct.jobSubmissionProtocols.size());
-        for (Map.Entry<String, JobSubmissionProtocol> _iter58 : struct.jobSubmissionProtocols.entrySet())
-        {
-          oprot.writeString(_iter58.getKey());
-          oprot.writeI32(_iter58.getValue().getValue());
-        }
-      }
-      {
-        oprot.writeI32(struct.dataMovementProtocols.size());
-        for (Map.Entry<String, DataMovementProtocol> _iter59 : struct.dataMovementProtocols.entrySet())
-        {
-          oprot.writeString(_iter59.getKey());
-          oprot.writeI32(_iter59.getValue().getValue());
-        }
-      }
-      BitSet optionals = new BitSet();
-      if (struct.isSetHostAliases()) {
-        optionals.set(0);
-      }
-      if (struct.isSetIpAddresses()) {
-        optionals.set(1);
-      }
-      if (struct.isSetResourceDescription()) {
-        optionals.set(2);
-      }
-      if (struct.isSetScratchLocation()) {
-        optionals.set(3);
-      }
-      if (struct.isSetPreferredJobSubmissionProtocol()) {
-        optionals.set(4);
-      }
-      oprot.writeBitSet(optionals, 5);
-      if (struct.isSetHostAliases()) {
-        {
-          oprot.writeI32(struct.hostAliases.size());
-          for (String _iter60 : struct.hostAliases)
-          {
-            oprot.writeString(_iter60);
-          }
-        }
-      }
-      if (struct.isSetIpAddresses()) {
-        {
-          oprot.writeI32(struct.ipAddresses.size());
-          for (String _iter61 : struct.ipAddresses)
-          {
-            oprot.writeString(_iter61);
-          }
-        }
-      }
-      if (struct.isSetResourceDescription()) {
-        oprot.writeString(struct.resourceDescription);
-      }
-      if (struct.isSetScratchLocation()) {
-        oprot.writeString(struct.scratchLocation);
-      }
-      if (struct.isSetPreferredJobSubmissionProtocol()) {
-        oprot.writeString(struct.preferredJobSubmissionProtocol);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.isEmpty = iprot.readBool();
-      struct.setIsEmptyIsSet(true);
-      struct.resourceId = iprot.readString();
-      struct.setResourceIdIsSet(true);
-      struct.hostName = iprot.readString();
-      struct.setHostNameIsSet(true);
-      {
-        org.apache.thrift.protocol.TMap _map62 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
-        struct.jobSubmissionProtocols = new HashMap<String,JobSubmissionProtocol>(2*_map62.size);
-        for (int _i63 = 0; _i63 < _map62.size; ++_i63)
-        {
-          String _key64;
-          JobSubmissionProtocol _val65;
-          _key64 = iprot.readString();
-          _val65 = JobSubmissionProtocol.findByValue(iprot.readI32());
-          struct.jobSubmissionProtocols.put(_key64, _val65);
-        }
-      }
-      struct.setJobSubmissionProtocolsIsSet(true);
-      {
-        org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32());
-        struct.dataMovementProtocols = new HashMap<String,DataMovementProtocol>(2*_map66.size);
-        for (int _i67 = 0; _i67 < _map66.size; ++_i67)
-        {
-          String _key68;
-          DataMovementProtocol _val69;
-          _key68 = iprot.readString();
-          _val69 = DataMovementProtocol.findByValue(iprot.readI32());
-          struct.dataMovementProtocols.put(_key68, _val69);
-        }
-      }
-      struct.setDataMovementProtocolsIsSet(true);
-      BitSet incoming = iprot.readBitSet(5);
-      if (incoming.get(0)) {
-        {
-          org.apache.thrift.protocol.TSet _set70 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.hostAliases = new HashSet<String>(2*_set70.size);
-          for (int _i71 = 0; _i71 < _set70.size; ++_i71)
-          {
-            String _elem72;
-            _elem72 = iprot.readString();
-            struct.hostAliases.add(_elem72);
-          }
-        }
-        struct.setHostAliasesIsSet(true);
-      }
-      if (incoming.get(1)) {
-        {
-          org.apache.thrift.protocol.TSet _set73 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.ipAddresses = new HashSet<String>(2*_set73.size);
-          for (int _i74 = 0; _i74 < _set73.size; ++_i74)
-          {
-            String _elem75;
-            _elem75 = iprot.readString();
-            struct.ipAddresses.add(_elem75);
-          }
-        }
-        struct.setIpAddressesIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.resourceDescription = iprot.readString();
-        struct.setResourceDescriptionIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.scratchLocation = iprot.readString();
-        struct.setScratchLocationIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.preferredJobSubmissionProtocol = iprot.readString();
-        struct.setPreferredJobSubmissionProtocolIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/DataMovementProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/DataMovementProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/DataMovementProtocol.java
deleted file mode 100644
index 757f9a4..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/DataMovementProtocol.java
+++ /dev/null
@@ -1,83 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-/**
- * Enumeration of data movement supported by Airavata
- * 
- * SCP:
- *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
- * 
- * SFTP:
- *  The Simple Linux Utility for Resource Management is a open source workload manager.
- * 
- * GridFTP:
- *  Globus File Transfer Protocol
- * 
- * UNICORE_STORAGE_SERVICE:
- *  Storage Service Provided by Unicore
- * 
- */
-@SuppressWarnings("all") public enum DataMovementProtocol implements org.apache.thrift.TEnum {
-  SCP(0),
-  SFTP(1),
-  GridFTP(2),
-  UNICORE_STORAGE_SERVICE(3);
-
-  private final int value;
-
-  private DataMovementProtocol(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 DataMovementProtocol findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return SCP;
-      case 1:
-        return SFTP;
-      case 2:
-        return GridFTP;
-      case 3:
-        return UNICORE_STORAGE_SERVICE;
-      default:
-        return null;
-    }
-  }
-}


[02/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GSISSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GSISSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GSISSHJobSubmission.java
new file mode 100644
index 0000000..fd45d57
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GSISSHJobSubmission.java
@@ -0,0 +1,1262 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class GSISSHJobSubmission implements org.apache.thrift.TBase<GSISSHJobSubmission, GSISSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GSISSHJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GSISSHJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField EXPORTS_FIELD_DESC = new org.apache.thrift.protocol.TField("exports", org.apache.thrift.protocol.TType.SET, (short)4);
+  private static final org.apache.thrift.protocol.TField PRE_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("preJobCommands", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField POST_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("postJobCommands", org.apache.thrift.protocol.TType.LIST, (short)6);
+  private static final org.apache.thrift.protocol.TField INSTALLED_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("installedPath", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.STRING, (short)8);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GSISSHJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GSISSHJobSubmissionTupleSchemeFactory());
+  }
+
+  private String jobSubmissionDataID; // required
+  private ResourceJobManager resourceJobManager; // required
+  private int sshPort; // optional
+  private Set<String> exports; // optional
+  private List<String> preJobCommands; // optional
+  private List<String> postJobCommands; // optional
+  private String installedPath; // optional
+  private String monitorMode; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
+    SSH_PORT((short)3, "sshPort"),
+    EXPORTS((short)4, "exports"),
+    PRE_JOB_COMMANDS((short)5, "preJobCommands"),
+    POST_JOB_COMMANDS((short)6, "postJobCommands"),
+    INSTALLED_PATH((short)7, "installedPath"),
+    MONITOR_MODE((short)8, "monitorMode");
+
+    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_SUBMISSION_DATA_ID
+          return JOB_SUBMISSION_DATA_ID;
+        case 2: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 3: // SSH_PORT
+          return SSH_PORT;
+        case 4: // EXPORTS
+          return EXPORTS;
+        case 5: // PRE_JOB_COMMANDS
+          return PRE_JOB_COMMANDS;
+        case 6: // POST_JOB_COMMANDS
+          return POST_JOB_COMMANDS;
+        case 7: // INSTALLED_PATH
+          return INSTALLED_PATH;
+        case 8: // MONITOR_MODE
+          return MONITOR_MODE;
+        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 __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT,_Fields.EXPORTS,_Fields.PRE_JOB_COMMANDS,_Fields.POST_JOB_COMMANDS,_Fields.INSTALLED_PATH,_Fields.MONITOR_MODE};
+  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.EXPORTS, new org.apache.thrift.meta_data.FieldMetaData("exports", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.PRE_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("preJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.POST_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("postJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.INSTALLED_PATH, new org.apache.thrift.meta_data.FieldMetaData("installedPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", 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(GSISSHJobSubmission.class, metaDataMap);
+  }
+
+  public GSISSHJobSubmission() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public GSISSHJobSubmission(
+    String jobSubmissionDataID,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionDataID = jobSubmissionDataID;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GSISSHJobSubmission(GSISSHJobSubmission other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionDataID()) {
+      this.jobSubmissionDataID = other.jobSubmissionDataID;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    this.sshPort = other.sshPort;
+    if (other.isSetExports()) {
+      Set<String> __this__exports = new HashSet<String>(other.exports);
+      this.exports = __this__exports;
+    }
+    if (other.isSetPreJobCommands()) {
+      List<String> __this__preJobCommands = new ArrayList<String>(other.preJobCommands);
+      this.preJobCommands = __this__preJobCommands;
+    }
+    if (other.isSetPostJobCommands()) {
+      List<String> __this__postJobCommands = new ArrayList<String>(other.postJobCommands);
+      this.postJobCommands = __this__postJobCommands;
+    }
+    if (other.isSetInstalledPath()) {
+      this.installedPath = other.installedPath;
+    }
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+  }
+
+  public GSISSHJobSubmission deepCopy() {
+    return new GSISSHJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.resourceJobManager = null;
+    this.sshPort = 22;
+
+    this.exports = null;
+    this.preJobCommands = null;
+    this.postJobCommands = null;
+    this.installedPath = null;
+    this.monitorMode = null;
+  }
+
+  public String getJobSubmissionDataID() {
+    return this.jobSubmissionDataID;
+  }
+
+  public void setJobSubmissionDataID(String jobSubmissionDataID) {
+    this.jobSubmissionDataID = jobSubmissionDataID;
+  }
+
+  public void unsetJobSubmissionDataID() {
+    this.jobSubmissionDataID = null;
+  }
+
+  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionDataID() {
+    return this.jobSubmissionDataID != null;
+  }
+
+  public void setJobSubmissionDataIDIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionDataID = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public int getExportsSize() {
+    return (this.exports == null) ? 0 : this.exports.size();
+  }
+
+  public java.util.Iterator<String> getExportsIterator() {
+    return (this.exports == null) ? null : this.exports.iterator();
+  }
+
+  public void addToExports(String elem) {
+    if (this.exports == null) {
+      this.exports = new HashSet<String>();
+    }
+    this.exports.add(elem);
+  }
+
+  public Set<String> getExports() {
+    return this.exports;
+  }
+
+  public void setExports(Set<String> exports) {
+    this.exports = exports;
+  }
+
+  public void unsetExports() {
+    this.exports = null;
+  }
+
+  /** Returns true if field exports is set (has been assigned a value) and false otherwise */
+  public boolean isSetExports() {
+    return this.exports != null;
+  }
+
+  public void setExportsIsSet(boolean value) {
+    if (!value) {
+      this.exports = null;
+    }
+  }
+
+  public int getPreJobCommandsSize() {
+    return (this.preJobCommands == null) ? 0 : this.preJobCommands.size();
+  }
+
+  public java.util.Iterator<String> getPreJobCommandsIterator() {
+    return (this.preJobCommands == null) ? null : this.preJobCommands.iterator();
+  }
+
+  public void addToPreJobCommands(String elem) {
+    if (this.preJobCommands == null) {
+      this.preJobCommands = new ArrayList<String>();
+    }
+    this.preJobCommands.add(elem);
+  }
+
+  public List<String> getPreJobCommands() {
+    return this.preJobCommands;
+  }
+
+  public void setPreJobCommands(List<String> preJobCommands) {
+    this.preJobCommands = preJobCommands;
+  }
+
+  public void unsetPreJobCommands() {
+    this.preJobCommands = null;
+  }
+
+  /** Returns true if field preJobCommands is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreJobCommands() {
+    return this.preJobCommands != null;
+  }
+
+  public void setPreJobCommandsIsSet(boolean value) {
+    if (!value) {
+      this.preJobCommands = null;
+    }
+  }
+
+  public int getPostJobCommandsSize() {
+    return (this.postJobCommands == null) ? 0 : this.postJobCommands.size();
+  }
+
+  public java.util.Iterator<String> getPostJobCommandsIterator() {
+    return (this.postJobCommands == null) ? null : this.postJobCommands.iterator();
+  }
+
+  public void addToPostJobCommands(String elem) {
+    if (this.postJobCommands == null) {
+      this.postJobCommands = new ArrayList<String>();
+    }
+    this.postJobCommands.add(elem);
+  }
+
+  public List<String> getPostJobCommands() {
+    return this.postJobCommands;
+  }
+
+  public void setPostJobCommands(List<String> postJobCommands) {
+    this.postJobCommands = postJobCommands;
+  }
+
+  public void unsetPostJobCommands() {
+    this.postJobCommands = null;
+  }
+
+  /** Returns true if field postJobCommands is set (has been assigned a value) and false otherwise */
+  public boolean isSetPostJobCommands() {
+    return this.postJobCommands != null;
+  }
+
+  public void setPostJobCommandsIsSet(boolean value) {
+    if (!value) {
+      this.postJobCommands = null;
+    }
+  }
+
+  public String getInstalledPath() {
+    return this.installedPath;
+  }
+
+  public void setInstalledPath(String installedPath) {
+    this.installedPath = installedPath;
+  }
+
+  public void unsetInstalledPath() {
+    this.installedPath = null;
+  }
+
+  /** Returns true if field installedPath is set (has been assigned a value) and false otherwise */
+  public boolean isSetInstalledPath() {
+    return this.installedPath != null;
+  }
+
+  public void setInstalledPathIsSet(boolean value) {
+    if (!value) {
+      this.installedPath = null;
+    }
+  }
+
+  public String getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  public void setMonitorMode(String monitorMode) {
+    this.monitorMode = monitorMode;
+  }
+
+  public void unsetMonitorMode() {
+    this.monitorMode = null;
+  }
+
+  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMonitorMode() {
+    return this.monitorMode != null;
+  }
+
+  public void setMonitorModeIsSet(boolean value) {
+    if (!value) {
+      this.monitorMode = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      if (value == null) {
+        unsetJobSubmissionDataID();
+      } else {
+        setJobSubmissionDataID((String)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    case EXPORTS:
+      if (value == null) {
+        unsetExports();
+      } else {
+        setExports((Set<String>)value);
+      }
+      break;
+
+    case PRE_JOB_COMMANDS:
+      if (value == null) {
+        unsetPreJobCommands();
+      } else {
+        setPreJobCommands((List<String>)value);
+      }
+      break;
+
+    case POST_JOB_COMMANDS:
+      if (value == null) {
+        unsetPostJobCommands();
+      } else {
+        setPostJobCommands((List<String>)value);
+      }
+      break;
+
+    case INSTALLED_PATH:
+      if (value == null) {
+        unsetInstalledPath();
+      } else {
+        setInstalledPath((String)value);
+      }
+      break;
+
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      return getJobSubmissionDataID();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    case EXPORTS:
+      return getExports();
+
+    case PRE_JOB_COMMANDS:
+      return getPreJobCommands();
+
+    case POST_JOB_COMMANDS:
+      return getPostJobCommands();
+
+    case INSTALLED_PATH:
+      return getInstalledPath();
+
+    case MONITOR_MODE:
+      return getMonitorMode();
+
+    }
+    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 JOB_SUBMISSION_DATA_ID:
+      return isSetJobSubmissionDataID();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case SSH_PORT:
+      return isSetSshPort();
+    case EXPORTS:
+      return isSetExports();
+    case PRE_JOB_COMMANDS:
+      return isSetPreJobCommands();
+    case POST_JOB_COMMANDS:
+      return isSetPostJobCommands();
+    case INSTALLED_PATH:
+      return isSetInstalledPath();
+    case MONITOR_MODE:
+      return isSetMonitorMode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GSISSHJobSubmission)
+      return this.equals((GSISSHJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(GSISSHJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
+    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
+    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
+      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
+        return false;
+      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
+        return false;
+    }
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    boolean this_present_exports = true && this.isSetExports();
+    boolean that_present_exports = true && that.isSetExports();
+    if (this_present_exports || that_present_exports) {
+      if (!(this_present_exports && that_present_exports))
+        return false;
+      if (!this.exports.equals(that.exports))
+        return false;
+    }
+
+    boolean this_present_preJobCommands = true && this.isSetPreJobCommands();
+    boolean that_present_preJobCommands = true && that.isSetPreJobCommands();
+    if (this_present_preJobCommands || that_present_preJobCommands) {
+      if (!(this_present_preJobCommands && that_present_preJobCommands))
+        return false;
+      if (!this.preJobCommands.equals(that.preJobCommands))
+        return false;
+    }
+
+    boolean this_present_postJobCommands = true && this.isSetPostJobCommands();
+    boolean that_present_postJobCommands = true && that.isSetPostJobCommands();
+    if (this_present_postJobCommands || that_present_postJobCommands) {
+      if (!(this_present_postJobCommands && that_present_postJobCommands))
+        return false;
+      if (!this.postJobCommands.equals(that.postJobCommands))
+        return false;
+    }
+
+    boolean this_present_installedPath = true && this.isSetInstalledPath();
+    boolean that_present_installedPath = true && that.isSetInstalledPath();
+    if (this_present_installedPath || that_present_installedPath) {
+      if (!(this_present_installedPath && that_present_installedPath))
+        return false;
+      if (!this.installedPath.equals(that.installedPath))
+        return false;
+    }
+
+    boolean this_present_monitorMode = true && this.isSetMonitorMode();
+    boolean that_present_monitorMode = true && that.isSetMonitorMode();
+    if (this_present_monitorMode || that_present_monitorMode) {
+      if (!(this_present_monitorMode && that_present_monitorMode))
+        return false;
+      if (!this.monitorMode.equals(that.monitorMode))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(GSISSHJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExports()).compareTo(other.isSetExports());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExports()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exports, other.exports);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreJobCommands()).compareTo(other.isSetPreJobCommands());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreJobCommands()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preJobCommands, other.preJobCommands);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPostJobCommands()).compareTo(other.isSetPostJobCommands());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPostJobCommands()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.postJobCommands, other.postJobCommands);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInstalledPath()).compareTo(other.isSetInstalledPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInstalledPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.installedPath, other.installedPath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMonitorMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+      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("GSISSHJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionDataID:");
+    if (this.jobSubmissionDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    if (isSetExports()) {
+      if (!first) sb.append(", ");
+      sb.append("exports:");
+      if (this.exports == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.exports);
+      }
+      first = false;
+    }
+    if (isSetPreJobCommands()) {
+      if (!first) sb.append(", ");
+      sb.append("preJobCommands:");
+      if (this.preJobCommands == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preJobCommands);
+      }
+      first = false;
+    }
+    if (isSetPostJobCommands()) {
+      if (!first) sb.append(", ");
+      sb.append("postJobCommands:");
+      if (this.postJobCommands == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.postJobCommands);
+      }
+      first = false;
+    }
+    if (isSetInstalledPath()) {
+      if (!first) sb.append(", ");
+      sb.append("installedPath:");
+      if (this.installedPath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.installedPath);
+      }
+      first = false;
+    }
+    if (isSetMonitorMode()) {
+      if (!first) sb.append(", ");
+      sb.append("monitorMode:");
+      if (this.monitorMode == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.monitorMode);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobSubmissionDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetResourceJobManager()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class GSISSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public GSISSHJobSubmissionStandardScheme getScheme() {
+      return new GSISSHJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class GSISSHJobSubmissionStandardScheme extends StandardScheme<GSISSHJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GSISSHJobSubmission 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: // JOB_SUBMISSION_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionDataID = iprot.readString();
+              struct.setJobSubmissionDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXPORTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set16 = iprot.readSetBegin();
+                struct.exports = new HashSet<String>(2*_set16.size);
+                for (int _i17 = 0; _i17 < _set16.size; ++_i17)
+                {
+                  String _elem18;
+                  _elem18 = iprot.readString();
+                  struct.exports.add(_elem18);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setExportsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PRE_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
+                struct.preJobCommands = new ArrayList<String>(_list19.size);
+                for (int _i20 = 0; _i20 < _list19.size; ++_i20)
+                {
+                  String _elem21;
+                  _elem21 = iprot.readString();
+                  struct.preJobCommands.add(_elem21);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPreJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // POST_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list22 = iprot.readListBegin();
+                struct.postJobCommands = new ArrayList<String>(_list22.size);
+                for (int _i23 = 0; _i23 < _list22.size; ++_i23)
+                {
+                  String _elem24;
+                  _elem24 = iprot.readString();
+                  struct.postJobCommands.add(_elem24);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPostJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // INSTALLED_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.installedPath = iprot.readString();
+              struct.setInstalledPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.monitorMode = iprot.readString();
+              struct.setMonitorModeIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionDataID != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.exports != null) {
+        if (struct.isSetExports()) {
+          oprot.writeFieldBegin(EXPORTS_FIELD_DESC);
+          {
+            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.exports.size()));
+            for (String _iter25 : struct.exports)
+            {
+              oprot.writeString(_iter25);
+            }
+            oprot.writeSetEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preJobCommands != null) {
+        if (struct.isSetPreJobCommands()) {
+          oprot.writeFieldBegin(PRE_JOB_COMMANDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.preJobCommands.size()));
+            for (String _iter26 : struct.preJobCommands)
+            {
+              oprot.writeString(_iter26);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.postJobCommands != null) {
+        if (struct.isSetPostJobCommands()) {
+          oprot.writeFieldBegin(POST_JOB_COMMANDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.postJobCommands.size()));
+            for (String _iter27 : struct.postJobCommands)
+            {
+              oprot.writeString(_iter27);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.installedPath != null) {
+        if (struct.isSetInstalledPath()) {
+          oprot.writeFieldBegin(INSTALLED_PATH_FIELD_DESC);
+          oprot.writeString(struct.installedPath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.monitorMode != null) {
+        if (struct.isSetMonitorMode()) {
+          oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+          oprot.writeString(struct.monitorMode);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GSISSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public GSISSHJobSubmissionTupleScheme getScheme() {
+      return new GSISSHJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class GSISSHJobSubmissionTupleScheme extends TupleScheme<GSISSHJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionDataID);
+      oprot.writeI32(struct.resourceJobManager.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      if (struct.isSetExports()) {
+        optionals.set(1);
+      }
+      if (struct.isSetPreJobCommands()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPostJobCommands()) {
+        optionals.set(3);
+      }
+      if (struct.isSetInstalledPath()) {
+        optionals.set(4);
+      }
+      if (struct.isSetMonitorMode()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+      if (struct.isSetExports()) {
+        {
+          oprot.writeI32(struct.exports.size());
+          for (String _iter28 : struct.exports)
+          {
+            oprot.writeString(_iter28);
+          }
+        }
+      }
+      if (struct.isSetPreJobCommands()) {
+        {
+          oprot.writeI32(struct.preJobCommands.size());
+          for (String _iter29 : struct.preJobCommands)
+          {
+            oprot.writeString(_iter29);
+          }
+        }
+      }
+      if (struct.isSetPostJobCommands()) {
+        {
+          oprot.writeI32(struct.postJobCommands.size());
+          for (String _iter30 : struct.postJobCommands)
+          {
+            oprot.writeString(_iter30);
+          }
+        }
+      }
+      if (struct.isSetInstalledPath()) {
+        oprot.writeString(struct.installedPath);
+      }
+      if (struct.isSetMonitorMode()) {
+        oprot.writeString(struct.monitorMode);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionDataID = iprot.readString();
+      struct.setJobSubmissionDataIDIsSet(true);
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TSet _set31 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.exports = new HashSet<String>(2*_set31.size);
+          for (int _i32 = 0; _i32 < _set31.size; ++_i32)
+          {
+            String _elem33;
+            _elem33 = iprot.readString();
+            struct.exports.add(_elem33);
+          }
+        }
+        struct.setExportsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list34 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.preJobCommands = new ArrayList<String>(_list34.size);
+          for (int _i35 = 0; _i35 < _list34.size; ++_i35)
+          {
+            String _elem36;
+            _elem36 = iprot.readString();
+            struct.preJobCommands.add(_elem36);
+          }
+        }
+        struct.setPreJobCommandsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list37 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.postJobCommands = new ArrayList<String>(_list37.size);
+          for (int _i38 = 0; _i38 < _list37.size; ++_i38)
+          {
+            String _elem39;
+            _elem39 = iprot.readString();
+            struct.postJobCommands.add(_elem39);
+          }
+        }
+        struct.setPostJobCommandsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.installedPath = iprot.readString();
+        struct.setInstalledPathIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.monitorMode = iprot.readString();
+        struct.setMonitorModeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GlobusJobSubmission.java
new file mode 100644
index 0000000..ca2782f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/computehost/GlobusJobSubmission.java
@@ -0,0 +1,768 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.computehost;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("globusGateKeeperEndPoint", org.apache.thrift.protocol.TType.LIST, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GlobusJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GlobusJobSubmissionTupleSchemeFactory());
+  }
+
+  private String jobSubmissionDataID; // required
+  private SecurityProtocol securityProtocol; // required
+  private ResourceJobManager resourceJobManager; // required
+  private List<String> globusGateKeeperEndPoint; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)3, "resourceJobManager"),
+    GLOBUS_GATE_KEEPER_END_POINT((short)4, "globusGateKeeperEndPoint");
+
+    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_SUBMISSION_DATA_ID
+          return JOB_SUBMISSION_DATA_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 4: // GLOBUS_GATE_KEEPER_END_POINT
+          return GLOBUS_GATE_KEEPER_END_POINT;
+        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 _Fields optionals[] = {_Fields.GLOBUS_GATE_KEEPER_END_POINT};
+  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
+    tmpMap.put(_Fields.GLOBUS_GATE_KEEPER_END_POINT, new org.apache.thrift.meta_data.FieldMetaData("globusGateKeeperEndPoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GlobusJobSubmission.class, metaDataMap);
+  }
+
+  public GlobusJobSubmission() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public GlobusJobSubmission(
+    String jobSubmissionDataID,
+    SecurityProtocol securityProtocol,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionDataID = jobSubmissionDataID;
+    this.securityProtocol = securityProtocol;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GlobusJobSubmission(GlobusJobSubmission other) {
+    if (other.isSetJobSubmissionDataID()) {
+      this.jobSubmissionDataID = other.jobSubmissionDataID;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    if (other.isSetGlobusGateKeeperEndPoint()) {
+      List<String> __this__globusGateKeeperEndPoint = new ArrayList<String>(other.globusGateKeeperEndPoint);
+      this.globusGateKeeperEndPoint = __this__globusGateKeeperEndPoint;
+    }
+  }
+
+  public GlobusJobSubmission deepCopy() {
+    return new GlobusJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.resourceJobManager = null;
+    this.globusGateKeeperEndPoint = null;
+  }
+
+  public String getJobSubmissionDataID() {
+    return this.jobSubmissionDataID;
+  }
+
+  public void setJobSubmissionDataID(String jobSubmissionDataID) {
+    this.jobSubmissionDataID = jobSubmissionDataID;
+  }
+
+  public void unsetJobSubmissionDataID() {
+    this.jobSubmissionDataID = null;
+  }
+
+  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionDataID() {
+    return this.jobSubmissionDataID != null;
+  }
+
+  public void setJobSubmissionDataIDIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionDataID = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public int getGlobusGateKeeperEndPointSize() {
+    return (this.globusGateKeeperEndPoint == null) ? 0 : this.globusGateKeeperEndPoint.size();
+  }
+
+  public java.util.Iterator<String> getGlobusGateKeeperEndPointIterator() {
+    return (this.globusGateKeeperEndPoint == null) ? null : this.globusGateKeeperEndPoint.iterator();
+  }
+
+  public void addToGlobusGateKeeperEndPoint(String elem) {
+    if (this.globusGateKeeperEndPoint == null) {
+      this.globusGateKeeperEndPoint = new ArrayList<String>();
+    }
+    this.globusGateKeeperEndPoint.add(elem);
+  }
+
+  public List<String> getGlobusGateKeeperEndPoint() {
+    return this.globusGateKeeperEndPoint;
+  }
+
+  public void setGlobusGateKeeperEndPoint(List<String> globusGateKeeperEndPoint) {
+    this.globusGateKeeperEndPoint = globusGateKeeperEndPoint;
+  }
+
+  public void unsetGlobusGateKeeperEndPoint() {
+    this.globusGateKeeperEndPoint = null;
+  }
+
+  /** Returns true if field globusGateKeeperEndPoint is set (has been assigned a value) and false otherwise */
+  public boolean isSetGlobusGateKeeperEndPoint() {
+    return this.globusGateKeeperEndPoint != null;
+  }
+
+  public void setGlobusGateKeeperEndPointIsSet(boolean value) {
+    if (!value) {
+      this.globusGateKeeperEndPoint = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      if (value == null) {
+        unsetJobSubmissionDataID();
+      } else {
+        setJobSubmissionDataID((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      if (value == null) {
+        unsetGlobusGateKeeperEndPoint();
+      } else {
+        setGlobusGateKeeperEndPoint((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      return getJobSubmissionDataID();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      return getGlobusGateKeeperEndPoint();
+
+    }
+    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 JOB_SUBMISSION_DATA_ID:
+      return isSetJobSubmissionDataID();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      return isSetGlobusGateKeeperEndPoint();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GlobusJobSubmission)
+      return this.equals((GlobusJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(GlobusJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
+    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
+    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
+      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
+        return false;
+      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    boolean this_present_globusGateKeeperEndPoint = true && this.isSetGlobusGateKeeperEndPoint();
+    boolean that_present_globusGateKeeperEndPoint = true && that.isSetGlobusGateKeeperEndPoint();
+    if (this_present_globusGateKeeperEndPoint || that_present_globusGateKeeperEndPoint) {
+      if (!(this_present_globusGateKeeperEndPoint && that_present_globusGateKeeperEndPoint))
+        return false;
+      if (!this.globusGateKeeperEndPoint.equals(that.globusGateKeeperEndPoint))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(GlobusJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGlobusGateKeeperEndPoint()).compareTo(other.isSetGlobusGateKeeperEndPoint());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGlobusGateKeeperEndPoint()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.globusGateKeeperEndPoint, other.globusGateKeeperEndPoint);
+      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("GlobusJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionDataID:");
+    if (this.jobSubmissionDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetGlobusGateKeeperEndPoint()) {
+      if (!first) sb.append(", ");
+      sb.append("globusGateKeeperEndPoint:");
+      if (this.globusGateKeeperEndPoint == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.globusGateKeeperEndPoint);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobSubmissionDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetResourceJobManager()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      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 GlobusJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public GlobusJobSubmissionStandardScheme getScheme() {
+      return new GlobusJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class GlobusJobSubmissionStandardScheme extends StandardScheme<GlobusJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GlobusJobSubmission 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: // JOB_SUBMISSION_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionDataID = iprot.readString();
+              struct.setJobSubmissionDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // GLOBUS_GATE_KEEPER_END_POINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
+                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list8.size);
+                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
+                {
+                  String _elem10;
+                  _elem10 = iprot.readString();
+                  struct.globusGateKeeperEndPoint.add(_elem10);
+                }
+                iprot.readListEnd();
+              }
+              struct.setGlobusGateKeeperEndPointIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionDataID != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.globusGateKeeperEndPoint != null) {
+        if (struct.isSetGlobusGateKeeperEndPoint()) {
+          oprot.writeFieldBegin(GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.globusGateKeeperEndPoint.size()));
+            for (String _iter11 : struct.globusGateKeeperEndPoint)
+            {
+              oprot.writeString(_iter11);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GlobusJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public GlobusJobSubmissionTupleScheme getScheme() {
+      return new GlobusJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class GlobusJobSubmissionTupleScheme extends TupleScheme<GlobusJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionDataID);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeI32(struct.resourceJobManager.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetGlobusGateKeeperEndPoint()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetGlobusGateKeeperEndPoint()) {
+        {
+          oprot.writeI32(struct.globusGateKeeperEndPoint.size());
+          for (String _iter12 : struct.globusGateKeeperEndPoint)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionDataID = iprot.readString();
+      struct.setJobSubmissionDataIDIsSet(true);
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list13.size);
+          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
+          {
+            String _elem15;
+            _elem15 = iprot.readString();
+            struct.globusGateKeeperEndPoint.add(_elem15);
+          }
+        }
+        struct.setGlobusGateKeeperEndPointIsSet(true);
+      }
+    }
+  }
+
+}
+


[11/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/appcatalog/ApplicationCatalogAPI.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/appcatalog/ApplicationCatalogAPI.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/appcatalog/ApplicationCatalogAPI.java
index 541eafd..ae8c533 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/appcatalog/ApplicationCatalogAPI.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/appcatalog/ApplicationCatalogAPI.java
@@ -62,58 +62,72 @@ import org.slf4j.LoggerFactory;
      * 
      * @param computeResourceDescription
      */
-    public String addComputeResourceDescription(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addComputeResourceDescription(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public String addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public String addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public String addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public String addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public String addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     public List<String> listComputeResourceDescriptions() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription getComputeResourceDescription(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.ComputeResourceDescription getComputeResourceDescription(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.SSHJobSubmission getSSHJobSubmissionProtocol(String sshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.SSHJobSubmission getSSHJobSubmissionProtocol(String sshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.GSISSHJobSubmission getGSISSHJobSubmissionProtocol(String gsisshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.GSISSHJobSubmission getGSISSHJobSubmissionProtocol(String gsisshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.GlobusJobSubmission getGlobusJobSubmissionProtocol(String globusJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.GlobusJobSubmission getGlobusJobSubmissionProtocol(String globusJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.SCPDataMovement getSCPDataMovementProtocol(String scpDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.SCPDataMovement getSCPDataMovementProtocol(String scpDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.GridFTPDataMovement getGridFTPDataMovementProtocol(String gridFTPDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.GridFTPDataMovement getGridFTPDataMovementProtocol(String gridFTPDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     public boolean isComputeResourceDescriptionRegistered(String hostName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription getComputeResourceDescriptionFromHostName(String hostName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.computehost.ComputeResourceDescription getComputeResourceDescriptionFromHostName(String hostName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
      * Manage Application Interfaces
      * 
      * @param applicationInterface
      */
-    public String addApplicationInterface(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addApplicationInterface(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     public List<String> listApplicationInterfaceIds() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.ApplicationInterface getApplicationInterface(String applicationInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.application.interface.ApplicationInterfaceDescription getApplicationInterface(String applicationInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
-     * Manage application deployments
+     * Manage application modules
+     * 
+     * @param applicationModule
+     * @param publish
+     */
+    public String registerAppicationModule(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.application.deployment.ApplicationModule getAppicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public boolean updateAppicationModule(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public boolean deleteAppicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
+     * Manage application modules
      * 
      * @param applicationInterfaceId
      * @param applicationDeployment
      */
-    public String addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.appcatalog.ApplicationDeployment applicationDeployment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public String addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     public List<String> listApplicationDeploymentIds(String applicationInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public org.apache.airavata.model.appcatalog.ApplicationDeployment getApplicationDeployment(String applicationInterfaceId, String applicationDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription getApplicationDeployment(String applicationInterfaceId, String applicationDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
   }
 
@@ -121,17 +135,17 @@ import org.slf4j.LoggerFactory;
 
     public void GetAPIVersion(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addComputeResourceDescription(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addComputeResourceDescription(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void listComputeResourceDescriptions(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -151,13 +165,21 @@ import org.slf4j.LoggerFactory;
 
     public void getComputeResourceDescriptionFromHostName(String hostName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addApplicationInterface(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void addApplicationInterface(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void listApplicationInterfaceIds(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getApplicationInterface(String applicationInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.appcatalog.ApplicationDeployment applicationDeployment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void registerAppicationModule(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getAppicationModule(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateAppicationModule(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteAppicationModule(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription applicationDeployment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void listApplicationDeploymentIds(String applicationInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -207,13 +229,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "GetAPIVersion failed: unknown result");
     }
 
-    public String addComputeResourceDescription(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addComputeResourceDescription(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addComputeResourceDescription(computeResourceDescription);
       return recv_addComputeResourceDescription();
     }
 
-    public void send_addComputeResourceDescription(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription) throws org.apache.thrift.TException
+    public void send_addComputeResourceDescription(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription) throws org.apache.thrift.TException
     {
       addComputeResourceDescription_args args = new addComputeResourceDescription_args();
       args.setComputeResourceDescription(computeResourceDescription);
@@ -239,13 +261,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addComputeResourceDescription failed: unknown result");
     }
 
-    public String addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addSSHJobSubmissionProtocol(computeResourceId, jobSubmission);
       return recv_addSSHJobSubmissionProtocol();
     }
 
-    public void send_addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission) throws org.apache.thrift.TException
+    public void send_addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission) throws org.apache.thrift.TException
     {
       addSSHJobSubmissionProtocol_args args = new addSSHJobSubmissionProtocol_args();
       args.setComputeResourceId(computeResourceId);
@@ -272,13 +294,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addSSHJobSubmissionProtocol failed: unknown result");
     }
 
-    public String addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addGSISSHJobSubmissionProtocol(computeResourceId, jobSubmission);
       return recv_addGSISSHJobSubmissionProtocol();
     }
 
-    public void send_addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission) throws org.apache.thrift.TException
+    public void send_addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission) throws org.apache.thrift.TException
     {
       addGSISSHJobSubmissionProtocol_args args = new addGSISSHJobSubmissionProtocol_args();
       args.setComputeResourceId(computeResourceId);
@@ -305,13 +327,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addGSISSHJobSubmissionProtocol failed: unknown result");
     }
 
-    public String addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addGlobusJobSubmissionProtocol(computeResourceId, jobSubmission);
       return recv_addGlobusJobSubmissionProtocol();
     }
 
-    public void send_addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission) throws org.apache.thrift.TException
+    public void send_addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission) throws org.apache.thrift.TException
     {
       addGlobusJobSubmissionProtocol_args args = new addGlobusJobSubmissionProtocol_args();
       args.setComputeResourceId(computeResourceId);
@@ -338,13 +360,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addGlobusJobSubmissionProtocol failed: unknown result");
     }
 
-    public String addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addSCPDataMovementProtocol(computeResourceId, dataMovement);
       return recv_addSCPDataMovementProtocol();
     }
 
-    public void send_addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement) throws org.apache.thrift.TException
+    public void send_addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement) throws org.apache.thrift.TException
     {
       addSCPDataMovementProtocol_args args = new addSCPDataMovementProtocol_args();
       args.setComputeResourceId(computeResourceId);
@@ -371,13 +393,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addSCPDataMovementProtocol failed: unknown result");
     }
 
-    public String addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addGridFTPDataMovementProtocol(computeResourceId, dataMovement);
       return recv_addGridFTPDataMovementProtocol();
     }
 
-    public void send_addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement) throws org.apache.thrift.TException
+    public void send_addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement) throws org.apache.thrift.TException
     {
       addGridFTPDataMovementProtocol_args args = new addGridFTPDataMovementProtocol_args();
       args.setComputeResourceId(computeResourceId);
@@ -435,7 +457,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listComputeResourceDescriptions failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription getComputeResourceDescription(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.ComputeResourceDescription getComputeResourceDescription(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getComputeResourceDescription(computeResourceId);
       return recv_getComputeResourceDescription();
@@ -448,7 +470,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getComputeResourceDescription", args);
     }
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription recv_getComputeResourceDescription() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.ComputeResourceDescription recv_getComputeResourceDescription() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getComputeResourceDescription_result result = new getComputeResourceDescription_result();
       receiveBase(result, "getComputeResourceDescription");
@@ -467,7 +489,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getComputeResourceDescription failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.SSHJobSubmission getSSHJobSubmissionProtocol(String sshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.SSHJobSubmission getSSHJobSubmissionProtocol(String sshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getSSHJobSubmissionProtocol(sshJobSubmissionProtocolResourceId);
       return recv_getSSHJobSubmissionProtocol();
@@ -480,7 +502,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getSSHJobSubmissionProtocol", args);
     }
 
-    public org.apache.airavata.model.appcatalog.SSHJobSubmission recv_getSSHJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.SSHJobSubmission recv_getSSHJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getSSHJobSubmissionProtocol_result result = new getSSHJobSubmissionProtocol_result();
       receiveBase(result, "getSSHJobSubmissionProtocol");
@@ -499,7 +521,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getSSHJobSubmissionProtocol failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.GSISSHJobSubmission getGSISSHJobSubmissionProtocol(String gsisshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GSISSHJobSubmission getGSISSHJobSubmissionProtocol(String gsisshJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getGSISSHJobSubmissionProtocol(gsisshJobSubmissionProtocolResourceId);
       return recv_getGSISSHJobSubmissionProtocol();
@@ -512,7 +534,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getGSISSHJobSubmissionProtocol", args);
     }
 
-    public org.apache.airavata.model.appcatalog.GSISSHJobSubmission recv_getGSISSHJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GSISSHJobSubmission recv_getGSISSHJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getGSISSHJobSubmissionProtocol_result result = new getGSISSHJobSubmissionProtocol_result();
       receiveBase(result, "getGSISSHJobSubmissionProtocol");
@@ -531,7 +553,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGSISSHJobSubmissionProtocol failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.GlobusJobSubmission getGlobusJobSubmissionProtocol(String globusJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GlobusJobSubmission getGlobusJobSubmissionProtocol(String globusJobSubmissionProtocolResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getGlobusJobSubmissionProtocol(globusJobSubmissionProtocolResourceId);
       return recv_getGlobusJobSubmissionProtocol();
@@ -544,7 +566,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getGlobusJobSubmissionProtocol", args);
     }
 
-    public org.apache.airavata.model.appcatalog.GlobusJobSubmission recv_getGlobusJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GlobusJobSubmission recv_getGlobusJobSubmissionProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getGlobusJobSubmissionProtocol_result result = new getGlobusJobSubmissionProtocol_result();
       receiveBase(result, "getGlobusJobSubmissionProtocol");
@@ -563,7 +585,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGlobusJobSubmissionProtocol failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.SCPDataMovement getSCPDataMovementProtocol(String scpDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.SCPDataMovement getSCPDataMovementProtocol(String scpDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getSCPDataMovementProtocol(scpDataMovementResourceId);
       return recv_getSCPDataMovementProtocol();
@@ -576,7 +598,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getSCPDataMovementProtocol", args);
     }
 
-    public org.apache.airavata.model.appcatalog.SCPDataMovement recv_getSCPDataMovementProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.SCPDataMovement recv_getSCPDataMovementProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getSCPDataMovementProtocol_result result = new getSCPDataMovementProtocol_result();
       receiveBase(result, "getSCPDataMovementProtocol");
@@ -595,7 +617,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getSCPDataMovementProtocol failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.GridFTPDataMovement getGridFTPDataMovementProtocol(String gridFTPDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GridFTPDataMovement getGridFTPDataMovementProtocol(String gridFTPDataMovementResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getGridFTPDataMovementProtocol(gridFTPDataMovementResourceId);
       return recv_getGridFTPDataMovementProtocol();
@@ -608,7 +630,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getGridFTPDataMovementProtocol", args);
     }
 
-    public org.apache.airavata.model.appcatalog.GridFTPDataMovement recv_getGridFTPDataMovementProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.GridFTPDataMovement recv_getGridFTPDataMovementProtocol() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getGridFTPDataMovementProtocol_result result = new getGridFTPDataMovementProtocol_result();
       receiveBase(result, "getGridFTPDataMovementProtocol");
@@ -659,7 +681,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isComputeResourceDescriptionRegistered failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription getComputeResourceDescriptionFromHostName(String hostName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.ComputeResourceDescription getComputeResourceDescriptionFromHostName(String hostName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getComputeResourceDescriptionFromHostName(hostName);
       return recv_getComputeResourceDescriptionFromHostName();
@@ -672,7 +694,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getComputeResourceDescriptionFromHostName", args);
     }
 
-    public org.apache.airavata.model.appcatalog.ComputeResourceDescription recv_getComputeResourceDescriptionFromHostName() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.computehost.ComputeResourceDescription recv_getComputeResourceDescriptionFromHostName() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getComputeResourceDescriptionFromHostName_result result = new getComputeResourceDescriptionFromHostName_result();
       receiveBase(result, "getComputeResourceDescriptionFromHostName");
@@ -691,13 +713,13 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getComputeResourceDescriptionFromHostName failed: unknown result");
     }
 
-    public String addApplicationInterface(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String addApplicationInterface(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addApplicationInterface(applicationInterface);
       return recv_addApplicationInterface();
     }
 
-    public void send_addApplicationInterface(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface) throws org.apache.thrift.TException
+    public void send_addApplicationInterface(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface) throws org.apache.thrift.TException
     {
       addApplicationInterface_args args = new addApplicationInterface_args();
       args.setApplicationInterface(applicationInterface);
@@ -754,7 +776,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listApplicationInterfaceIds failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.ApplicationInterface getApplicationInterface(String applicationInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.application.interface.ApplicationInterfaceDescription getApplicationInterface(String applicationInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getApplicationInterface(applicationInterfaceId);
       return recv_getApplicationInterface();
@@ -767,7 +789,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getApplicationInterface", args);
     }
 
-    public org.apache.airavata.model.appcatalog.ApplicationInterface recv_getApplicationInterface() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.application.interface.ApplicationInterfaceDescription recv_getApplicationInterface() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getApplicationInterface_result result = new getApplicationInterface_result();
       receiveBase(result, "getApplicationInterface");
@@ -786,13 +808,143 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationInterface failed: unknown result");
     }
 
-    public String addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.appcatalog.ApplicationDeployment applicationDeployment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public String registerAppicationModule(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_registerAppicationModule(applicationModule, publish);
+      return recv_registerAppicationModule();
+    }
+
+    public void send_registerAppicationModule(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish) throws org.apache.thrift.TException
+    {
+      registerAppicationModule_args args = new registerAppicationModule_args();
+      args.setApplicationModule(applicationModule);
+      args.setPublish(publish);
+      sendBase("registerAppicationModule", args);
+    }
+
+    public String recv_registerAppicationModule() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      registerAppicationModule_result result = new registerAppicationModule_result();
+      receiveBase(result, "registerAppicationModule");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "registerAppicationModule failed: unknown result");
+    }
+
+    public org.apache.airavata.model.application.deployment.ApplicationModule getAppicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAppicationModule(appModuleId);
+      return recv_getAppicationModule();
+    }
+
+    public void send_getAppicationModule(String appModuleId) throws org.apache.thrift.TException
+    {
+      getAppicationModule_args args = new getAppicationModule_args();
+      args.setAppModuleId(appModuleId);
+      sendBase("getAppicationModule", args);
+    }
+
+    public org.apache.airavata.model.application.deployment.ApplicationModule recv_getAppicationModule() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAppicationModule_result result = new getAppicationModule_result();
+      receiveBase(result, "getAppicationModule");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAppicationModule failed: unknown result");
+    }
+
+    public boolean updateAppicationModule(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_updateAppicationModule(appModuleId, applicationModule);
+      return recv_updateAppicationModule();
+    }
+
+    public void send_updateAppicationModule(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule) throws org.apache.thrift.TException
+    {
+      updateAppicationModule_args args = new updateAppicationModule_args();
+      args.setAppModuleId(appModuleId);
+      args.setApplicationModule(applicationModule);
+      sendBase("updateAppicationModule", args);
+    }
+
+    public boolean recv_updateAppicationModule() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      updateAppicationModule_result result = new updateAppicationModule_result();
+      receiveBase(result, "updateAppicationModule");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateAppicationModule failed: unknown result");
+    }
+
+    public boolean deleteAppicationModule(String appModuleId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_deleteAppicationModule(appModuleId);
+      return recv_deleteAppicationModule();
+    }
+
+    public void send_deleteAppicationModule(String appModuleId) throws org.apache.thrift.TException
+    {
+      deleteAppicationModule_args args = new deleteAppicationModule_args();
+      args.setAppModuleId(appModuleId);
+      sendBase("deleteAppicationModule", args);
+    }
+
+    public boolean recv_deleteAppicationModule() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      deleteAppicationModule_result result = new deleteAppicationModule_result();
+      receiveBase(result, "deleteAppicationModule");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteAppicationModule failed: unknown result");
+    }
+
+    public String addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_addApplicationDeployment(applicationInterfaceId, applicationDeployment);
       return recv_addApplicationDeployment();
     }
 
-    public void send_addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.appcatalog.ApplicationDeployment applicationDeployment) throws org.apache.thrift.TException
+    public void send_addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription applicationDeployment) throws org.apache.thrift.TException
     {
       addApplicationDeployment_args args = new addApplicationDeployment_args();
       args.setApplicationInterfaceId(applicationInterfaceId);
@@ -851,7 +1003,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listApplicationDeploymentIds failed: unknown result");
     }
 
-    public org.apache.airavata.model.appcatalog.ApplicationDeployment getApplicationDeployment(String applicationInterfaceId, String applicationDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription getApplicationDeployment(String applicationInterfaceId, String applicationDeploymentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getApplicationDeployment(applicationInterfaceId, applicationDeploymentId);
       return recv_getApplicationDeployment();
@@ -865,7 +1017,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getApplicationDeployment", args);
     }
 
-    public org.apache.airavata.model.appcatalog.ApplicationDeployment recv_getApplicationDeployment() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public org.apache.airavata.model.application.deployment.ApplicationDeploymentDescription recv_getApplicationDeployment() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getApplicationDeployment_result result = new getApplicationDeployment_result();
       receiveBase(result, "getApplicationDeployment");
@@ -931,7 +1083,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addComputeResourceDescription(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addComputeResourceDescription(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addComputeResourceDescription_call method_call = new addComputeResourceDescription_call(computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -939,8 +1091,8 @@ import org.slf4j.LoggerFactory;
     }
 
     public static class addComputeResourceDescription_call extends org.apache.thrift.async.TAsyncMethodCall {
-      private org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription;
-      public addComputeResourceDescription_call(org.apache.airavata.model.appcatalog.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription;
+      public addComputeResourceDescription_call(org.apache.airavata.model.computehost.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceDescription = computeResourceDescription;
       }
@@ -963,7 +1115,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addSSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addSSHJobSubmissionProtocol_call method_call = new addSSHJobSubmissionProtocol_call(computeResourceId, jobSubmission, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -972,8 +1124,8 @@ import org.slf4j.LoggerFactory;
 
     public static class addSSHJobSubmissionProtocol_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String computeResourceId;
-      private org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission;
-      public addSSHJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.appcatalog.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission;
+      public addSSHJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.computehost.SSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceId = computeResourceId;
         this.jobSubmission = jobSubmission;
@@ -998,7 +1150,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addGSISSHJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addGSISSHJobSubmissionProtocol_call method_call = new addGSISSHJobSubmissionProtocol_call(computeResourceId, jobSubmission, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1007,8 +1159,8 @@ import org.slf4j.LoggerFactory;
 
     public static class addGSISSHJobSubmissionProtocol_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String computeResourceId;
-      private org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission;
-      public addGSISSHJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.appcatalog.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission;
+      public addGSISSHJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.computehost.GSISSHJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceId = computeResourceId;
         this.jobSubmission = jobSubmission;
@@ -1033,7 +1185,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addGlobusJobSubmissionProtocol(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addGlobusJobSubmissionProtocol_call method_call = new addGlobusJobSubmissionProtocol_call(computeResourceId, jobSubmission, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1042,8 +1194,8 @@ import org.slf4j.LoggerFactory;
 
     public static class addGlobusJobSubmissionProtocol_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String computeResourceId;
-      private org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission;
-      public addGlobusJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.appcatalog.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission;
+      public addGlobusJobSubmissionProtocol_call(String computeResourceId, org.apache.airavata.model.computehost.GlobusJobSubmission jobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceId = computeResourceId;
         this.jobSubmission = jobSubmission;
@@ -1068,7 +1220,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addSCPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addSCPDataMovementProtocol_call method_call = new addSCPDataMovementProtocol_call(computeResourceId, dataMovement, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1077,8 +1229,8 @@ import org.slf4j.LoggerFactory;
 
     public static class addSCPDataMovementProtocol_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String computeResourceId;
-      private org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement;
-      public addSCPDataMovementProtocol_call(String computeResourceId, org.apache.airavata.model.appcatalog.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.SCPDataMovement dataMovement;
+      public addSCPDataMovementProtocol_call(String computeResourceId, org.apache.airavata.model.computehost.SCPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceId = computeResourceId;
         this.dataMovement = dataMovement;
@@ -1103,7 +1255,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addGridFTPDataMovementProtocol(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addGridFTPDataMovementProtocol_call method_call = new addGridFTPDataMovementProtocol_call(computeResourceId, dataMovement, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1112,8 +1264,8 @@ import org.slf4j.LoggerFactory;
 
     public static class addGridFTPDataMovementProtocol_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String computeResourceId;
-      private org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement;
-      public addGridFTPDataMovementProtocol_call(String computeResourceId, org.apache.airavata.model.appcatalog.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement;
+      public addGridFTPDataMovementProtocol_call(String computeResourceId, org.apache.airavata.model.computehost.GridFTPDataMovement dataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.computeResourceId = computeResourceId;
         this.dataMovement = dataMovement;
@@ -1189,7 +1341,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.ComputeResourceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.ComputeResourceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1221,7 +1373,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.SSHJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.SSHJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1253,7 +1405,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.GSISSHJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.GSISSHJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1285,7 +1437,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.GlobusJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.GlobusJobSubmission getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1317,7 +1469,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.SCPDataMovement getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.SCPDataMovement getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1349,7 +1501,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.GridFTPDataMovement getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.GridFTPDataMovement getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1413,7 +1565,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.ComputeResourceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.computehost.ComputeResourceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1423,7 +1575,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addApplicationInterface(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void addApplicationInterface(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       addApplicationInterface_call method_call = new addApplicationInterface_call(applicationInterface, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1431,8 +1583,8 @@ import org.slf4j.LoggerFactory;
     }
 
     public static class addApplicationInterface_call extends org.apache.thrift.async.TAsyncMethodCall {
-      private org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface;
-      public addApplicationInterface_call(org.apache.airavata.model.appcatalog.ApplicationInterface applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface;
+      public addApplicationInterface_call(org.apache.airavata.model.application.interface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.applicationInterface = applicationInterface;
       }
@@ -1506,7 +1658,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public org.apache.airavata.model.appcatalog.ApplicationInterface getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public org.apache.airavata.model.application.interface.ApplicationInterfaceDescription getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -1516,7 +1668,141 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void addApplicationDeployment(String applicationInterfaceId, org.apache.airavata.model.appcatalog.ApplicationDeployment applicationDeployment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void registerAppicationModule(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      registerAppicationModule_call method_call = new registerAppicationModule_call(applicationModule, publish, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class registerAppicationModule_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.application.deployment.ApplicationModule applicationModule;
+      private boolean publish;
+      public registerAppicationModule_call(org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, boolean publish, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.applicationModule = applicationModule;
+        this.publish = publish;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("registerAppicationModule", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        registerAppicationModule_args args = new registerAppicationModule_args();
+        args.setApplicationModule(applicationModule);
+        args.setPublish(publish);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_registerAppicationModule();
+      }
+    }
+
+    public void getAppicationModule(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAppicationModule_call method_call = new getAppicationModule_call(appModuleId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAppicationModule_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String appModuleId;
+      public getAppicationModule_call(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.appModuleId = appModuleId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAppicationModule", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAppicationModule_args args = new getAppicationModule_args();
+        args.setAppModuleId(appModuleId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.application.deployment.ApplicationModule getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAppicationModule();
+      }
+    }
+
+    public void updateAppicationModule(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateAppicationModule_call method_call = new updateAppicationModule_call(appModuleId, applicationModule, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateAppicationModule_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String appModuleId;
+      private org.apache.airavata.model.application.deployment.ApplicationModule applicationModule;
+      public updateAppicationModule_call(String appModuleId, org.apache.airavata.model.application.deployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.appModuleId = appModuleId;
+        this.applicationModule = applicationModule;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateAppicationModule", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateAppicationModule_args args = new updateAppicationModule_args();
+        args.setAppModuleId(appModuleId);
+        args.setApplicationModule(applicationModule);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_updateAppicationModule();
+      }
+    }
+
+    public void deleteAppicationModule(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteAppicationModule_call method_call = new deleteAppicationModule_call(appModuleId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteAppicationModule_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String appModuleId;
+      public deleteAppicationModule_call(String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.appModuleId = appModuleId;
+      }
+
+      public void write_args(org.apache.thr

<TRUNCATED>

[05/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GSISSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GSISSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GSISSHJobSubmission.java
deleted file mode 100644
index 8f29702..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GSISSHJobSubmission.java
+++ /dev/null
@@ -1,1262 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all") public class GSISSHJobSubmission implements org.apache.thrift.TBase<GSISSHJobSubmission, GSISSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GSISSHJobSubmission> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GSISSHJobSubmission");
-
-  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
-  private static final org.apache.thrift.protocol.TField EXPORTS_FIELD_DESC = new org.apache.thrift.protocol.TField("exports", org.apache.thrift.protocol.TType.SET, (short)4);
-  private static final org.apache.thrift.protocol.TField PRE_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("preJobCommands", org.apache.thrift.protocol.TType.LIST, (short)5);
-  private static final org.apache.thrift.protocol.TField POST_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("postJobCommands", org.apache.thrift.protocol.TType.LIST, (short)6);
-  private static final org.apache.thrift.protocol.TField INSTALLED_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("installedPath", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.STRING, (short)8);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new GSISSHJobSubmissionStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new GSISSHJobSubmissionTupleSchemeFactory());
-  }
-
-  private String jobSubmissionDataID; // required
-  private ResourceJobManager resourceJobManager; // required
-  private int sshPort; // optional
-  private Set<String> exports; // optional
-  private List<String> preJobCommands; // optional
-  private List<String> postJobCommands; // optional
-  private String installedPath; // optional
-  private String monitorMode; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
-    /**
-     * 
-     * @see ResourceJobManager
-     */
-    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
-    SSH_PORT((short)3, "sshPort"),
-    EXPORTS((short)4, "exports"),
-    PRE_JOB_COMMANDS((short)5, "preJobCommands"),
-    POST_JOB_COMMANDS((short)6, "postJobCommands"),
-    INSTALLED_PATH((short)7, "installedPath"),
-    MONITOR_MODE((short)8, "monitorMode");
-
-    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_SUBMISSION_DATA_ID
-          return JOB_SUBMISSION_DATA_ID;
-        case 2: // RESOURCE_JOB_MANAGER
-          return RESOURCE_JOB_MANAGER;
-        case 3: // SSH_PORT
-          return SSH_PORT;
-        case 4: // EXPORTS
-          return EXPORTS;
-        case 5: // PRE_JOB_COMMANDS
-          return PRE_JOB_COMMANDS;
-        case 6: // POST_JOB_COMMANDS
-          return POST_JOB_COMMANDS;
-        case 7: // INSTALLED_PATH
-          return INSTALLED_PATH;
-        case 8: // MONITOR_MODE
-          return MONITOR_MODE;
-        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 __SSHPORT_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.SSH_PORT,_Fields.EXPORTS,_Fields.PRE_JOB_COMMANDS,_Fields.POST_JOB_COMMANDS,_Fields.INSTALLED_PATH,_Fields.MONITOR_MODE};
-  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
-    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    tmpMap.put(_Fields.EXPORTS, new org.apache.thrift.meta_data.FieldMetaData("exports", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.PRE_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("preJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.POST_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("postJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.INSTALLED_PATH, new org.apache.thrift.meta_data.FieldMetaData("installedPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", 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(GSISSHJobSubmission.class, metaDataMap);
-  }
-
-  public GSISSHJobSubmission() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.sshPort = 22;
-
-  }
-
-  public GSISSHJobSubmission(
-    String jobSubmissionDataID,
-    ResourceJobManager resourceJobManager)
-  {
-    this();
-    this.jobSubmissionDataID = jobSubmissionDataID;
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public GSISSHJobSubmission(GSISSHJobSubmission other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetJobSubmissionDataID()) {
-      this.jobSubmissionDataID = other.jobSubmissionDataID;
-    }
-    if (other.isSetResourceJobManager()) {
-      this.resourceJobManager = other.resourceJobManager;
-    }
-    this.sshPort = other.sshPort;
-    if (other.isSetExports()) {
-      Set<String> __this__exports = new HashSet<String>(other.exports);
-      this.exports = __this__exports;
-    }
-    if (other.isSetPreJobCommands()) {
-      List<String> __this__preJobCommands = new ArrayList<String>(other.preJobCommands);
-      this.preJobCommands = __this__preJobCommands;
-    }
-    if (other.isSetPostJobCommands()) {
-      List<String> __this__postJobCommands = new ArrayList<String>(other.postJobCommands);
-      this.postJobCommands = __this__postJobCommands;
-    }
-    if (other.isSetInstalledPath()) {
-      this.installedPath = other.installedPath;
-    }
-    if (other.isSetMonitorMode()) {
-      this.monitorMode = other.monitorMode;
-    }
-  }
-
-  public GSISSHJobSubmission deepCopy() {
-    return new GSISSHJobSubmission(this);
-  }
-
-  @Override
-  public void clear() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.resourceJobManager = null;
-    this.sshPort = 22;
-
-    this.exports = null;
-    this.preJobCommands = null;
-    this.postJobCommands = null;
-    this.installedPath = null;
-    this.monitorMode = null;
-  }
-
-  public String getJobSubmissionDataID() {
-    return this.jobSubmissionDataID;
-  }
-
-  public void setJobSubmissionDataID(String jobSubmissionDataID) {
-    this.jobSubmissionDataID = jobSubmissionDataID;
-  }
-
-  public void unsetJobSubmissionDataID() {
-    this.jobSubmissionDataID = null;
-  }
-
-  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobSubmissionDataID() {
-    return this.jobSubmissionDataID != null;
-  }
-
-  public void setJobSubmissionDataIDIsSet(boolean value) {
-    if (!value) {
-      this.jobSubmissionDataID = null;
-    }
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public ResourceJobManager getResourceJobManager() {
-    return this.resourceJobManager;
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  public void unsetResourceJobManager() {
-    this.resourceJobManager = null;
-  }
-
-  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
-  public boolean isSetResourceJobManager() {
-    return this.resourceJobManager != null;
-  }
-
-  public void setResourceJobManagerIsSet(boolean value) {
-    if (!value) {
-      this.resourceJobManager = null;
-    }
-  }
-
-  public int getSshPort() {
-    return this.sshPort;
-  }
-
-  public void setSshPort(int sshPort) {
-    this.sshPort = sshPort;
-    setSshPortIsSet(true);
-  }
-
-  public void unsetSshPort() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
-  public boolean isSetSshPort() {
-    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
-  }
-
-  public void setSshPortIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
-  }
-
-  public int getExportsSize() {
-    return (this.exports == null) ? 0 : this.exports.size();
-  }
-
-  public java.util.Iterator<String> getExportsIterator() {
-    return (this.exports == null) ? null : this.exports.iterator();
-  }
-
-  public void addToExports(String elem) {
-    if (this.exports == null) {
-      this.exports = new HashSet<String>();
-    }
-    this.exports.add(elem);
-  }
-
-  public Set<String> getExports() {
-    return this.exports;
-  }
-
-  public void setExports(Set<String> exports) {
-    this.exports = exports;
-  }
-
-  public void unsetExports() {
-    this.exports = null;
-  }
-
-  /** Returns true if field exports is set (has been assigned a value) and false otherwise */
-  public boolean isSetExports() {
-    return this.exports != null;
-  }
-
-  public void setExportsIsSet(boolean value) {
-    if (!value) {
-      this.exports = null;
-    }
-  }
-
-  public int getPreJobCommandsSize() {
-    return (this.preJobCommands == null) ? 0 : this.preJobCommands.size();
-  }
-
-  public java.util.Iterator<String> getPreJobCommandsIterator() {
-    return (this.preJobCommands == null) ? null : this.preJobCommands.iterator();
-  }
-
-  public void addToPreJobCommands(String elem) {
-    if (this.preJobCommands == null) {
-      this.preJobCommands = new ArrayList<String>();
-    }
-    this.preJobCommands.add(elem);
-  }
-
-  public List<String> getPreJobCommands() {
-    return this.preJobCommands;
-  }
-
-  public void setPreJobCommands(List<String> preJobCommands) {
-    this.preJobCommands = preJobCommands;
-  }
-
-  public void unsetPreJobCommands() {
-    this.preJobCommands = null;
-  }
-
-  /** Returns true if field preJobCommands is set (has been assigned a value) and false otherwise */
-  public boolean isSetPreJobCommands() {
-    return this.preJobCommands != null;
-  }
-
-  public void setPreJobCommandsIsSet(boolean value) {
-    if (!value) {
-      this.preJobCommands = null;
-    }
-  }
-
-  public int getPostJobCommandsSize() {
-    return (this.postJobCommands == null) ? 0 : this.postJobCommands.size();
-  }
-
-  public java.util.Iterator<String> getPostJobCommandsIterator() {
-    return (this.postJobCommands == null) ? null : this.postJobCommands.iterator();
-  }
-
-  public void addToPostJobCommands(String elem) {
-    if (this.postJobCommands == null) {
-      this.postJobCommands = new ArrayList<String>();
-    }
-    this.postJobCommands.add(elem);
-  }
-
-  public List<String> getPostJobCommands() {
-    return this.postJobCommands;
-  }
-
-  public void setPostJobCommands(List<String> postJobCommands) {
-    this.postJobCommands = postJobCommands;
-  }
-
-  public void unsetPostJobCommands() {
-    this.postJobCommands = null;
-  }
-
-  /** Returns true if field postJobCommands is set (has been assigned a value) and false otherwise */
-  public boolean isSetPostJobCommands() {
-    return this.postJobCommands != null;
-  }
-
-  public void setPostJobCommandsIsSet(boolean value) {
-    if (!value) {
-      this.postJobCommands = null;
-    }
-  }
-
-  public String getInstalledPath() {
-    return this.installedPath;
-  }
-
-  public void setInstalledPath(String installedPath) {
-    this.installedPath = installedPath;
-  }
-
-  public void unsetInstalledPath() {
-    this.installedPath = null;
-  }
-
-  /** Returns true if field installedPath is set (has been assigned a value) and false otherwise */
-  public boolean isSetInstalledPath() {
-    return this.installedPath != null;
-  }
-
-  public void setInstalledPathIsSet(boolean value) {
-    if (!value) {
-      this.installedPath = null;
-    }
-  }
-
-  public String getMonitorMode() {
-    return this.monitorMode;
-  }
-
-  public void setMonitorMode(String monitorMode) {
-    this.monitorMode = monitorMode;
-  }
-
-  public void unsetMonitorMode() {
-    this.monitorMode = null;
-  }
-
-  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
-  public boolean isSetMonitorMode() {
-    return this.monitorMode != null;
-  }
-
-  public void setMonitorModeIsSet(boolean value) {
-    if (!value) {
-      this.monitorMode = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      if (value == null) {
-        unsetJobSubmissionDataID();
-      } else {
-        setJobSubmissionDataID((String)value);
-      }
-      break;
-
-    case RESOURCE_JOB_MANAGER:
-      if (value == null) {
-        unsetResourceJobManager();
-      } else {
-        setResourceJobManager((ResourceJobManager)value);
-      }
-      break;
-
-    case SSH_PORT:
-      if (value == null) {
-        unsetSshPort();
-      } else {
-        setSshPort((Integer)value);
-      }
-      break;
-
-    case EXPORTS:
-      if (value == null) {
-        unsetExports();
-      } else {
-        setExports((Set<String>)value);
-      }
-      break;
-
-    case PRE_JOB_COMMANDS:
-      if (value == null) {
-        unsetPreJobCommands();
-      } else {
-        setPreJobCommands((List<String>)value);
-      }
-      break;
-
-    case POST_JOB_COMMANDS:
-      if (value == null) {
-        unsetPostJobCommands();
-      } else {
-        setPostJobCommands((List<String>)value);
-      }
-      break;
-
-    case INSTALLED_PATH:
-      if (value == null) {
-        unsetInstalledPath();
-      } else {
-        setInstalledPath((String)value);
-      }
-      break;
-
-    case MONITOR_MODE:
-      if (value == null) {
-        unsetMonitorMode();
-      } else {
-        setMonitorMode((String)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      return getJobSubmissionDataID();
-
-    case RESOURCE_JOB_MANAGER:
-      return getResourceJobManager();
-
-    case SSH_PORT:
-      return Integer.valueOf(getSshPort());
-
-    case EXPORTS:
-      return getExports();
-
-    case PRE_JOB_COMMANDS:
-      return getPreJobCommands();
-
-    case POST_JOB_COMMANDS:
-      return getPostJobCommands();
-
-    case INSTALLED_PATH:
-      return getInstalledPath();
-
-    case MONITOR_MODE:
-      return getMonitorMode();
-
-    }
-    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 JOB_SUBMISSION_DATA_ID:
-      return isSetJobSubmissionDataID();
-    case RESOURCE_JOB_MANAGER:
-      return isSetResourceJobManager();
-    case SSH_PORT:
-      return isSetSshPort();
-    case EXPORTS:
-      return isSetExports();
-    case PRE_JOB_COMMANDS:
-      return isSetPreJobCommands();
-    case POST_JOB_COMMANDS:
-      return isSetPostJobCommands();
-    case INSTALLED_PATH:
-      return isSetInstalledPath();
-    case MONITOR_MODE:
-      return isSetMonitorMode();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof GSISSHJobSubmission)
-      return this.equals((GSISSHJobSubmission)that);
-    return false;
-  }
-
-  public boolean equals(GSISSHJobSubmission that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
-    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
-    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
-      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
-        return false;
-      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
-        return false;
-    }
-
-    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
-    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
-    if (this_present_resourceJobManager || that_present_resourceJobManager) {
-      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
-        return false;
-      if (!this.resourceJobManager.equals(that.resourceJobManager))
-        return false;
-    }
-
-    boolean this_present_sshPort = true && this.isSetSshPort();
-    boolean that_present_sshPort = true && that.isSetSshPort();
-    if (this_present_sshPort || that_present_sshPort) {
-      if (!(this_present_sshPort && that_present_sshPort))
-        return false;
-      if (this.sshPort != that.sshPort)
-        return false;
-    }
-
-    boolean this_present_exports = true && this.isSetExports();
-    boolean that_present_exports = true && that.isSetExports();
-    if (this_present_exports || that_present_exports) {
-      if (!(this_present_exports && that_present_exports))
-        return false;
-      if (!this.exports.equals(that.exports))
-        return false;
-    }
-
-    boolean this_present_preJobCommands = true && this.isSetPreJobCommands();
-    boolean that_present_preJobCommands = true && that.isSetPreJobCommands();
-    if (this_present_preJobCommands || that_present_preJobCommands) {
-      if (!(this_present_preJobCommands && that_present_preJobCommands))
-        return false;
-      if (!this.preJobCommands.equals(that.preJobCommands))
-        return false;
-    }
-
-    boolean this_present_postJobCommands = true && this.isSetPostJobCommands();
-    boolean that_present_postJobCommands = true && that.isSetPostJobCommands();
-    if (this_present_postJobCommands || that_present_postJobCommands) {
-      if (!(this_present_postJobCommands && that_present_postJobCommands))
-        return false;
-      if (!this.postJobCommands.equals(that.postJobCommands))
-        return false;
-    }
-
-    boolean this_present_installedPath = true && this.isSetInstalledPath();
-    boolean that_present_installedPath = true && that.isSetInstalledPath();
-    if (this_present_installedPath || that_present_installedPath) {
-      if (!(this_present_installedPath && that_present_installedPath))
-        return false;
-      if (!this.installedPath.equals(that.installedPath))
-        return false;
-    }
-
-    boolean this_present_monitorMode = true && this.isSetMonitorMode();
-    boolean that_present_monitorMode = true && that.isSetMonitorMode();
-    if (this_present_monitorMode || that_present_monitorMode) {
-      if (!(this_present_monitorMode && that_present_monitorMode))
-        return false;
-      if (!this.monitorMode.equals(that.monitorMode))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(GSISSHJobSubmission other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobSubmissionDataID()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetResourceJobManager()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSshPort()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetExports()).compareTo(other.isSetExports());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetExports()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exports, other.exports);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetPreJobCommands()).compareTo(other.isSetPreJobCommands());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetPreJobCommands()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preJobCommands, other.preJobCommands);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetPostJobCommands()).compareTo(other.isSetPostJobCommands());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetPostJobCommands()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.postJobCommands, other.postJobCommands);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetInstalledPath()).compareTo(other.isSetInstalledPath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetInstalledPath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.installedPath, other.installedPath);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetMonitorMode()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
-      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("GSISSHJobSubmission(");
-    boolean first = true;
-
-    sb.append("jobSubmissionDataID:");
-    if (this.jobSubmissionDataID == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.jobSubmissionDataID);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("resourceJobManager:");
-    if (this.resourceJobManager == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.resourceJobManager);
-    }
-    first = false;
-    if (isSetSshPort()) {
-      if (!first) sb.append(", ");
-      sb.append("sshPort:");
-      sb.append(this.sshPort);
-      first = false;
-    }
-    if (isSetExports()) {
-      if (!first) sb.append(", ");
-      sb.append("exports:");
-      if (this.exports == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.exports);
-      }
-      first = false;
-    }
-    if (isSetPreJobCommands()) {
-      if (!first) sb.append(", ");
-      sb.append("preJobCommands:");
-      if (this.preJobCommands == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.preJobCommands);
-      }
-      first = false;
-    }
-    if (isSetPostJobCommands()) {
-      if (!first) sb.append(", ");
-      sb.append("postJobCommands:");
-      if (this.postJobCommands == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.postJobCommands);
-      }
-      first = false;
-    }
-    if (isSetInstalledPath()) {
-      if (!first) sb.append(", ");
-      sb.append("installedPath:");
-      if (this.installedPath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.installedPath);
-      }
-      first = false;
-    }
-    if (isSetMonitorMode()) {
-      if (!first) sb.append(", ");
-      sb.append("monitorMode:");
-      if (this.monitorMode == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.monitorMode);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetJobSubmissionDataID()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
-    }
-
-    if (!isSetResourceJobManager()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class GSISSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
-    public GSISSHJobSubmissionStandardScheme getScheme() {
-      return new GSISSHJobSubmissionStandardScheme();
-    }
-  }
-
-  private static class GSISSHJobSubmissionStandardScheme extends StandardScheme<GSISSHJobSubmission> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, GSISSHJobSubmission 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: // JOB_SUBMISSION_DATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobSubmissionDataID = iprot.readString();
-              struct.setJobSubmissionDataIDIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // RESOURCE_JOB_MANAGER
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-              struct.setResourceJobManagerIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // SSH_PORT
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.sshPort = iprot.readI32();
-              struct.setSshPortIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // EXPORTS
-            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
-              {
-                org.apache.thrift.protocol.TSet _set16 = iprot.readSetBegin();
-                struct.exports = new HashSet<String>(2*_set16.size);
-                for (int _i17 = 0; _i17 < _set16.size; ++_i17)
-                {
-                  String _elem18;
-                  _elem18 = iprot.readString();
-                  struct.exports.add(_elem18);
-                }
-                iprot.readSetEnd();
-              }
-              struct.setExportsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // PRE_JOB_COMMANDS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
-                struct.preJobCommands = new ArrayList<String>(_list19.size);
-                for (int _i20 = 0; _i20 < _list19.size; ++_i20)
-                {
-                  String _elem21;
-                  _elem21 = iprot.readString();
-                  struct.preJobCommands.add(_elem21);
-                }
-                iprot.readListEnd();
-              }
-              struct.setPreJobCommandsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // POST_JOB_COMMANDS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list22 = iprot.readListBegin();
-                struct.postJobCommands = new ArrayList<String>(_list22.size);
-                for (int _i23 = 0; _i23 < _list22.size; ++_i23)
-                {
-                  String _elem24;
-                  _elem24 = iprot.readString();
-                  struct.postJobCommands.add(_elem24);
-                }
-                iprot.readListEnd();
-              }
-              struct.setPostJobCommandsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // INSTALLED_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.installedPath = iprot.readString();
-              struct.setInstalledPathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // MONITOR_MODE
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.monitorMode = iprot.readString();
-              struct.setMonitorModeIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.jobSubmissionDataID != null) {
-        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
-        oprot.writeString(struct.jobSubmissionDataID);
-        oprot.writeFieldEnd();
-      }
-      if (struct.resourceJobManager != null) {
-        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
-        oprot.writeI32(struct.resourceJobManager.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetSshPort()) {
-        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
-        oprot.writeI32(struct.sshPort);
-        oprot.writeFieldEnd();
-      }
-      if (struct.exports != null) {
-        if (struct.isSetExports()) {
-          oprot.writeFieldBegin(EXPORTS_FIELD_DESC);
-          {
-            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.exports.size()));
-            for (String _iter25 : struct.exports)
-            {
-              oprot.writeString(_iter25);
-            }
-            oprot.writeSetEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.preJobCommands != null) {
-        if (struct.isSetPreJobCommands()) {
-          oprot.writeFieldBegin(PRE_JOB_COMMANDS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.preJobCommands.size()));
-            for (String _iter26 : struct.preJobCommands)
-            {
-              oprot.writeString(_iter26);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.postJobCommands != null) {
-        if (struct.isSetPostJobCommands()) {
-          oprot.writeFieldBegin(POST_JOB_COMMANDS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.postJobCommands.size()));
-            for (String _iter27 : struct.postJobCommands)
-            {
-              oprot.writeString(_iter27);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.installedPath != null) {
-        if (struct.isSetInstalledPath()) {
-          oprot.writeFieldBegin(INSTALLED_PATH_FIELD_DESC);
-          oprot.writeString(struct.installedPath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.monitorMode != null) {
-        if (struct.isSetMonitorMode()) {
-          oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
-          oprot.writeString(struct.monitorMode);
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class GSISSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
-    public GSISSHJobSubmissionTupleScheme getScheme() {
-      return new GSISSHJobSubmissionTupleScheme();
-    }
-  }
-
-  private static class GSISSHJobSubmissionTupleScheme extends TupleScheme<GSISSHJobSubmission> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.jobSubmissionDataID);
-      oprot.writeI32(struct.resourceJobManager.getValue());
-      BitSet optionals = new BitSet();
-      if (struct.isSetSshPort()) {
-        optionals.set(0);
-      }
-      if (struct.isSetExports()) {
-        optionals.set(1);
-      }
-      if (struct.isSetPreJobCommands()) {
-        optionals.set(2);
-      }
-      if (struct.isSetPostJobCommands()) {
-        optionals.set(3);
-      }
-      if (struct.isSetInstalledPath()) {
-        optionals.set(4);
-      }
-      if (struct.isSetMonitorMode()) {
-        optionals.set(5);
-      }
-      oprot.writeBitSet(optionals, 6);
-      if (struct.isSetSshPort()) {
-        oprot.writeI32(struct.sshPort);
-      }
-      if (struct.isSetExports()) {
-        {
-          oprot.writeI32(struct.exports.size());
-          for (String _iter28 : struct.exports)
-          {
-            oprot.writeString(_iter28);
-          }
-        }
-      }
-      if (struct.isSetPreJobCommands()) {
-        {
-          oprot.writeI32(struct.preJobCommands.size());
-          for (String _iter29 : struct.preJobCommands)
-          {
-            oprot.writeString(_iter29);
-          }
-        }
-      }
-      if (struct.isSetPostJobCommands()) {
-        {
-          oprot.writeI32(struct.postJobCommands.size());
-          for (String _iter30 : struct.postJobCommands)
-          {
-            oprot.writeString(_iter30);
-          }
-        }
-      }
-      if (struct.isSetInstalledPath()) {
-        oprot.writeString(struct.installedPath);
-      }
-      if (struct.isSetMonitorMode()) {
-        oprot.writeString(struct.monitorMode);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.jobSubmissionDataID = iprot.readString();
-      struct.setJobSubmissionDataIDIsSet(true);
-      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-      struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(6);
-      if (incoming.get(0)) {
-        struct.sshPort = iprot.readI32();
-        struct.setSshPortIsSet(true);
-      }
-      if (incoming.get(1)) {
-        {
-          org.apache.thrift.protocol.TSet _set31 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.exports = new HashSet<String>(2*_set31.size);
-          for (int _i32 = 0; _i32 < _set31.size; ++_i32)
-          {
-            String _elem33;
-            _elem33 = iprot.readString();
-            struct.exports.add(_elem33);
-          }
-        }
-        struct.setExportsIsSet(true);
-      }
-      if (incoming.get(2)) {
-        {
-          org.apache.thrift.protocol.TList _list34 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.preJobCommands = new ArrayList<String>(_list34.size);
-          for (int _i35 = 0; _i35 < _list34.size; ++_i35)
-          {
-            String _elem36;
-            _elem36 = iprot.readString();
-            struct.preJobCommands.add(_elem36);
-          }
-        }
-        struct.setPreJobCommandsIsSet(true);
-      }
-      if (incoming.get(3)) {
-        {
-          org.apache.thrift.protocol.TList _list37 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.postJobCommands = new ArrayList<String>(_list37.size);
-          for (int _i38 = 0; _i38 < _list37.size; ++_i38)
-          {
-            String _elem39;
-            _elem39 = iprot.readString();
-            struct.postJobCommands.add(_elem39);
-          }
-        }
-        struct.setPostJobCommandsIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.installedPath = iprot.readString();
-        struct.setInstalledPathIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.monitorMode = iprot.readString();
-        struct.setMonitorModeIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GlobusJobSubmission.java
deleted file mode 100644
index e895d01..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/GlobusJobSubmission.java
+++ /dev/null
@@ -1,768 +0,0 @@
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("all") public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
-
-  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)3);
-  private static final org.apache.thrift.protocol.TField GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("globusGateKeeperEndPoint", org.apache.thrift.protocol.TType.LIST, (short)4);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new GlobusJobSubmissionStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new GlobusJobSubmissionTupleSchemeFactory());
-  }
-
-  private String jobSubmissionDataID; // required
-  private SecurityProtocol securityProtocol; // required
-  private ResourceJobManager resourceJobManager; // required
-  private List<String> globusGateKeeperEndPoint; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    JOB_SUBMISSION_DATA_ID((short)1, "jobSubmissionDataID"),
-    /**
-     * 
-     * @see SecurityProtocol
-     */
-    SECURITY_PROTOCOL((short)2, "securityProtocol"),
-    /**
-     * 
-     * @see ResourceJobManager
-     */
-    RESOURCE_JOB_MANAGER((short)3, "resourceJobManager"),
-    GLOBUS_GATE_KEEPER_END_POINT((short)4, "globusGateKeeperEndPoint");
-
-    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_SUBMISSION_DATA_ID
-          return JOB_SUBMISSION_DATA_ID;
-        case 2: // SECURITY_PROTOCOL
-          return SECURITY_PROTOCOL;
-        case 3: // RESOURCE_JOB_MANAGER
-          return RESOURCE_JOB_MANAGER;
-        case 4: // GLOBUS_GATE_KEEPER_END_POINT
-          return GLOBUS_GATE_KEEPER_END_POINT;
-        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 _Fields optionals[] = {_Fields.GLOBUS_GATE_KEEPER_END_POINT};
-  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_SUBMISSION_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
-    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
-    tmpMap.put(_Fields.GLOBUS_GATE_KEEPER_END_POINT, new org.apache.thrift.meta_data.FieldMetaData("globusGateKeeperEndPoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GlobusJobSubmission.class, metaDataMap);
-  }
-
-  public GlobusJobSubmission() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-  }
-
-  public GlobusJobSubmission(
-    String jobSubmissionDataID,
-    SecurityProtocol securityProtocol,
-    ResourceJobManager resourceJobManager)
-  {
-    this();
-    this.jobSubmissionDataID = jobSubmissionDataID;
-    this.securityProtocol = securityProtocol;
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public GlobusJobSubmission(GlobusJobSubmission other) {
-    if (other.isSetJobSubmissionDataID()) {
-      this.jobSubmissionDataID = other.jobSubmissionDataID;
-    }
-    if (other.isSetSecurityProtocol()) {
-      this.securityProtocol = other.securityProtocol;
-    }
-    if (other.isSetResourceJobManager()) {
-      this.resourceJobManager = other.resourceJobManager;
-    }
-    if (other.isSetGlobusGateKeeperEndPoint()) {
-      List<String> __this__globusGateKeeperEndPoint = new ArrayList<String>(other.globusGateKeeperEndPoint);
-      this.globusGateKeeperEndPoint = __this__globusGateKeeperEndPoint;
-    }
-  }
-
-  public GlobusJobSubmission deepCopy() {
-    return new GlobusJobSubmission(this);
-  }
-
-  @Override
-  public void clear() {
-    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.securityProtocol = null;
-    this.resourceJobManager = null;
-    this.globusGateKeeperEndPoint = null;
-  }
-
-  public String getJobSubmissionDataID() {
-    return this.jobSubmissionDataID;
-  }
-
-  public void setJobSubmissionDataID(String jobSubmissionDataID) {
-    this.jobSubmissionDataID = jobSubmissionDataID;
-  }
-
-  public void unsetJobSubmissionDataID() {
-    this.jobSubmissionDataID = null;
-  }
-
-  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobSubmissionDataID() {
-    return this.jobSubmissionDataID != null;
-  }
-
-  public void setJobSubmissionDataIDIsSet(boolean value) {
-    if (!value) {
-      this.jobSubmissionDataID = null;
-    }
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public SecurityProtocol getSecurityProtocol() {
-    return this.securityProtocol;
-  }
-
-  /**
-   * 
-   * @see SecurityProtocol
-   */
-  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
-    this.securityProtocol = securityProtocol;
-  }
-
-  public void unsetSecurityProtocol() {
-    this.securityProtocol = null;
-  }
-
-  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetSecurityProtocol() {
-    return this.securityProtocol != null;
-  }
-
-  public void setSecurityProtocolIsSet(boolean value) {
-    if (!value) {
-      this.securityProtocol = null;
-    }
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public ResourceJobManager getResourceJobManager() {
-    return this.resourceJobManager;
-  }
-
-  /**
-   * 
-   * @see ResourceJobManager
-   */
-  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
-    this.resourceJobManager = resourceJobManager;
-  }
-
-  public void unsetResourceJobManager() {
-    this.resourceJobManager = null;
-  }
-
-  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
-  public boolean isSetResourceJobManager() {
-    return this.resourceJobManager != null;
-  }
-
-  public void setResourceJobManagerIsSet(boolean value) {
-    if (!value) {
-      this.resourceJobManager = null;
-    }
-  }
-
-  public int getGlobusGateKeeperEndPointSize() {
-    return (this.globusGateKeeperEndPoint == null) ? 0 : this.globusGateKeeperEndPoint.size();
-  }
-
-  public java.util.Iterator<String> getGlobusGateKeeperEndPointIterator() {
-    return (this.globusGateKeeperEndPoint == null) ? null : this.globusGateKeeperEndPoint.iterator();
-  }
-
-  public void addToGlobusGateKeeperEndPoint(String elem) {
-    if (this.globusGateKeeperEndPoint == null) {
-      this.globusGateKeeperEndPoint = new ArrayList<String>();
-    }
-    this.globusGateKeeperEndPoint.add(elem);
-  }
-
-  public List<String> getGlobusGateKeeperEndPoint() {
-    return this.globusGateKeeperEndPoint;
-  }
-
-  public void setGlobusGateKeeperEndPoint(List<String> globusGateKeeperEndPoint) {
-    this.globusGateKeeperEndPoint = globusGateKeeperEndPoint;
-  }
-
-  public void unsetGlobusGateKeeperEndPoint() {
-    this.globusGateKeeperEndPoint = null;
-  }
-
-  /** Returns true if field globusGateKeeperEndPoint is set (has been assigned a value) and false otherwise */
-  public boolean isSetGlobusGateKeeperEndPoint() {
-    return this.globusGateKeeperEndPoint != null;
-  }
-
-  public void setGlobusGateKeeperEndPointIsSet(boolean value) {
-    if (!value) {
-      this.globusGateKeeperEndPoint = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      if (value == null) {
-        unsetJobSubmissionDataID();
-      } else {
-        setJobSubmissionDataID((String)value);
-      }
-      break;
-
-    case SECURITY_PROTOCOL:
-      if (value == null) {
-        unsetSecurityProtocol();
-      } else {
-        setSecurityProtocol((SecurityProtocol)value);
-      }
-      break;
-
-    case RESOURCE_JOB_MANAGER:
-      if (value == null) {
-        unsetResourceJobManager();
-      } else {
-        setResourceJobManager((ResourceJobManager)value);
-      }
-      break;
-
-    case GLOBUS_GATE_KEEPER_END_POINT:
-      if (value == null) {
-        unsetGlobusGateKeeperEndPoint();
-      } else {
-        setGlobusGateKeeperEndPoint((List<String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case JOB_SUBMISSION_DATA_ID:
-      return getJobSubmissionDataID();
-
-    case SECURITY_PROTOCOL:
-      return getSecurityProtocol();
-
-    case RESOURCE_JOB_MANAGER:
-      return getResourceJobManager();
-
-    case GLOBUS_GATE_KEEPER_END_POINT:
-      return getGlobusGateKeeperEndPoint();
-
-    }
-    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 JOB_SUBMISSION_DATA_ID:
-      return isSetJobSubmissionDataID();
-    case SECURITY_PROTOCOL:
-      return isSetSecurityProtocol();
-    case RESOURCE_JOB_MANAGER:
-      return isSetResourceJobManager();
-    case GLOBUS_GATE_KEEPER_END_POINT:
-      return isSetGlobusGateKeeperEndPoint();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof GlobusJobSubmission)
-      return this.equals((GlobusJobSubmission)that);
-    return false;
-  }
-
-  public boolean equals(GlobusJobSubmission that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
-    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
-    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
-      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
-        return false;
-      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
-        return false;
-    }
-
-    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
-    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
-    if (this_present_securityProtocol || that_present_securityProtocol) {
-      if (!(this_present_securityProtocol && that_present_securityProtocol))
-        return false;
-      if (!this.securityProtocol.equals(that.securityProtocol))
-        return false;
-    }
-
-    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
-    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
-    if (this_present_resourceJobManager || that_present_resourceJobManager) {
-      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
-        return false;
-      if (!this.resourceJobManager.equals(that.resourceJobManager))
-        return false;
-    }
-
-    boolean this_present_globusGateKeeperEndPoint = true && this.isSetGlobusGateKeeperEndPoint();
-    boolean that_present_globusGateKeeperEndPoint = true && that.isSetGlobusGateKeeperEndPoint();
-    if (this_present_globusGateKeeperEndPoint || that_present_globusGateKeeperEndPoint) {
-      if (!(this_present_globusGateKeeperEndPoint && that_present_globusGateKeeperEndPoint))
-        return false;
-      if (!this.globusGateKeeperEndPoint.equals(that.globusGateKeeperEndPoint))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  @Override
-  public int compareTo(GlobusJobSubmission other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobSubmissionDataID()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSecurityProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetResourceJobManager()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGlobusGateKeeperEndPoint()).compareTo(other.isSetGlobusGateKeeperEndPoint());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGlobusGateKeeperEndPoint()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.globusGateKeeperEndPoint, other.globusGateKeeperEndPoint);
-      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("GlobusJobSubmission(");
-    boolean first = true;
-
-    sb.append("jobSubmissionDataID:");
-    if (this.jobSubmissionDataID == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.jobSubmissionDataID);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("securityProtocol:");
-    if (this.securityProtocol == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.securityProtocol);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("resourceJobManager:");
-    if (this.resourceJobManager == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.resourceJobManager);
-    }
-    first = false;
-    if (isSetGlobusGateKeeperEndPoint()) {
-      if (!first) sb.append(", ");
-      sb.append("globusGateKeeperEndPoint:");
-      if (this.globusGateKeeperEndPoint == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.globusGateKeeperEndPoint);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetJobSubmissionDataID()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' is unset! Struct:" + toString());
-    }
-
-    if (!isSetSecurityProtocol()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
-    }
-
-    if (!isSetResourceJobManager()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      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 GlobusJobSubmissionStandardSchemeFactory implements SchemeFactory {
-    public GlobusJobSubmissionStandardScheme getScheme() {
-      return new GlobusJobSubmissionStandardScheme();
-    }
-  }
-
-  private static class GlobusJobSubmissionStandardScheme extends StandardScheme<GlobusJobSubmission> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, GlobusJobSubmission 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: // JOB_SUBMISSION_DATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobSubmissionDataID = iprot.readString();
-              struct.setJobSubmissionDataIDIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // SECURITY_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-              struct.setSecurityProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // RESOURCE_JOB_MANAGER
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-              struct.setResourceJobManagerIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // GLOBUS_GATE_KEEPER_END_POINT
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
-                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list8.size);
-                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
-                {
-                  String _elem10;
-                  _elem10 = iprot.readString();
-                  struct.globusGateKeeperEndPoint.add(_elem10);
-                }
-                iprot.readListEnd();
-              }
-              struct.setGlobusGateKeeperEndPointIsSet(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();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.jobSubmissionDataID != null) {
-        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
-        oprot.writeString(struct.jobSubmissionDataID);
-        oprot.writeFieldEnd();
-      }
-      if (struct.securityProtocol != null) {
-        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
-        oprot.writeI32(struct.securityProtocol.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.resourceJobManager != null) {
-        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
-        oprot.writeI32(struct.resourceJobManager.getValue());
-        oprot.writeFieldEnd();
-      }
-      if (struct.globusGateKeeperEndPoint != null) {
-        if (struct.isSetGlobusGateKeeperEndPoint()) {
-          oprot.writeFieldBegin(GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.globusGateKeeperEndPoint.size()));
-            for (String _iter11 : struct.globusGateKeeperEndPoint)
-            {
-              oprot.writeString(_iter11);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class GlobusJobSubmissionTupleSchemeFactory implements SchemeFactory {
-    public GlobusJobSubmissionTupleScheme getScheme() {
-      return new GlobusJobSubmissionTupleScheme();
-    }
-  }
-
-  private static class GlobusJobSubmissionTupleScheme extends TupleScheme<GlobusJobSubmission> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.jobSubmissionDataID);
-      oprot.writeI32(struct.securityProtocol.getValue());
-      oprot.writeI32(struct.resourceJobManager.getValue());
-      BitSet optionals = new BitSet();
-      if (struct.isSetGlobusGateKeeperEndPoint()) {
-        optionals.set(0);
-      }
-      oprot.writeBitSet(optionals, 1);
-      if (struct.isSetGlobusGateKeeperEndPoint()) {
-        {
-          oprot.writeI32(struct.globusGateKeeperEndPoint.size());
-          for (String _iter12 : struct.globusGateKeeperEndPoint)
-          {
-            oprot.writeString(_iter12);
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.jobSubmissionDataID = iprot.readString();
-      struct.setJobSubmissionDataIDIsSet(true);
-      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
-      struct.setSecurityProtocolIsSet(true);
-      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
-      struct.setResourceJobManagerIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
-      if (incoming.get(0)) {
-        {
-          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list13.size);
-          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
-          {
-            String _elem15;
-            _elem15 = iprot.readString();
-            struct.globusGateKeeperEndPoint.add(_elem15);
-          }
-        }
-        struct.setGlobusGateKeeperEndPointIsSet(true);
-      }
-    }
-  }
-
-}
-


[08/12] adding generated code for app-catalog

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.h
new file mode 100644
index 0000000..1c89d08
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/applicationInterfaceModel_types.h
@@ -0,0 +1,308 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef applicationInterfaceModel_TYPES_H
+#define applicationInterfaceModel_TYPES_H
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+
+
+struct DataType {
+  enum type {
+    STRING = 0,
+    INTEGER = 1,
+    FLOAT = 2,
+    URI = 3
+  };
+};
+
+extern const std::map<int, const char*> _DataType_VALUES_TO_NAMES;
+
+typedef struct _InputDataObjectType__isset {
+  _InputDataObjectType__isset() : value(false), type(false), applicationArguement(false), standardInput(true), userFriendlyDescription(false), metaData(false) {}
+  bool value;
+  bool type;
+  bool applicationArguement;
+  bool standardInput;
+  bool userFriendlyDescription;
+  bool metaData;
+} _InputDataObjectType__isset;
+
+class InputDataObjectType {
+ public:
+
+  static const char* ascii_fingerprint; // = "0C147F4C4DFD0B9FF70275BF29D07281";
+  static const uint8_t binary_fingerprint[16]; // = {0x0C,0x14,0x7F,0x4C,0x4D,0xFD,0x0B,0x9F,0xF7,0x02,0x75,0xBF,0x29,0xD0,0x72,0x81};
+
+  InputDataObjectType() : isEmpty(false), name(), value(), type((DataType::type)0), applicationArguement(), standardInput(false), userFriendlyDescription(), metaData() {
+  }
+
+  virtual ~InputDataObjectType() throw() {}
+
+  bool isEmpty;
+  std::string name;
+  std::string value;
+  DataType::type type;
+  std::string applicationArguement;
+  bool standardInput;
+  std::string userFriendlyDescription;
+  std::string metaData;
+
+  _InputDataObjectType__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_name(const std::string& val) {
+    name = val;
+  }
+
+  void __set_value(const std::string& val) {
+    value = val;
+    __isset.value = true;
+  }
+
+  void __set_type(const DataType::type val) {
+    type = val;
+    __isset.type = true;
+  }
+
+  void __set_applicationArguement(const std::string& val) {
+    applicationArguement = val;
+    __isset.applicationArguement = true;
+  }
+
+  void __set_standardInput(const bool val) {
+    standardInput = val;
+    __isset.standardInput = true;
+  }
+
+  void __set_userFriendlyDescription(const std::string& val) {
+    userFriendlyDescription = val;
+    __isset.userFriendlyDescription = true;
+  }
+
+  void __set_metaData(const std::string& val) {
+    metaData = val;
+    __isset.metaData = true;
+  }
+
+  bool operator == (const InputDataObjectType & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(name == rhs.name))
+      return false;
+    if (__isset.value != rhs.__isset.value)
+      return false;
+    else if (__isset.value && !(value == rhs.value))
+      return false;
+    if (__isset.type != rhs.__isset.type)
+      return false;
+    else if (__isset.type && !(type == rhs.type))
+      return false;
+    if (__isset.applicationArguement != rhs.__isset.applicationArguement)
+      return false;
+    else if (__isset.applicationArguement && !(applicationArguement == rhs.applicationArguement))
+      return false;
+    if (__isset.standardInput != rhs.__isset.standardInput)
+      return false;
+    else if (__isset.standardInput && !(standardInput == rhs.standardInput))
+      return false;
+    if (__isset.userFriendlyDescription != rhs.__isset.userFriendlyDescription)
+      return false;
+    else if (__isset.userFriendlyDescription && !(userFriendlyDescription == rhs.userFriendlyDescription))
+      return false;
+    if (__isset.metaData != rhs.__isset.metaData)
+      return false;
+    else if (__isset.metaData && !(metaData == rhs.metaData))
+      return false;
+    return true;
+  }
+  bool operator != (const InputDataObjectType &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const InputDataObjectType & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(InputDataObjectType &a, InputDataObjectType &b);
+
+typedef struct _OutputDataObjectType__isset {
+  _OutputDataObjectType__isset() : value(false), type(false) {}
+  bool value;
+  bool type;
+} _OutputDataObjectType__isset;
+
+class OutputDataObjectType {
+ public:
+
+  static const char* ascii_fingerprint; // = "FFD96F45C68610A5AC6E843C512B01EC";
+  static const uint8_t binary_fingerprint[16]; // = {0xFF,0xD9,0x6F,0x45,0xC6,0x86,0x10,0xA5,0xAC,0x6E,0x84,0x3C,0x51,0x2B,0x01,0xEC};
+
+  OutputDataObjectType() : isEmpty(false), name(), value(), type((DataType::type)0) {
+  }
+
+  virtual ~OutputDataObjectType() throw() {}
+
+  bool isEmpty;
+  std::string name;
+  std::string value;
+  DataType::type type;
+
+  _OutputDataObjectType__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_name(const std::string& val) {
+    name = val;
+  }
+
+  void __set_value(const std::string& val) {
+    value = val;
+    __isset.value = true;
+  }
+
+  void __set_type(const DataType::type val) {
+    type = val;
+    __isset.type = true;
+  }
+
+  bool operator == (const OutputDataObjectType & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(name == rhs.name))
+      return false;
+    if (__isset.value != rhs.__isset.value)
+      return false;
+    else if (__isset.value && !(value == rhs.value))
+      return false;
+    if (__isset.type != rhs.__isset.type)
+      return false;
+    else if (__isset.type && !(type == rhs.type))
+      return false;
+    return true;
+  }
+  bool operator != (const OutputDataObjectType &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const OutputDataObjectType & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(OutputDataObjectType &a, OutputDataObjectType &b);
+
+typedef struct _ApplicationInterfaceDescription__isset {
+  _ApplicationInterfaceDescription__isset() : applicationModules(false), applicationInputs(false), applicationOutputs(false) {}
+  bool applicationModules;
+  bool applicationInputs;
+  bool applicationOutputs;
+} _ApplicationInterfaceDescription__isset;
+
+class ApplicationInterfaceDescription {
+ public:
+
+  static const char* ascii_fingerprint; // = "EF5E3A4F34CCD8942A56C19B7B92E473";
+  static const uint8_t binary_fingerprint[16]; // = {0xEF,0x5E,0x3A,0x4F,0x34,0xCC,0xD8,0x94,0x2A,0x56,0xC1,0x9B,0x7B,0x92,0xE4,0x73};
+
+  ApplicationInterfaceDescription() : isEmpty(false), applicationInterfaceId("DO_NOT_SET_AT_CLIENTS"), applicationName() {
+  }
+
+  virtual ~ApplicationInterfaceDescription() throw() {}
+
+  bool isEmpty;
+  std::string applicationInterfaceId;
+  std::string applicationName;
+  std::vector<std::string>  applicationModules;
+  std::vector<InputDataObjectType>  applicationInputs;
+  std::vector<OutputDataObjectType>  applicationOutputs;
+
+  _ApplicationInterfaceDescription__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_applicationInterfaceId(const std::string& val) {
+    applicationInterfaceId = val;
+  }
+
+  void __set_applicationName(const std::string& val) {
+    applicationName = val;
+  }
+
+  void __set_applicationModules(const std::vector<std::string> & val) {
+    applicationModules = val;
+    __isset.applicationModules = true;
+  }
+
+  void __set_applicationInputs(const std::vector<InputDataObjectType> & val) {
+    applicationInputs = val;
+    __isset.applicationInputs = true;
+  }
+
+  void __set_applicationOutputs(const std::vector<OutputDataObjectType> & val) {
+    applicationOutputs = val;
+    __isset.applicationOutputs = true;
+  }
+
+  bool operator == (const ApplicationInterfaceDescription & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(applicationInterfaceId == rhs.applicationInterfaceId))
+      return false;
+    if (!(applicationName == rhs.applicationName))
+      return false;
+    if (__isset.applicationModules != rhs.__isset.applicationModules)
+      return false;
+    else if (__isset.applicationModules && !(applicationModules == rhs.applicationModules))
+      return false;
+    if (__isset.applicationInputs != rhs.__isset.applicationInputs)
+      return false;
+    else if (__isset.applicationInputs && !(applicationInputs == rhs.applicationInputs))
+      return false;
+    if (__isset.applicationOutputs != rhs.__isset.applicationOutputs)
+      return false;
+    else if (__isset.applicationOutputs && !(applicationOutputs == rhs.applicationOutputs))
+      return false;
+    return true;
+  }
+  bool operator != (const ApplicationInterfaceDescription &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ApplicationInterfaceDescription & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(ApplicationInterfaceDescription &a, ApplicationInterfaceDescription &b);
+
+
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.cpp
new file mode 100644
index 0000000..ab08041
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.cpp
@@ -0,0 +1,19 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "computeHostModel_constants.h"
+
+
+
+const computeHostModelConstants g_computeHostModel_constants;
+
+computeHostModelConstants::computeHostModelConstants() {
+  DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.h
new file mode 100644
index 0000000..bcf9989
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_constants.h
@@ -0,0 +1,25 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef computeHostModel_CONSTANTS_H
+#define computeHostModel_CONSTANTS_H
+
+#include "computeHostModel_types.h"
+
+
+
+class computeHostModelConstants {
+ public:
+  computeHostModelConstants();
+
+  std::string DEFAULT_ID;
+};
+
+extern const computeHostModelConstants g_computeHostModel_constants;
+
+
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.cpp
new file mode 100644
index 0000000..05b3092
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.cpp
@@ -0,0 +1,1025 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "computeHostModel_types.h"
+
+#include <algorithm>
+
+
+
+int _kResourceJobManagerValues[] = {
+  ResourceJobManager::FORK,
+  ResourceJobManager::PBS,
+  ResourceJobManager::UGE,
+  ResourceJobManager::SLURM
+};
+const char* _kResourceJobManagerNames[] = {
+  "FORK",
+  "PBS",
+  "UGE",
+  "SLURM"
+};
+const std::map<int, const char*> _ResourceJobManager_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kResourceJobManagerValues, _kResourceJobManagerNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kJobSubmissionProtocolValues[] = {
+  JobSubmissionProtocol::SSH,
+  JobSubmissionProtocol::GSISSH,
+  JobSubmissionProtocol::GRAM,
+  JobSubmissionProtocol::UNICORE
+};
+const char* _kJobSubmissionProtocolNames[] = {
+  "SSH",
+  "GSISSH",
+  "GRAM",
+  "UNICORE"
+};
+const std::map<int, const char*> _JobSubmissionProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kJobSubmissionProtocolValues, _kJobSubmissionProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kDataMovementProtocolValues[] = {
+  DataMovementProtocol::SCP,
+  DataMovementProtocol::SFTP,
+  DataMovementProtocol::GridFTP,
+  DataMovementProtocol::UNICORE_STORAGE_SERVICE
+};
+const char* _kDataMovementProtocolNames[] = {
+  "SCP",
+  "SFTP",
+  "GridFTP",
+  "UNICORE_STORAGE_SERVICE"
+};
+const std::map<int, const char*> _DataMovementProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kDataMovementProtocolValues, _kDataMovementProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kSecurityProtocolValues[] = {
+  SecurityProtocol::USERNAME_PASSWORD,
+  SecurityProtocol::SSH_KEYS,
+  SecurityProtocol::GSI,
+  SecurityProtocol::KERBEROS,
+  SecurityProtocol::OAUTH
+};
+const char* _kSecurityProtocolNames[] = {
+  "USERNAME_PASSWORD",
+  "SSH_KEYS",
+  "GSI",
+  "KERBEROS",
+  "OAUTH"
+};
+const std::map<int, const char*> _SecurityProtocol_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, _kSecurityProtocolValues, _kSecurityProtocolNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+const char* SCPDataMovement::ascii_fingerprint = "FEB6B2CD28861B4EED855CACA1FEF2CB";
+const uint8_t SCPDataMovement::binary_fingerprint[16] = {0xFE,0xB6,0xB2,0xCD,0x28,0x86,0x1B,0x4E,0xED,0x85,0x5C,0xAC,0xA1,0xFE,0xF2,0xCB};
+
+uint32_t SCPDataMovement::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_dataMovementDataID = false;
+  bool isset_securityProtocol = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->dataMovementDataID);
+          isset_dataMovementDataID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->securityProtocol = (SecurityProtocol::type)ecast0;
+          isset_securityProtocol = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->sshPort);
+          this->__isset.sshPort = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_dataMovementDataID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_securityProtocol)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t SCPDataMovement::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("SCPDataMovement");
+
+  xfer += oprot->writeFieldBegin("dataMovementDataID", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->dataMovementDataID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("securityProtocol", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->securityProtocol);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.sshPort) {
+    xfer += oprot->writeFieldBegin("sshPort", ::apache::thrift::protocol::T_I32, 3);
+    xfer += oprot->writeI32(this->sshPort);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(SCPDataMovement &a, SCPDataMovement &b) {
+  using ::std::swap;
+  swap(a.dataMovementDataID, b.dataMovementDataID);
+  swap(a.securityProtocol, b.securityProtocol);
+  swap(a.sshPort, b.sshPort);
+  swap(a.__isset, b.__isset);
+}
+
+const char* GridFTPDataMovement::ascii_fingerprint = "790EE8B1D56A3B9B76C41DD063726E75";
+const uint8_t GridFTPDataMovement::binary_fingerprint[16] = {0x79,0x0E,0xE8,0xB1,0xD5,0x6A,0x3B,0x9B,0x76,0xC4,0x1D,0xD0,0x63,0x72,0x6E,0x75};
+
+uint32_t GridFTPDataMovement::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_dataMovementDataID = false;
+  bool isset_securityProtocol = false;
+  bool isset_gridFTPEndPoint = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->dataMovementDataID);
+          isset_dataMovementDataID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->securityProtocol = (SecurityProtocol::type)ecast1;
+          isset_securityProtocol = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->gridFTPEndPoint.clear();
+            uint32_t _size2;
+            ::apache::thrift::protocol::TType _etype5;
+            xfer += iprot->readListBegin(_etype5, _size2);
+            this->gridFTPEndPoint.resize(_size2);
+            uint32_t _i6;
+            for (_i6 = 0; _i6 < _size2; ++_i6)
+            {
+              xfer += iprot->readString(this->gridFTPEndPoint[_i6]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          isset_gridFTPEndPoint = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_dataMovementDataID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_securityProtocol)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gridFTPEndPoint)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t GridFTPDataMovement::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("GridFTPDataMovement");
+
+  xfer += oprot->writeFieldBegin("dataMovementDataID", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->dataMovementDataID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("securityProtocol", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->securityProtocol);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gridFTPEndPoint", ::apache::thrift::protocol::T_LIST, 3);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->gridFTPEndPoint.size()));
+    std::vector<std::string> ::const_iterator _iter7;
+    for (_iter7 = this->gridFTPEndPoint.begin(); _iter7 != this->gridFTPEndPoint.end(); ++_iter7)
+    {
+      xfer += oprot->writeString((*_iter7));
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GridFTPDataMovement &a, GridFTPDataMovement &b) {
+  using ::std::swap;
+  swap(a.dataMovementDataID, b.dataMovementDataID);
+  swap(a.securityProtocol, b.securityProtocol);
+  swap(a.gridFTPEndPoint, b.gridFTPEndPoint);
+}
+
+const char* SSHJobSubmission::ascii_fingerprint = "FEB6B2CD28861B4EED855CACA1FEF2CB";
+const uint8_t SSHJobSubmission::binary_fingerprint[16] = {0xFE,0xB6,0xB2,0xCD,0x28,0x86,0x1B,0x4E,0xED,0x85,0x5C,0xAC,0xA1,0xFE,0xF2,0xCB};
+
+uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_jobSubmissionDataID = false;
+  bool isset_resourceJobManager = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->jobSubmissionDataID);
+          isset_jobSubmissionDataID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast8;
+          xfer += iprot->readI32(ecast8);
+          this->resourceJobManager = (ResourceJobManager::type)ecast8;
+          isset_resourceJobManager = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->sshPort);
+          this->__isset.sshPort = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_jobSubmissionDataID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_resourceJobManager)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t SSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("SSHJobSubmission");
+
+  xfer += oprot->writeFieldBegin("jobSubmissionDataID", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->jobSubmissionDataID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceJobManager", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->resourceJobManager);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.sshPort) {
+    xfer += oprot->writeFieldBegin("sshPort", ::apache::thrift::protocol::T_I32, 3);
+    xfer += oprot->writeI32(this->sshPort);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(SSHJobSubmission &a, SSHJobSubmission &b) {
+  using ::std::swap;
+  swap(a.jobSubmissionDataID, b.jobSubmissionDataID);
+  swap(a.resourceJobManager, b.resourceJobManager);
+  swap(a.sshPort, b.sshPort);
+  swap(a.__isset, b.__isset);
+}
+
+const char* GlobusJobSubmission::ascii_fingerprint = "DF4253F78D7B543C16FA461660D38A03";
+const uint8_t GlobusJobSubmission::binary_fingerprint[16] = {0xDF,0x42,0x53,0xF7,0x8D,0x7B,0x54,0x3C,0x16,0xFA,0x46,0x16,0x60,0xD3,0x8A,0x03};
+
+uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_jobSubmissionDataID = false;
+  bool isset_securityProtocol = false;
+  bool isset_resourceJobManager = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->jobSubmissionDataID);
+          isset_jobSubmissionDataID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast9;
+          xfer += iprot->readI32(ecast9);
+          this->securityProtocol = (SecurityProtocol::type)ecast9;
+          isset_securityProtocol = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast10;
+          xfer += iprot->readI32(ecast10);
+          this->resourceJobManager = (ResourceJobManager::type)ecast10;
+          isset_resourceJobManager = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->globusGateKeeperEndPoint.clear();
+            uint32_t _size11;
+            ::apache::thrift::protocol::TType _etype14;
+            xfer += iprot->readListBegin(_etype14, _size11);
+            this->globusGateKeeperEndPoint.resize(_size11);
+            uint32_t _i15;
+            for (_i15 = 0; _i15 < _size11; ++_i15)
+            {
+              xfer += iprot->readString(this->globusGateKeeperEndPoint[_i15]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.globusGateKeeperEndPoint = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_jobSubmissionDataID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_securityProtocol)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_resourceJobManager)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t GlobusJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("GlobusJobSubmission");
+
+  xfer += oprot->writeFieldBegin("jobSubmissionDataID", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->jobSubmissionDataID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("securityProtocol", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->securityProtocol);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceJobManager", ::apache::thrift::protocol::T_I32, 3);
+  xfer += oprot->writeI32((int32_t)this->resourceJobManager);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.globusGateKeeperEndPoint) {
+    xfer += oprot->writeFieldBegin("globusGateKeeperEndPoint", ::apache::thrift::protocol::T_LIST, 4);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->globusGateKeeperEndPoint.size()));
+      std::vector<std::string> ::const_iterator _iter16;
+      for (_iter16 = this->globusGateKeeperEndPoint.begin(); _iter16 != this->globusGateKeeperEndPoint.end(); ++_iter16)
+      {
+        xfer += oprot->writeString((*_iter16));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GlobusJobSubmission &a, GlobusJobSubmission &b) {
+  using ::std::swap;
+  swap(a.jobSubmissionDataID, b.jobSubmissionDataID);
+  swap(a.securityProtocol, b.securityProtocol);
+  swap(a.resourceJobManager, b.resourceJobManager);
+  swap(a.globusGateKeeperEndPoint, b.globusGateKeeperEndPoint);
+  swap(a.__isset, b.__isset);
+}
+
+const char* GSISSHJobSubmission::ascii_fingerprint = "6969A7F145C4403B2F9081A498E933FD";
+const uint8_t GSISSHJobSubmission::binary_fingerprint[16] = {0x69,0x69,0xA7,0xF1,0x45,0xC4,0x40,0x3B,0x2F,0x90,0x81,0xA4,0x98,0xE9,0x33,0xFD};
+
+uint32_t GSISSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_jobSubmissionDataID = false;
+  bool isset_resourceJobManager = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->jobSubmissionDataID);
+          isset_jobSubmissionDataID = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast17;
+          xfer += iprot->readI32(ecast17);
+          this->resourceJobManager = (ResourceJobManager::type)ecast17;
+          isset_resourceJobManager = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->sshPort);
+          this->__isset.sshPort = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_SET) {
+          {
+            this->exports.clear();
+            uint32_t _size18;
+            ::apache::thrift::protocol::TType _etype21;
+            xfer += iprot->readSetBegin(_etype21, _size18);
+            uint32_t _i22;
+            for (_i22 = 0; _i22 < _size18; ++_i22)
+            {
+              std::string _elem23;
+              xfer += iprot->readString(_elem23);
+              this->exports.insert(_elem23);
+            }
+            xfer += iprot->readSetEnd();
+          }
+          this->__isset.exports = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->preJobCommands.clear();
+            uint32_t _size24;
+            ::apache::thrift::protocol::TType _etype27;
+            xfer += iprot->readListBegin(_etype27, _size24);
+            this->preJobCommands.resize(_size24);
+            uint32_t _i28;
+            for (_i28 = 0; _i28 < _size24; ++_i28)
+            {
+              xfer += iprot->readString(this->preJobCommands[_i28]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.preJobCommands = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->postJobCommands.clear();
+            uint32_t _size29;
+            ::apache::thrift::protocol::TType _etype32;
+            xfer += iprot->readListBegin(_etype32, _size29);
+            this->postJobCommands.resize(_size29);
+            uint32_t _i33;
+            for (_i33 = 0; _i33 < _size29; ++_i33)
+            {
+              xfer += iprot->readString(this->postJobCommands[_i33]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.postJobCommands = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->installedPath);
+          this->__isset.installedPath = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->monitorMode);
+          this->__isset.monitorMode = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_jobSubmissionDataID)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_resourceJobManager)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t GSISSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("GSISSHJobSubmission");
+
+  xfer += oprot->writeFieldBegin("jobSubmissionDataID", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->jobSubmissionDataID);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceJobManager", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->resourceJobManager);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.sshPort) {
+    xfer += oprot->writeFieldBegin("sshPort", ::apache::thrift::protocol::T_I32, 3);
+    xfer += oprot->writeI32(this->sshPort);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.exports) {
+    xfer += oprot->writeFieldBegin("exports", ::apache::thrift::protocol::T_SET, 4);
+    {
+      xfer += oprot->writeSetBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->exports.size()));
+      std::set<std::string> ::const_iterator _iter34;
+      for (_iter34 = this->exports.begin(); _iter34 != this->exports.end(); ++_iter34)
+      {
+        xfer += oprot->writeString((*_iter34));
+      }
+      xfer += oprot->writeSetEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.preJobCommands) {
+    xfer += oprot->writeFieldBegin("preJobCommands", ::apache::thrift::protocol::T_LIST, 5);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->preJobCommands.size()));
+      std::vector<std::string> ::const_iterator _iter35;
+      for (_iter35 = this->preJobCommands.begin(); _iter35 != this->preJobCommands.end(); ++_iter35)
+      {
+        xfer += oprot->writeString((*_iter35));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.postJobCommands) {
+    xfer += oprot->writeFieldBegin("postJobCommands", ::apache::thrift::protocol::T_LIST, 6);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->postJobCommands.size()));
+      std::vector<std::string> ::const_iterator _iter36;
+      for (_iter36 = this->postJobCommands.begin(); _iter36 != this->postJobCommands.end(); ++_iter36)
+      {
+        xfer += oprot->writeString((*_iter36));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.installedPath) {
+    xfer += oprot->writeFieldBegin("installedPath", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->installedPath);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.monitorMode) {
+    xfer += oprot->writeFieldBegin("monitorMode", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->monitorMode);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GSISSHJobSubmission &a, GSISSHJobSubmission &b) {
+  using ::std::swap;
+  swap(a.jobSubmissionDataID, b.jobSubmissionDataID);
+  swap(a.resourceJobManager, b.resourceJobManager);
+  swap(a.sshPort, b.sshPort);
+  swap(a.exports, b.exports);
+  swap(a.preJobCommands, b.preJobCommands);
+  swap(a.postJobCommands, b.postJobCommands);
+  swap(a.installedPath, b.installedPath);
+  swap(a.monitorMode, b.monitorMode);
+  swap(a.__isset, b.__isset);
+}
+
+const char* ComputeResourceDescription::ascii_fingerprint = "A31E9EF4FF0C9ADE9027FD5C59A96555";
+const uint8_t ComputeResourceDescription::binary_fingerprint[16] = {0xA3,0x1E,0x9E,0xF4,0xFF,0x0C,0x9A,0xDE,0x90,0x27,0xFD,0x5C,0x59,0xA9,0x65,0x55};
+
+uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_isEmpty = false;
+  bool isset_resourceId = false;
+  bool isset_hostName = false;
+  bool isset_jobSubmissionProtocols = false;
+  bool isset_dataMovementProtocols = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isEmpty);
+          isset_isEmpty = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceId);
+          isset_resourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->hostName);
+          isset_hostName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_SET) {
+          {
+            this->hostAliases.clear();
+            uint32_t _size37;
+            ::apache::thrift::protocol::TType _etype40;
+            xfer += iprot->readSetBegin(_etype40, _size37);
+            uint32_t _i41;
+            for (_i41 = 0; _i41 < _size37; ++_i41)
+            {
+              std::string _elem42;
+              xfer += iprot->readString(_elem42);
+              this->hostAliases.insert(_elem42);
+            }
+            xfer += iprot->readSetEnd();
+          }
+          this->__isset.hostAliases = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_SET) {
+          {
+            this->ipAddresses.clear();
+            uint32_t _size43;
+            ::apache::thrift::protocol::TType _etype46;
+            xfer += iprot->readSetBegin(_etype46, _size43);
+            uint32_t _i47;
+            for (_i47 = 0; _i47 < _size43; ++_i47)
+            {
+              std::string _elem48;
+              xfer += iprot->readString(_elem48);
+              this->ipAddresses.insert(_elem48);
+            }
+            xfer += iprot->readSetEnd();
+          }
+          this->__isset.ipAddresses = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceDescription);
+          this->__isset.resourceDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->preferredJobSubmissionProtocol);
+          this->__isset.preferredJobSubmissionProtocol = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->jobSubmissionProtocols.clear();
+            uint32_t _size49;
+            ::apache::thrift::protocol::TType _ktype50;
+            ::apache::thrift::protocol::TType _vtype51;
+            xfer += iprot->readMapBegin(_ktype50, _vtype51, _size49);
+            uint32_t _i53;
+            for (_i53 = 0; _i53 < _size49; ++_i53)
+            {
+              std::string _key54;
+              xfer += iprot->readString(_key54);
+              JobSubmissionProtocol::type& _val55 = this->jobSubmissionProtocols[_key54];
+              int32_t ecast56;
+              xfer += iprot->readI32(ecast56);
+              _val55 = (JobSubmissionProtocol::type)ecast56;
+            }
+            xfer += iprot->readMapEnd();
+          }
+          isset_jobSubmissionProtocols = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->dataMovementProtocols.clear();
+            uint32_t _size57;
+            ::apache::thrift::protocol::TType _ktype58;
+            ::apache::thrift::protocol::TType _vtype59;
+            xfer += iprot->readMapBegin(_ktype58, _vtype59, _size57);
+            uint32_t _i61;
+            for (_i61 = 0; _i61 < _size57; ++_i61)
+            {
+              std::string _key62;
+              xfer += iprot->readString(_key62);
+              DataMovementProtocol::type& _val63 = this->dataMovementProtocols[_key62];
+              int32_t ecast64;
+              xfer += iprot->readI32(ecast64);
+              _val63 = (DataMovementProtocol::type)ecast64;
+            }
+            xfer += iprot->readMapEnd();
+          }
+          isset_dataMovementProtocols = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_isEmpty)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_resourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_hostName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_jobSubmissionProtocols)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_dataMovementProtocols)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ComputeResourceDescription");
+
+  xfer += oprot->writeFieldBegin("isEmpty", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->isEmpty);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->resourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("hostName", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->hostName);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.hostAliases) {
+    xfer += oprot->writeFieldBegin("hostAliases", ::apache::thrift::protocol::T_SET, 4);
+    {
+      xfer += oprot->writeSetBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->hostAliases.size()));
+      std::set<std::string> ::const_iterator _iter65;
+      for (_iter65 = this->hostAliases.begin(); _iter65 != this->hostAliases.end(); ++_iter65)
+      {
+        xfer += oprot->writeString((*_iter65));
+      }
+      xfer += oprot->writeSetEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.ipAddresses) {
+    xfer += oprot->writeFieldBegin("ipAddresses", ::apache::thrift::protocol::T_SET, 5);
+    {
+      xfer += oprot->writeSetBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->ipAddresses.size()));
+      std::set<std::string> ::const_iterator _iter66;
+      for (_iter66 = this->ipAddresses.begin(); _iter66 != this->ipAddresses.end(); ++_iter66)
+      {
+        xfer += oprot->writeString((*_iter66));
+      }
+      xfer += oprot->writeSetEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.resourceDescription) {
+    xfer += oprot->writeFieldBegin("resourceDescription", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->resourceDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.preferredJobSubmissionProtocol) {
+    xfer += oprot->writeFieldBegin("preferredJobSubmissionProtocol", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->preferredJobSubmissionProtocol);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldBegin("jobSubmissionProtocols", ::apache::thrift::protocol::T_MAP, 9);
+  {
+    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->jobSubmissionProtocols.size()));
+    std::map<std::string, JobSubmissionProtocol::type> ::const_iterator _iter67;
+    for (_iter67 = this->jobSubmissionProtocols.begin(); _iter67 != this->jobSubmissionProtocols.end(); ++_iter67)
+    {
+      xfer += oprot->writeString(_iter67->first);
+      xfer += oprot->writeI32((int32_t)_iter67->second);
+    }
+    xfer += oprot->writeMapEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("dataMovementProtocols", ::apache::thrift::protocol::T_MAP, 10);
+  {
+    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->dataMovementProtocols.size()));
+    std::map<std::string, DataMovementProtocol::type> ::const_iterator _iter68;
+    for (_iter68 = this->dataMovementProtocols.begin(); _iter68 != this->dataMovementProtocols.end(); ++_iter68)
+    {
+      xfer += oprot->writeString(_iter68->first);
+      xfer += oprot->writeI32((int32_t)_iter68->second);
+    }
+    xfer += oprot->writeMapEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ComputeResourceDescription &a, ComputeResourceDescription &b) {
+  using ::std::swap;
+  swap(a.isEmpty, b.isEmpty);
+  swap(a.resourceId, b.resourceId);
+  swap(a.hostName, b.hostName);
+  swap(a.hostAliases, b.hostAliases);
+  swap(a.ipAddresses, b.ipAddresses);
+  swap(a.resourceDescription, b.resourceDescription);
+  swap(a.preferredJobSubmissionProtocol, b.preferredJobSubmissionProtocol);
+  swap(a.jobSubmissionProtocols, b.jobSubmissionProtocols);
+  swap(a.dataMovementProtocols, b.dataMovementProtocols);
+  swap(a.__isset, b.__isset);
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8ebb254f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.h
new file mode 100644
index 0000000..2892ebf
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/computeHostModel_types.h
@@ -0,0 +1,534 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef computeHostModel_TYPES_H
+#define computeHostModel_TYPES_H
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+
+
+struct ResourceJobManager {
+  enum type {
+    FORK = 0,
+    PBS = 1,
+    UGE = 2,
+    SLURM = 3
+  };
+};
+
+extern const std::map<int, const char*> _ResourceJobManager_VALUES_TO_NAMES;
+
+struct JobSubmissionProtocol {
+  enum type {
+    SSH = 0,
+    GSISSH = 1,
+    GRAM = 2,
+    UNICORE = 3
+  };
+};
+
+extern const std::map<int, const char*> _JobSubmissionProtocol_VALUES_TO_NAMES;
+
+struct DataMovementProtocol {
+  enum type {
+    SCP = 0,
+    SFTP = 1,
+    GridFTP = 2,
+    UNICORE_STORAGE_SERVICE = 3
+  };
+};
+
+extern const std::map<int, const char*> _DataMovementProtocol_VALUES_TO_NAMES;
+
+struct SecurityProtocol {
+  enum type {
+    USERNAME_PASSWORD = 0,
+    SSH_KEYS = 1,
+    GSI = 2,
+    KERBEROS = 3,
+    OAUTH = 4
+  };
+};
+
+extern const std::map<int, const char*> _SecurityProtocol_VALUES_TO_NAMES;
+
+typedef struct _SCPDataMovement__isset {
+  _SCPDataMovement__isset() : sshPort(true) {}
+  bool sshPort;
+} _SCPDataMovement__isset;
+
+class SCPDataMovement {
+ public:
+
+  static const char* ascii_fingerprint; // = "FEB6B2CD28861B4EED855CACA1FEF2CB";
+  static const uint8_t binary_fingerprint[16]; // = {0xFE,0xB6,0xB2,0xCD,0x28,0x86,0x1B,0x4E,0xED,0x85,0x5C,0xAC,0xA1,0xFE,0xF2,0xCB};
+
+  SCPDataMovement() : dataMovementDataID("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), sshPort(22) {
+  }
+
+  virtual ~SCPDataMovement() throw() {}
+
+  std::string dataMovementDataID;
+  SecurityProtocol::type securityProtocol;
+  int32_t sshPort;
+
+  _SCPDataMovement__isset __isset;
+
+  void __set_dataMovementDataID(const std::string& val) {
+    dataMovementDataID = val;
+  }
+
+  void __set_securityProtocol(const SecurityProtocol::type val) {
+    securityProtocol = val;
+  }
+
+  void __set_sshPort(const int32_t val) {
+    sshPort = val;
+    __isset.sshPort = true;
+  }
+
+  bool operator == (const SCPDataMovement & rhs) const
+  {
+    if (!(dataMovementDataID == rhs.dataMovementDataID))
+      return false;
+    if (!(securityProtocol == rhs.securityProtocol))
+      return false;
+    if (__isset.sshPort != rhs.__isset.sshPort)
+      return false;
+    else if (__isset.sshPort && !(sshPort == rhs.sshPort))
+      return false;
+    return true;
+  }
+  bool operator != (const SCPDataMovement &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const SCPDataMovement & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(SCPDataMovement &a, SCPDataMovement &b);
+
+
+class GridFTPDataMovement {
+ public:
+
+  static const char* ascii_fingerprint; // = "790EE8B1D56A3B9B76C41DD063726E75";
+  static const uint8_t binary_fingerprint[16]; // = {0x79,0x0E,0xE8,0xB1,0xD5,0x6A,0x3B,0x9B,0x76,0xC4,0x1D,0xD0,0x63,0x72,0x6E,0x75};
+
+  GridFTPDataMovement() : dataMovementDataID("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0) {
+  }
+
+  virtual ~GridFTPDataMovement() throw() {}
+
+  std::string dataMovementDataID;
+  SecurityProtocol::type securityProtocol;
+  std::vector<std::string>  gridFTPEndPoint;
+
+  void __set_dataMovementDataID(const std::string& val) {
+    dataMovementDataID = val;
+  }
+
+  void __set_securityProtocol(const SecurityProtocol::type val) {
+    securityProtocol = val;
+  }
+
+  void __set_gridFTPEndPoint(const std::vector<std::string> & val) {
+    gridFTPEndPoint = val;
+  }
+
+  bool operator == (const GridFTPDataMovement & rhs) const
+  {
+    if (!(dataMovementDataID == rhs.dataMovementDataID))
+      return false;
+    if (!(securityProtocol == rhs.securityProtocol))
+      return false;
+    if (!(gridFTPEndPoint == rhs.gridFTPEndPoint))
+      return false;
+    return true;
+  }
+  bool operator != (const GridFTPDataMovement &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GridFTPDataMovement & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(GridFTPDataMovement &a, GridFTPDataMovement &b);
+
+typedef struct _SSHJobSubmission__isset {
+  _SSHJobSubmission__isset() : sshPort(true) {}
+  bool sshPort;
+} _SSHJobSubmission__isset;
+
+class SSHJobSubmission {
+ public:
+
+  static const char* ascii_fingerprint; // = "FEB6B2CD28861B4EED855CACA1FEF2CB";
+  static const uint8_t binary_fingerprint[16]; // = {0xFE,0xB6,0xB2,0xCD,0x28,0x86,0x1B,0x4E,0xED,0x85,0x5C,0xAC,0xA1,0xFE,0xF2,0xCB};
+
+  SSHJobSubmission() : jobSubmissionDataID("DO_NOT_SET_AT_CLIENTS"), resourceJobManager((ResourceJobManager::type)0), sshPort(22) {
+  }
+
+  virtual ~SSHJobSubmission() throw() {}
+
+  std::string jobSubmissionDataID;
+  ResourceJobManager::type resourceJobManager;
+  int32_t sshPort;
+
+  _SSHJobSubmission__isset __isset;
+
+  void __set_jobSubmissionDataID(const std::string& val) {
+    jobSubmissionDataID = val;
+  }
+
+  void __set_resourceJobManager(const ResourceJobManager::type val) {
+    resourceJobManager = val;
+  }
+
+  void __set_sshPort(const int32_t val) {
+    sshPort = val;
+    __isset.sshPort = true;
+  }
+
+  bool operator == (const SSHJobSubmission & rhs) const
+  {
+    if (!(jobSubmissionDataID == rhs.jobSubmissionDataID))
+      return false;
+    if (!(resourceJobManager == rhs.resourceJobManager))
+      return false;
+    if (__isset.sshPort != rhs.__isset.sshPort)
+      return false;
+    else if (__isset.sshPort && !(sshPort == rhs.sshPort))
+      return false;
+    return true;
+  }
+  bool operator != (const SSHJobSubmission &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const SSHJobSubmission & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(SSHJobSubmission &a, SSHJobSubmission &b);
+
+typedef struct _GlobusJobSubmission__isset {
+  _GlobusJobSubmission__isset() : globusGateKeeperEndPoint(false) {}
+  bool globusGateKeeperEndPoint;
+} _GlobusJobSubmission__isset;
+
+class GlobusJobSubmission {
+ public:
+
+  static const char* ascii_fingerprint; // = "DF4253F78D7B543C16FA461660D38A03";
+  static const uint8_t binary_fingerprint[16]; // = {0xDF,0x42,0x53,0xF7,0x8D,0x7B,0x54,0x3C,0x16,0xFA,0x46,0x16,0x60,0xD3,0x8A,0x03};
+
+  GlobusJobSubmission() : jobSubmissionDataID("DO_NOT_SET_AT_CLIENTS"), securityProtocol((SecurityProtocol::type)0), resourceJobManager((ResourceJobManager::type)0) {
+  }
+
+  virtual ~GlobusJobSubmission() throw() {}
+
+  std::string jobSubmissionDataID;
+  SecurityProtocol::type securityProtocol;
+  ResourceJobManager::type resourceJobManager;
+  std::vector<std::string>  globusGateKeeperEndPoint;
+
+  _GlobusJobSubmission__isset __isset;
+
+  void __set_jobSubmissionDataID(const std::string& val) {
+    jobSubmissionDataID = val;
+  }
+
+  void __set_securityProtocol(const SecurityProtocol::type val) {
+    securityProtocol = val;
+  }
+
+  void __set_resourceJobManager(const ResourceJobManager::type val) {
+    resourceJobManager = val;
+  }
+
+  void __set_globusGateKeeperEndPoint(const std::vector<std::string> & val) {
+    globusGateKeeperEndPoint = val;
+    __isset.globusGateKeeperEndPoint = true;
+  }
+
+  bool operator == (const GlobusJobSubmission & rhs) const
+  {
+    if (!(jobSubmissionDataID == rhs.jobSubmissionDataID))
+      return false;
+    if (!(securityProtocol == rhs.securityProtocol))
+      return false;
+    if (!(resourceJobManager == rhs.resourceJobManager))
+      return false;
+    if (__isset.globusGateKeeperEndPoint != rhs.__isset.globusGateKeeperEndPoint)
+      return false;
+    else if (__isset.globusGateKeeperEndPoint && !(globusGateKeeperEndPoint == rhs.globusGateKeeperEndPoint))
+      return false;
+    return true;
+  }
+  bool operator != (const GlobusJobSubmission &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GlobusJobSubmission & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(GlobusJobSubmission &a, GlobusJobSubmission &b);
+
+typedef struct _GSISSHJobSubmission__isset {
+  _GSISSHJobSubmission__isset() : sshPort(true), exports(false), preJobCommands(false), postJobCommands(false), installedPath(false), monitorMode(false) {}
+  bool sshPort;
+  bool exports;
+  bool preJobCommands;
+  bool postJobCommands;
+  bool installedPath;
+  bool monitorMode;
+} _GSISSHJobSubmission__isset;
+
+class GSISSHJobSubmission {
+ public:
+
+  static const char* ascii_fingerprint; // = "6969A7F145C4403B2F9081A498E933FD";
+  static const uint8_t binary_fingerprint[16]; // = {0x69,0x69,0xA7,0xF1,0x45,0xC4,0x40,0x3B,0x2F,0x90,0x81,0xA4,0x98,0xE9,0x33,0xFD};
+
+  GSISSHJobSubmission() : jobSubmissionDataID("DO_NOT_SET_AT_CLIENTS"), resourceJobManager((ResourceJobManager::type)0), sshPort(22), installedPath(), monitorMode() {
+  }
+
+  virtual ~GSISSHJobSubmission() throw() {}
+
+  std::string jobSubmissionDataID;
+  ResourceJobManager::type resourceJobManager;
+  int32_t sshPort;
+  std::set<std::string>  exports;
+  std::vector<std::string>  preJobCommands;
+  std::vector<std::string>  postJobCommands;
+  std::string installedPath;
+  std::string monitorMode;
+
+  _GSISSHJobSubmission__isset __isset;
+
+  void __set_jobSubmissionDataID(const std::string& val) {
+    jobSubmissionDataID = val;
+  }
+
+  void __set_resourceJobManager(const ResourceJobManager::type val) {
+    resourceJobManager = val;
+  }
+
+  void __set_sshPort(const int32_t val) {
+    sshPort = val;
+    __isset.sshPort = true;
+  }
+
+  void __set_exports(const std::set<std::string> & val) {
+    exports = val;
+    __isset.exports = true;
+  }
+
+  void __set_preJobCommands(const std::vector<std::string> & val) {
+    preJobCommands = val;
+    __isset.preJobCommands = true;
+  }
+
+  void __set_postJobCommands(const std::vector<std::string> & val) {
+    postJobCommands = val;
+    __isset.postJobCommands = true;
+  }
+
+  void __set_installedPath(const std::string& val) {
+    installedPath = val;
+    __isset.installedPath = true;
+  }
+
+  void __set_monitorMode(const std::string& val) {
+    monitorMode = val;
+    __isset.monitorMode = true;
+  }
+
+  bool operator == (const GSISSHJobSubmission & rhs) const
+  {
+    if (!(jobSubmissionDataID == rhs.jobSubmissionDataID))
+      return false;
+    if (!(resourceJobManager == rhs.resourceJobManager))
+      return false;
+    if (__isset.sshPort != rhs.__isset.sshPort)
+      return false;
+    else if (__isset.sshPort && !(sshPort == rhs.sshPort))
+      return false;
+    if (__isset.exports != rhs.__isset.exports)
+      return false;
+    else if (__isset.exports && !(exports == rhs.exports))
+      return false;
+    if (__isset.preJobCommands != rhs.__isset.preJobCommands)
+      return false;
+    else if (__isset.preJobCommands && !(preJobCommands == rhs.preJobCommands))
+      return false;
+    if (__isset.postJobCommands != rhs.__isset.postJobCommands)
+      return false;
+    else if (__isset.postJobCommands && !(postJobCommands == rhs.postJobCommands))
+      return false;
+    if (__isset.installedPath != rhs.__isset.installedPath)
+      return false;
+    else if (__isset.installedPath && !(installedPath == rhs.installedPath))
+      return false;
+    if (__isset.monitorMode != rhs.__isset.monitorMode)
+      return false;
+    else if (__isset.monitorMode && !(monitorMode == rhs.monitorMode))
+      return false;
+    return true;
+  }
+  bool operator != (const GSISSHJobSubmission &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GSISSHJobSubmission & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(GSISSHJobSubmission &a, GSISSHJobSubmission &b);
+
+typedef struct _ComputeResourceDescription__isset {
+  _ComputeResourceDescription__isset() : hostAliases(false), ipAddresses(false), resourceDescription(false), preferredJobSubmissionProtocol(false) {}
+  bool hostAliases;
+  bool ipAddresses;
+  bool resourceDescription;
+  bool preferredJobSubmissionProtocol;
+} _ComputeResourceDescription__isset;
+
+class ComputeResourceDescription {
+ public:
+
+  static const char* ascii_fingerprint; // = "A31E9EF4FF0C9ADE9027FD5C59A96555";
+  static const uint8_t binary_fingerprint[16]; // = {0xA3,0x1E,0x9E,0xF4,0xFF,0x0C,0x9A,0xDE,0x90,0x27,0xFD,0x5C,0x59,0xA9,0x65,0x55};
+
+  ComputeResourceDescription() : isEmpty(false), resourceId("DO_NOT_SET_AT_CLIENTS"), hostName(), resourceDescription(), preferredJobSubmissionProtocol() {
+  }
+
+  virtual ~ComputeResourceDescription() throw() {}
+
+  bool isEmpty;
+  std::string resourceId;
+  std::string hostName;
+  std::set<std::string>  hostAliases;
+  std::set<std::string>  ipAddresses;
+  std::string resourceDescription;
+  std::string preferredJobSubmissionProtocol;
+  std::map<std::string, JobSubmissionProtocol::type>  jobSubmissionProtocols;
+  std::map<std::string, DataMovementProtocol::type>  dataMovementProtocols;
+
+  _ComputeResourceDescription__isset __isset;
+
+  void __set_isEmpty(const bool val) {
+    isEmpty = val;
+  }
+
+  void __set_resourceId(const std::string& val) {
+    resourceId = val;
+  }
+
+  void __set_hostName(const std::string& val) {
+    hostName = val;
+  }
+
+  void __set_hostAliases(const std::set<std::string> & val) {
+    hostAliases = val;
+    __isset.hostAliases = true;
+  }
+
+  void __set_ipAddresses(const std::set<std::string> & val) {
+    ipAddresses = val;
+    __isset.ipAddresses = true;
+  }
+
+  void __set_resourceDescription(const std::string& val) {
+    resourceDescription = val;
+    __isset.resourceDescription = true;
+  }
+
+  void __set_preferredJobSubmissionProtocol(const std::string& val) {
+    preferredJobSubmissionProtocol = val;
+    __isset.preferredJobSubmissionProtocol = true;
+  }
+
+  void __set_jobSubmissionProtocols(const std::map<std::string, JobSubmissionProtocol::type> & val) {
+    jobSubmissionProtocols = val;
+  }
+
+  void __set_dataMovementProtocols(const std::map<std::string, DataMovementProtocol::type> & val) {
+    dataMovementProtocols = val;
+  }
+
+  bool operator == (const ComputeResourceDescription & rhs) const
+  {
+    if (!(isEmpty == rhs.isEmpty))
+      return false;
+    if (!(resourceId == rhs.resourceId))
+      return false;
+    if (!(hostName == rhs.hostName))
+      return false;
+    if (__isset.hostAliases != rhs.__isset.hostAliases)
+      return false;
+    else if (__isset.hostAliases && !(hostAliases == rhs.hostAliases))
+      return false;
+    if (__isset.ipAddresses != rhs.__isset.ipAddresses)
+      return false;
+    else if (__isset.ipAddresses && !(ipAddresses == rhs.ipAddresses))
+      return false;
+    if (__isset.resourceDescription != rhs.__isset.resourceDescription)
+      return false;
+    else if (__isset.resourceDescription && !(resourceDescription == rhs.resourceDescription))
+      return false;
+    if (__isset.preferredJobSubmissionProtocol != rhs.__isset.preferredJobSubmissionProtocol)
+      return false;
+    else if (__isset.preferredJobSubmissionProtocol && !(preferredJobSubmissionProtocol == rhs.preferredJobSubmissionProtocol))
+      return false;
+    if (!(jobSubmissionProtocols == rhs.jobSubmissionProtocols))
+      return false;
+    if (!(dataMovementProtocols == rhs.dataMovementProtocols))
+      return false;
+    return true;
+  }
+  bool operator != (const ComputeResourceDescription &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ComputeResourceDescription & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(ComputeResourceDescription &a, ComputeResourceDescription &b);
+
+
+
+#endif