You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/08/04 20:10:56 UTC

[39/51] [partial] airavata git commit: AIRAVATA-2505 Upgrade Airavata to Thrift 0.10.0

http://git-wip-us.apache.org/repos/asf/airavata/blob/9d165bd8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/commons/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/commons/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/commons/ttypes.py
index 21ec7e0..3e081fd 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/commons/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/commons/ttypes.py
@@ -1,335 +1,308 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
 
 from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-
-class ErrorModel:
-  """
-  Attributes:
-   - errorId
-   - creationTime
-   - actualErrorMessage
-   - userFriendlyMessage
-   - transientOrPersistent
-   - rootCauseErrorIdList
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'errorId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-    (2, TType.I64, 'creationTime', None, None, ), # 2
-    (3, TType.STRING, 'actualErrorMessage', None, None, ), # 3
-    (4, TType.STRING, 'userFriendlyMessage', None, None, ), # 4
-    (5, TType.BOOL, 'transientOrPersistent', None, False, ), # 5
-    (6, TType.LIST, 'rootCauseErrorIdList', (TType.STRING,None), None, ), # 6
-  )
-
-  def __init__(self, errorId=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, transientOrPersistent=thrift_spec[5][4], rootCauseErrorIdList=None,):
-    self.errorId = errorId
-    self.creationTime = creationTime
-    self.actualErrorMessage = actualErrorMessage
-    self.userFriendlyMessage = userFriendlyMessage
-    self.transientOrPersistent = transientOrPersistent
-    self.rootCauseErrorIdList = rootCauseErrorIdList
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.errorId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.actualErrorMessage = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.STRING:
-          self.userFriendlyMessage = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.BOOL:
-          self.transientOrPersistent = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.LIST:
-          self.rootCauseErrorIdList = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readString()
-            self.rootCauseErrorIdList.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('ErrorModel')
-    if self.errorId is not None:
-      oprot.writeFieldBegin('errorId', TType.STRING, 1)
-      oprot.writeString(self.errorId)
-      oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 2)
-      oprot.writeI64(self.creationTime)
-      oprot.writeFieldEnd()
-    if self.actualErrorMessage is not None:
-      oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
-      oprot.writeString(self.actualErrorMessage)
-      oprot.writeFieldEnd()
-    if self.userFriendlyMessage is not None:
-      oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
-      oprot.writeString(self.userFriendlyMessage)
-      oprot.writeFieldEnd()
-    if self.transientOrPersistent is not None:
-      oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 5)
-      oprot.writeBool(self.transientOrPersistent)
-      oprot.writeFieldEnd()
-    if self.rootCauseErrorIdList is not None:
-      oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 6)
-      oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
-      for iter6 in self.rootCauseErrorIdList:
-        oprot.writeString(iter6)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.errorId is None:
-      raise TProtocol.TProtocolException(message='Required field errorId is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.errorId)
-    value = (value * 31) ^ hash(self.creationTime)
-    value = (value * 31) ^ hash(self.actualErrorMessage)
-    value = (value * 31) ^ hash(self.userFriendlyMessage)
-    value = (value * 31) ^ hash(self.transientOrPersistent)
-    value = (value * 31) ^ hash(self.rootCauseErrorIdList)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class ValidatorResult:
-  """
-  This data structure can be used to store the validation results
-  captured during validation step and during the launchExperiment
-  operation it can be easilly checked to see the errors occured
-  during the experiment launch operation
-
-
-  Attributes:
-   - result
-   - errorDetails
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.BOOL, 'result', None, None, ), # 1
-    (2, TType.STRING, 'errorDetails', None, None, ), # 2
-  )
-
-  def __init__(self, result=None, errorDetails=None,):
-    self.result = result
-    self.errorDetails = errorDetails
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.BOOL:
-          self.result = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.errorDetails = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('ValidatorResult')
-    if self.result is not None:
-      oprot.writeFieldBegin('result', TType.BOOL, 1)
-      oprot.writeBool(self.result)
-      oprot.writeFieldEnd()
-    if self.errorDetails is not None:
-      oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
-      oprot.writeString(self.errorDetails)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.result is None:
-      raise TProtocol.TProtocolException(message='Required field result is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.result)
-    value = (value * 31) ^ hash(self.errorDetails)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class ValidationResults:
-  """
-  Attributes:
-   - validationState
-   - validationResultList
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.BOOL, 'validationState', None, None, ), # 1
-    (2, TType.LIST, 'validationResultList', (TType.STRUCT,(ValidatorResult, ValidatorResult.thrift_spec)), None, ), # 2
-  )
-
-  def __init__(self, validationState=None, validationResultList=None,):
-    self.validationState = validationState
-    self.validationResultList = validationResultList
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.BOOL:
-          self.validationState = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.LIST:
-          self.validationResultList = []
-          (_etype10, _size7) = iprot.readListBegin()
-          for _i11 in xrange(_size7):
-            _elem12 = ValidatorResult()
-            _elem12.read(iprot)
-            self.validationResultList.append(_elem12)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('ValidationResults')
-    if self.validationState is not None:
-      oprot.writeFieldBegin('validationState', TType.BOOL, 1)
-      oprot.writeBool(self.validationState)
-      oprot.writeFieldEnd()
-    if self.validationResultList is not None:
-      oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
-      oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
-      for iter13 in self.validationResultList:
-        iter13.write(oprot)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.validationState is None:
-      raise TProtocol.TProtocolException(message='Required field validationState is unset!')
-    if self.validationResultList is None:
-      raise TProtocol.TProtocolException(message='Required field validationResultList is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.validationState)
-    value = (value * 31) ^ hash(self.validationResultList)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
+
+
+class ErrorModel(object):
+    """
+    Attributes:
+     - errorId
+     - creationTime
+     - actualErrorMessage
+     - userFriendlyMessage
+     - transientOrPersistent
+     - rootCauseErrorIdList
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'errorId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.I64, 'creationTime', None, None, ),  # 2
+        (3, TType.STRING, 'actualErrorMessage', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'userFriendlyMessage', 'UTF8', None, ),  # 4
+        (5, TType.BOOL, 'transientOrPersistent', None, False, ),  # 5
+        (6, TType.LIST, 'rootCauseErrorIdList', (TType.STRING, 'UTF8', False), None, ),  # 6
+    )
+
+    def __init__(self, errorId=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, transientOrPersistent=thrift_spec[5][4], rootCauseErrorIdList=None,):
+        self.errorId = errorId
+        self.creationTime = creationTime
+        self.actualErrorMessage = actualErrorMessage
+        self.userFriendlyMessage = userFriendlyMessage
+        self.transientOrPersistent = transientOrPersistent
+        self.rootCauseErrorIdList = rootCauseErrorIdList
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.errorId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.I64:
+                    self.creationTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.actualErrorMessage = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.userFriendlyMessage = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.BOOL:
+                    self.transientOrPersistent = iprot.readBool()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.LIST:
+                    self.rootCauseErrorIdList = []
+                    (_etype3, _size0) = iprot.readListBegin()
+                    for _i4 in range(_size0):
+                        _elem5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.rootCauseErrorIdList.append(_elem5)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('ErrorModel')
+        if self.errorId is not None:
+            oprot.writeFieldBegin('errorId', TType.STRING, 1)
+            oprot.writeString(self.errorId.encode('utf-8') if sys.version_info[0] == 2 else self.errorId)
+            oprot.writeFieldEnd()
+        if self.creationTime is not None:
+            oprot.writeFieldBegin('creationTime', TType.I64, 2)
+            oprot.writeI64(self.creationTime)
+            oprot.writeFieldEnd()
+        if self.actualErrorMessage is not None:
+            oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
+            oprot.writeString(self.actualErrorMessage.encode('utf-8') if sys.version_info[0] == 2 else self.actualErrorMessage)
+            oprot.writeFieldEnd()
+        if self.userFriendlyMessage is not None:
+            oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
+            oprot.writeString(self.userFriendlyMessage.encode('utf-8') if sys.version_info[0] == 2 else self.userFriendlyMessage)
+            oprot.writeFieldEnd()
+        if self.transientOrPersistent is not None:
+            oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 5)
+            oprot.writeBool(self.transientOrPersistent)
+            oprot.writeFieldEnd()
+        if self.rootCauseErrorIdList is not None:
+            oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 6)
+            oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
+            for iter6 in self.rootCauseErrorIdList:
+                oprot.writeString(iter6.encode('utf-8') if sys.version_info[0] == 2 else iter6)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.errorId is None:
+            raise TProtocolException(message='Required field errorId is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class ValidatorResult(object):
+    """
+    This data structure can be used to store the validation results
+    captured during validation step and during the launchExperiment
+    operation it can be easilly checked to see the errors occured
+    during the experiment launch operation
+
+
+    Attributes:
+     - result
+     - errorDetails
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.BOOL, 'result', None, None, ),  # 1
+        (2, TType.STRING, 'errorDetails', 'UTF8', None, ),  # 2
+    )
+
+    def __init__(self, result=None, errorDetails=None,):
+        self.result = result
+        self.errorDetails = errorDetails
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.BOOL:
+                    self.result = iprot.readBool()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.errorDetails = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('ValidatorResult')
+        if self.result is not None:
+            oprot.writeFieldBegin('result', TType.BOOL, 1)
+            oprot.writeBool(self.result)
+            oprot.writeFieldEnd()
+        if self.errorDetails is not None:
+            oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
+            oprot.writeString(self.errorDetails.encode('utf-8') if sys.version_info[0] == 2 else self.errorDetails)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.result is None:
+            raise TProtocolException(message='Required field result is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class ValidationResults(object):
+    """
+    Attributes:
+     - validationState
+     - validationResultList
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.BOOL, 'validationState', None, None, ),  # 1
+        (2, TType.LIST, 'validationResultList', (TType.STRUCT, (ValidatorResult, ValidatorResult.thrift_spec), False), None, ),  # 2
+    )
+
+    def __init__(self, validationState=None, validationResultList=None,):
+        self.validationState = validationState
+        self.validationResultList = validationResultList
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.BOOL:
+                    self.validationState = iprot.readBool()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.LIST:
+                    self.validationResultList = []
+                    (_etype10, _size7) = iprot.readListBegin()
+                    for _i11 in range(_size7):
+                        _elem12 = ValidatorResult()
+                        _elem12.read(iprot)
+                        self.validationResultList.append(_elem12)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('ValidationResults')
+        if self.validationState is not None:
+            oprot.writeFieldBegin('validationState', TType.BOOL, 1)
+            oprot.writeBool(self.validationState)
+            oprot.writeFieldEnd()
+        if self.validationResultList is not None:
+            oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
+            oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
+            for iter13 in self.validationResultList:
+                iter13.write(oprot)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.validationState is None:
+            raise TProtocolException(message='Required field validationState is unset!')
+        if self.validationResultList is None:
+            raise TProtocolException(message='Required field validationResultList is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/9d165bd8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/constants.py
index 4a6492b..eb0d35a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/constants.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/constants.py
@@ -1,11 +1,12 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+from .ttypes import *

http://git-wip-us.apache.org/repos/asf/airavata/blob/9d165bd8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py
index 4a6492b..eb0d35a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py
@@ -1,11 +1,12 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+from .ttypes import *

http://git-wip-us.apache.org/repos/asf/airavata/blob/9d165bd8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py
index 01e5c45..ff74381 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py
@@ -1,625 +1,588 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
 import apache.airavata.model.commons.ttypes
 
-
 from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-class DMType:
-  COMPUTE_RESOURCE = 0
-  STORAGE_RESOURCE = 1
-
-  _VALUES_TO_NAMES = {
-    0: "COMPUTE_RESOURCE",
-    1: "STORAGE_RESOURCE",
-  }
-
-  _NAMES_TO_VALUES = {
-    "COMPUTE_RESOURCE": 0,
-    "STORAGE_RESOURCE": 1,
-  }
-
-class SecurityProtocol:
-  """
-  Enumeration of security sshKeyAuthentication 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
-
-  FIXME: Change GSI to a more precise generic security protocol - X509
-
-  """
-  USERNAME_PASSWORD = 0
-  SSH_KEYS = 1
-  GSI = 2
-  KERBEROS = 3
-  OAUTH = 4
-  LOCAL = 5
-
-  _VALUES_TO_NAMES = {
-    0: "USERNAME_PASSWORD",
-    1: "SSH_KEYS",
-    2: "GSI",
-    3: "KERBEROS",
-    4: "OAUTH",
-    5: "LOCAL",
-  }
-
-  _NAMES_TO_VALUES = {
-    "USERNAME_PASSWORD": 0,
-    "SSH_KEYS": 1,
-    "GSI": 2,
-    "KERBEROS": 3,
-    "OAUTH": 4,
-    "LOCAL": 5,
-  }
-
-class DataMovementProtocol:
-  """
-  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
-
-  """
-  LOCAL = 0
-  SCP = 1
-  SFTP = 2
-  GridFTP = 3
-  UNICORE_STORAGE_SERVICE = 4
-
-  _VALUES_TO_NAMES = {
-    0: "LOCAL",
-    1: "SCP",
-    2: "SFTP",
-    3: "GridFTP",
-    4: "UNICORE_STORAGE_SERVICE",
-  }
-
-  _NAMES_TO_VALUES = {
-    "LOCAL": 0,
-    "SCP": 1,
-    "SFTP": 2,
-    "GridFTP": 3,
-    "UNICORE_STORAGE_SERVICE": 4,
-  }
-
-
-class SCPDataMovement:
-  """
-  Data Movement through Secured Copy
-
-  alternativeSCPHostName:
-   If the login to scp is different than the hostname itself, specify it here
-
-  sshPort:
-   If a non-default port needs to used, specify it.
-
-  Attributes:
-   - dataMovementInterfaceId
-   - securityProtocol
-   - alternativeSCPHostName
-   - sshPort
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-    (2, TType.I32, 'securityProtocol', None, None, ), # 2
-    (3, TType.STRING, 'alternativeSCPHostName', None, None, ), # 3
-    (4, TType.I32, 'sshPort', None, 22, ), # 4
-  )
-
-  def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, alternativeSCPHostName=None, sshPort=thrift_spec[4][4],):
-    self.dataMovementInterfaceId = dataMovementInterfaceId
-    self.securityProtocol = securityProtocol
-    self.alternativeSCPHostName = alternativeSCPHostName
-    self.sshPort = sshPort
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.dataMovementInterfaceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I32:
-          self.securityProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.alternativeSCPHostName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.I32:
-          self.sshPort = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('SCPDataMovement')
-    if self.dataMovementInterfaceId is not None:
-      oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
-      oprot.writeString(self.dataMovementInterfaceId)
-      oprot.writeFieldEnd()
-    if self.securityProtocol is not None:
-      oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
-      oprot.writeI32(self.securityProtocol)
-      oprot.writeFieldEnd()
-    if self.alternativeSCPHostName is not None:
-      oprot.writeFieldBegin('alternativeSCPHostName', TType.STRING, 3)
-      oprot.writeString(self.alternativeSCPHostName)
-      oprot.writeFieldEnd()
-    if self.sshPort is not None:
-      oprot.writeFieldBegin('sshPort', TType.I32, 4)
-      oprot.writeI32(self.sshPort)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.dataMovementInterfaceId is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
-    if self.securityProtocol is None:
-      raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.dataMovementInterfaceId)
-    value = (value * 31) ^ hash(self.securityProtocol)
-    value = (value * 31) ^ hash(self.alternativeSCPHostName)
-    value = (value * 31) ^ hash(self.sshPort)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class GridFTPDataMovement:
-  """
-  Data Movement through GridFTP
-
-  alternativeSCPHostName:
-   If the login to scp is different than the hostname itself, specify it here
-
-  sshPort:
-   If a non-default port needs to used, specify it.
-
-  Attributes:
-   - dataMovementInterfaceId
-   - securityProtocol
-   - gridFTPEndPoints
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-    (2, TType.I32, 'securityProtocol', None, None, ), # 2
-    (3, TType.LIST, 'gridFTPEndPoints', (TType.STRING,None), None, ), # 3
-  )
-
-  def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, gridFTPEndPoints=None,):
-    self.dataMovementInterfaceId = dataMovementInterfaceId
-    self.securityProtocol = securityProtocol
-    self.gridFTPEndPoints = gridFTPEndPoints
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.dataMovementInterfaceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I32:
-          self.securityProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.LIST:
-          self.gridFTPEndPoints = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readString()
-            self.gridFTPEndPoints.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('GridFTPDataMovement')
-    if self.dataMovementInterfaceId is not None:
-      oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
-      oprot.writeString(self.dataMovementInterfaceId)
-      oprot.writeFieldEnd()
-    if self.securityProtocol is not None:
-      oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
-      oprot.writeI32(self.securityProtocol)
-      oprot.writeFieldEnd()
-    if self.gridFTPEndPoints is not None:
-      oprot.writeFieldBegin('gridFTPEndPoints', TType.LIST, 3)
-      oprot.writeListBegin(TType.STRING, len(self.gridFTPEndPoints))
-      for iter6 in self.gridFTPEndPoints:
-        oprot.writeString(iter6)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.dataMovementInterfaceId is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
-    if self.securityProtocol is None:
-      raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
-    if self.gridFTPEndPoints is None:
-      raise TProtocol.TProtocolException(message='Required field gridFTPEndPoints is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.dataMovementInterfaceId)
-    value = (value * 31) ^ hash(self.securityProtocol)
-    value = (value * 31) ^ hash(self.gridFTPEndPoints)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class UnicoreDataMovement:
-  """
-  Data Movement through UnicoreStorage
-
-  unicoreEndPointURL:
-   unicoreGateway End Point. The provider will query this service to fetch required service end points.
-
-  Attributes:
-   - dataMovementInterfaceId
-   - securityProtocol
-   - unicoreEndPointURL
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-    (2, TType.I32, 'securityProtocol', None, None, ), # 2
-    (3, TType.STRING, 'unicoreEndPointURL', None, None, ), # 3
-  )
-
-  def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, unicoreEndPointURL=None,):
-    self.dataMovementInterfaceId = dataMovementInterfaceId
-    self.securityProtocol = securityProtocol
-    self.unicoreEndPointURL = unicoreEndPointURL
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.dataMovementInterfaceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I32:
-          self.securityProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.unicoreEndPointURL = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('UnicoreDataMovement')
-    if self.dataMovementInterfaceId is not None:
-      oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
-      oprot.writeString(self.dataMovementInterfaceId)
-      oprot.writeFieldEnd()
-    if self.securityProtocol is not None:
-      oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
-      oprot.writeI32(self.securityProtocol)
-      oprot.writeFieldEnd()
-    if self.unicoreEndPointURL is not None:
-      oprot.writeFieldBegin('unicoreEndPointURL', TType.STRING, 3)
-      oprot.writeString(self.unicoreEndPointURL)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.dataMovementInterfaceId is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
-    if self.securityProtocol is None:
-      raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
-    if self.unicoreEndPointURL is None:
-      raise TProtocol.TProtocolException(message='Required field unicoreEndPointURL is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.dataMovementInterfaceId)
-    value = (value * 31) ^ hash(self.securityProtocol)
-    value = (value * 31) ^ hash(self.unicoreEndPointURL)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class LOCALDataMovement:
-  """
-  LOCAL
-
-  alternativeSCPHostName:
-   If the login to scp is different than the hostname itself, specify it here
-
-  sshPort:
-   If a non-defualt port needs to used, specify it.
-
-  Attributes:
-   - dataMovementInterfaceId
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-  )
-
-  def __init__(self, dataMovementInterfaceId=thrift_spec[1][4],):
-    self.dataMovementInterfaceId = dataMovementInterfaceId
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.dataMovementInterfaceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('LOCALDataMovement')
-    if self.dataMovementInterfaceId is not None:
-      oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
-      oprot.writeString(self.dataMovementInterfaceId)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.dataMovementInterfaceId is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.dataMovementInterfaceId)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class DataMovementInterface:
-  """
-  Data Movement Interfaces
-
-  dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here.
-
-  priorityOrder:
-   For resources with multiple interfaces, the priority order should be selected.
-    Lower the numerical number, higher the priority
-
-
-  Attributes:
-   - dataMovementInterfaceId
-   - dataMovementProtocol
-   - priorityOrder
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'dataMovementInterfaceId', None, None, ), # 1
-    (2, TType.I32, 'dataMovementProtocol', None, None, ), # 2
-    (3, TType.I32, 'priorityOrder', None, 0, ), # 3
-  )
-
-  def __init__(self, dataMovementInterfaceId=None, dataMovementProtocol=None, priorityOrder=thrift_spec[3][4],):
-    self.dataMovementInterfaceId = dataMovementInterfaceId
-    self.dataMovementProtocol = dataMovementProtocol
-    self.priorityOrder = priorityOrder
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.dataMovementInterfaceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I32:
-          self.dataMovementProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.I32:
-          self.priorityOrder = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('DataMovementInterface')
-    if self.dataMovementInterfaceId is not None:
-      oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
-      oprot.writeString(self.dataMovementInterfaceId)
-      oprot.writeFieldEnd()
-    if self.dataMovementProtocol is not None:
-      oprot.writeFieldBegin('dataMovementProtocol', TType.I32, 2)
-      oprot.writeI32(self.dataMovementProtocol)
-      oprot.writeFieldEnd()
-    if self.priorityOrder is not None:
-      oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
-      oprot.writeI32(self.priorityOrder)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.dataMovementInterfaceId is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
-    if self.dataMovementProtocol is None:
-      raise TProtocol.TProtocolException(message='Required field dataMovementProtocol is unset!')
-    if self.priorityOrder is None:
-      raise TProtocol.TProtocolException(message='Required field priorityOrder is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.dataMovementInterfaceId)
-    value = (value * 31) ^ hash(self.dataMovementProtocol)
-    value = (value * 31) ^ hash(self.priorityOrder)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
+
+
+class DMType(object):
+    COMPUTE_RESOURCE = 0
+    STORAGE_RESOURCE = 1
+
+    _VALUES_TO_NAMES = {
+        0: "COMPUTE_RESOURCE",
+        1: "STORAGE_RESOURCE",
+    }
+
+    _NAMES_TO_VALUES = {
+        "COMPUTE_RESOURCE": 0,
+        "STORAGE_RESOURCE": 1,
+    }
+
+
+class SecurityProtocol(object):
+    """
+    Enumeration of security sshKeyAuthentication 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
+
+    FIXME: Change GSI to a more precise generic security protocol - X509
+
+    """
+    USERNAME_PASSWORD = 0
+    SSH_KEYS = 1
+    GSI = 2
+    KERBEROS = 3
+    OAUTH = 4
+    LOCAL = 5
+
+    _VALUES_TO_NAMES = {
+        0: "USERNAME_PASSWORD",
+        1: "SSH_KEYS",
+        2: "GSI",
+        3: "KERBEROS",
+        4: "OAUTH",
+        5: "LOCAL",
+    }
+
+    _NAMES_TO_VALUES = {
+        "USERNAME_PASSWORD": 0,
+        "SSH_KEYS": 1,
+        "GSI": 2,
+        "KERBEROS": 3,
+        "OAUTH": 4,
+        "LOCAL": 5,
+    }
+
+
+class DataMovementProtocol(object):
+    """
+    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
+
+    """
+    LOCAL = 0
+    SCP = 1
+    SFTP = 2
+    GridFTP = 3
+    UNICORE_STORAGE_SERVICE = 4
+
+    _VALUES_TO_NAMES = {
+        0: "LOCAL",
+        1: "SCP",
+        2: "SFTP",
+        3: "GridFTP",
+        4: "UNICORE_STORAGE_SERVICE",
+    }
+
+    _NAMES_TO_VALUES = {
+        "LOCAL": 0,
+        "SCP": 1,
+        "SFTP": 2,
+        "GridFTP": 3,
+        "UNICORE_STORAGE_SERVICE": 4,
+    }
+
+
+class SCPDataMovement(object):
+    """
+    Data Movement through Secured Copy
+
+    alternativeSCPHostName:
+     If the login to scp is different than the hostname itself, specify it here
+
+    sshPort:
+     If a non-default port needs to used, specify it.
+
+    Attributes:
+     - dataMovementInterfaceId
+     - securityProtocol
+     - alternativeSCPHostName
+     - sshPort
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.I32, 'securityProtocol', None, None, ),  # 2
+        (3, TType.STRING, 'alternativeSCPHostName', 'UTF8', None, ),  # 3
+        (4, TType.I32, 'sshPort', None, 22, ),  # 4
+    )
+
+    def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, alternativeSCPHostName=None, sshPort=thrift_spec[4][4],):
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.securityProtocol = securityProtocol
+        self.alternativeSCPHostName = alternativeSCPHostName
+        self.sshPort = sshPort
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.I32:
+                    self.securityProtocol = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.alternativeSCPHostName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.I32:
+                    self.sshPort = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('SCPDataMovement')
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        if self.securityProtocol is not None:
+            oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
+            oprot.writeI32(self.securityProtocol)
+            oprot.writeFieldEnd()
+        if self.alternativeSCPHostName is not None:
+            oprot.writeFieldBegin('alternativeSCPHostName', TType.STRING, 3)
+            oprot.writeString(self.alternativeSCPHostName.encode('utf-8') if sys.version_info[0] == 2 else self.alternativeSCPHostName)
+            oprot.writeFieldEnd()
+        if self.sshPort is not None:
+            oprot.writeFieldBegin('sshPort', TType.I32, 4)
+            oprot.writeI32(self.sshPort)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.securityProtocol is None:
+            raise TProtocolException(message='Required field securityProtocol is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class GridFTPDataMovement(object):
+    """
+    Data Movement through GridFTP
+
+    alternativeSCPHostName:
+     If the login to scp is different than the hostname itself, specify it here
+
+    sshPort:
+     If a non-default port needs to used, specify it.
+
+    Attributes:
+     - dataMovementInterfaceId
+     - securityProtocol
+     - gridFTPEndPoints
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.I32, 'securityProtocol', None, None, ),  # 2
+        (3, TType.LIST, 'gridFTPEndPoints', (TType.STRING, 'UTF8', False), None, ),  # 3
+    )
+
+    def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, gridFTPEndPoints=None,):
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.securityProtocol = securityProtocol
+        self.gridFTPEndPoints = gridFTPEndPoints
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.I32:
+                    self.securityProtocol = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.LIST:
+                    self.gridFTPEndPoints = []
+                    (_etype3, _size0) = iprot.readListBegin()
+                    for _i4 in range(_size0):
+                        _elem5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.gridFTPEndPoints.append(_elem5)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('GridFTPDataMovement')
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        if self.securityProtocol is not None:
+            oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
+            oprot.writeI32(self.securityProtocol)
+            oprot.writeFieldEnd()
+        if self.gridFTPEndPoints is not None:
+            oprot.writeFieldBegin('gridFTPEndPoints', TType.LIST, 3)
+            oprot.writeListBegin(TType.STRING, len(self.gridFTPEndPoints))
+            for iter6 in self.gridFTPEndPoints:
+                oprot.writeString(iter6.encode('utf-8') if sys.version_info[0] == 2 else iter6)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.securityProtocol is None:
+            raise TProtocolException(message='Required field securityProtocol is unset!')
+        if self.gridFTPEndPoints is None:
+            raise TProtocolException(message='Required field gridFTPEndPoints is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class UnicoreDataMovement(object):
+    """
+    Data Movement through UnicoreStorage
+
+    unicoreEndPointURL:
+     unicoreGateway End Point. The provider will query this service to fetch required service end points.
+
+    Attributes:
+     - dataMovementInterfaceId
+     - securityProtocol
+     - unicoreEndPointURL
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.I32, 'securityProtocol', None, None, ),  # 2
+        (3, TType.STRING, 'unicoreEndPointURL', 'UTF8', None, ),  # 3
+    )
+
+    def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, unicoreEndPointURL=None,):
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.securityProtocol = securityProtocol
+        self.unicoreEndPointURL = unicoreEndPointURL
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.I32:
+                    self.securityProtocol = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.unicoreEndPointURL = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('UnicoreDataMovement')
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        if self.securityProtocol is not None:
+            oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
+            oprot.writeI32(self.securityProtocol)
+            oprot.writeFieldEnd()
+        if self.unicoreEndPointURL is not None:
+            oprot.writeFieldBegin('unicoreEndPointURL', TType.STRING, 3)
+            oprot.writeString(self.unicoreEndPointURL.encode('utf-8') if sys.version_info[0] == 2 else self.unicoreEndPointURL)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.securityProtocol is None:
+            raise TProtocolException(message='Required field securityProtocol is unset!')
+        if self.unicoreEndPointURL is None:
+            raise TProtocolException(message='Required field unicoreEndPointURL is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class LOCALDataMovement(object):
+    """
+    LOCAL
+
+    alternativeSCPHostName:
+     If the login to scp is different than the hostname itself, specify it here
+
+    sshPort:
+     If a non-defualt port needs to used, specify it.
+
+    Attributes:
+     - dataMovementInterfaceId
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+    )
+
+    def __init__(self, dataMovementInterfaceId=thrift_spec[1][4],):
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('LOCALDataMovement')
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class DataMovementInterface(object):
+    """
+    Data Movement Interfaces
+
+    dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here.
+
+    priorityOrder:
+     For resources with multiple interfaces, the priority order should be selected.
+      Lower the numerical number, higher the priority
+
+
+    Attributes:
+     - dataMovementInterfaceId
+     - dataMovementProtocol
+     - priorityOrder
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'dataMovementInterfaceId', 'UTF8', None, ),  # 1
+        (2, TType.I32, 'dataMovementProtocol', None, None, ),  # 2
+        (3, TType.I32, 'priorityOrder', None, 0, ),  # 3
+    )
+
+    def __init__(self, dataMovementInterfaceId=None, dataMovementProtocol=None, priorityOrder=thrift_spec[3][4],):
+        self.dataMovementInterfaceId = dataMovementInterfaceId
+        self.dataMovementProtocol = dataMovementProtocol
+        self.priorityOrder = priorityOrder
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.dataMovementInterfaceId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.I32:
+                    self.dataMovementProtocol = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.priorityOrder = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('DataMovementInterface')
+        if self.dataMovementInterfaceId is not None:
+            oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
+            oprot.writeString(self.dataMovementInterfaceId.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
+            oprot.writeFieldEnd()
+        if self.dataMovementProtocol is not None:
+            oprot.writeFieldBegin('dataMovementProtocol', TType.I32, 2)
+            oprot.writeI32(self.dataMovementProtocol)
+            oprot.writeFieldEnd()
+        if self.priorityOrder is not None:
+            oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
+            oprot.writeI32(self.priorityOrder)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.dataMovementInterfaceId is None:
+            raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
+        if self.dataMovementProtocol is None:
+            raise TProtocolException(message='Required field dataMovementProtocol is unset!')
+        if self.priorityOrder is None:
+            raise TProtocolException(message='Required field priorityOrder is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/9d165bd8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
index 4a6492b..eb0d35a 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
@@ -1,11 +1,12 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+from .ttypes import *