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 2015/11/23 20:22:07 UTC

[06/14] airavata git commit: moving data movement structs to common thrift file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/storageresource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/storageresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/storageresource/ttypes.py
index 86640e3..b67dc55 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/storageresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/storageresource/ttypes.py
@@ -8,7 +8,7 @@
 
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import apache.airavata.model.commons.ttypes
-import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.data.movement.ttypes
 
 
 from thrift.transport import TTransport
@@ -52,7 +52,7 @@ class StorageResourceDescription:
     (2, TType.STRING, 'hostName', None, None, ), # 2
     (3, TType.STRING, 'storageResourceDescription', None, None, ), # 3
     (4, TType.BOOL, 'enabled', None, None, ), # 4
-    (5, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT,(apache.airavata.model.appcatalog.computeresource.ttypes.DataMovementInterface, apache.airavata.model.appcatalog.computeresource.ttypes.DataMovementInterface.thrift_spec)), None, ), # 5
+    (5, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT,(apache.airavata.model.data.movement.ttypes.DataMovementInterface, apache.airavata.model.data.movement.ttypes.DataMovementInterface.thrift_spec)), None, ), # 5
   )
 
   def __init__(self, storageResourceId=thrift_spec[1][4], hostName=None, storageResourceDescription=None, enabled=None, dataMovementInterfaces=None,):
@@ -96,7 +96,7 @@ class StorageResourceDescription:
           self.dataMovementInterfaces = []
           (_etype3, _size0) = iprot.readListBegin()
           for _i4 in xrange(_size0):
-            _elem5 = apache.airavata.model.appcatalog.computeresource.ttypes.DataMovementInterface()
+            _elem5 = apache.airavata.model.data.movement.ttypes.DataMovementInterface()
             _elem5.read(iprot)
             self.dataMovementInterfaces.append(_elem5)
           iprot.readListEnd()

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/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
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# 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 *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/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
new file mode 100644
index 0000000..db4f516
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/movement/ttypes.py
@@ -0,0 +1,625 @@
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# 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
+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 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
+
+  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)

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
index a447541..764c5bb 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
@@ -80,6 +80,7 @@ class UserConfigurationDataModel:
    - throttleResources
    - userDN
    - generateCert
+   - storageId
   """
 
   thrift_spec = (
@@ -91,9 +92,10 @@ class UserConfigurationDataModel:
     (5, TType.BOOL, 'throttleResources', None, False, ), # 5
     (6, TType.STRING, 'userDN', None, None, ), # 6
     (7, TType.BOOL, 'generateCert', None, False, ), # 7
+    (8, TType.STRING, 'storageId', None, None, ), # 8
   )
 
-  def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4],):
+  def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4], storageId=None,):
     self.airavataAutoSchedule = airavataAutoSchedule
     self.overrideManualScheduledParams = overrideManualScheduledParams
     self.shareExperimentPublicly = shareExperimentPublicly
@@ -101,6 +103,7 @@ class UserConfigurationDataModel:
     self.throttleResources = throttleResources
     self.userDN = userDN
     self.generateCert = generateCert
+    self.storageId = storageId
 
   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:
@@ -147,6 +150,11 @@ class UserConfigurationDataModel:
           self.generateCert = iprot.readBool();
         else:
           iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.storageId = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -185,6 +193,10 @@ class UserConfigurationDataModel:
       oprot.writeFieldBegin('generateCert', TType.BOOL, 7)
       oprot.writeBool(self.generateCert)
       oprot.writeFieldEnd()
+    if self.storageId is not None:
+      oprot.writeFieldBegin('storageId', TType.STRING, 8)
+      oprot.writeString(self.storageId)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -205,6 +217,7 @@ class UserConfigurationDataModel:
     value = (value * 31) ^ hash(self.throttleResources)
     value = (value * 31) ^ hash(self.userDN)
     value = (value * 31) ^ hash(self.generateCert)
+    value = (value * 31) ^ hash(self.storageId)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
index 10104e4..def3a77 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
@@ -52,6 +52,7 @@ class ProcessModel:
    - gatewayExecutionId
    - enableEmailNotification
    - emailAddresses
+   - storageResourceId
   """
 
   thrift_spec = (
@@ -74,9 +75,10 @@ class ProcessModel:
     (16, TType.STRING, 'gatewayExecutionId', None, None, ), # 16
     (17, TType.BOOL, 'enableEmailNotification', None, None, ), # 17
     (18, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 18
+    (19, TType.STRING, 'storageResourceId', None, None, ), # 19
   )
 
-  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, resourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None,):
+  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, resourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None,):
     self.processId = processId
     self.experimentId = experimentId
     self.creationTime = creationTime
@@ -95,6 +97,7 @@ class ProcessModel:
     self.gatewayExecutionId = gatewayExecutionId
     self.enableEmailNotification = enableEmailNotification
     self.emailAddresses = emailAddresses
+    self.storageResourceId = storageResourceId
 
   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:
@@ -221,6 +224,11 @@ class ProcessModel:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
+      elif fid == 19:
+        if ftype == TType.STRING:
+          self.storageResourceId = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -315,6 +323,10 @@ class ProcessModel:
         oprot.writeString(iter27)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 19)
+      oprot.writeString(self.storageResourceId)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -346,6 +358,7 @@ class ProcessModel:
     value = (value * 31) ^ hash(self.gatewayExecutionId)
     value = (value * 31) ^ hash(self.enableEmailNotification)
     value = (value * 31) ^ hash(self.emailAddresses)
+    value = (value * 31) ^ hash(self.storageResourceId)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
index e6dcb62..cacdef0 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
@@ -10,6 +10,7 @@ from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import apache.airavata.model.commons.ttypes
 import apache.airavata.model.status.ttypes
 import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.data.movement.ttypes
 import apache.airavata.model.application.io.ttypes
 import apache.airavata.model.job.ttypes
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
index b88a91b..48785bb 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
@@ -18,6 +18,7 @@ import apache.airavata.model.task.ttypes
 import apache.airavata.model.process.ttypes
 import apache.airavata.model.scheduling.ttypes
 import apache.airavata.model.status.ttypes
+import apache.airavata.model.data.movement.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
index 406715a..2f91ee0 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
@@ -3,7 +3,6 @@ package org.apache.airavata.client.samples;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
@@ -12,11 +11,11 @@ import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
 import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
 import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
+import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataErrorType;
 import org.apache.airavata.model.error.AiravataSystemException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 8d3708c..59ec9b0 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -30,6 +30,7 @@ import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
+import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.*;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.ExperimentSummaryModel;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
index 1614ce5..557b208 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
@@ -26,8 +26,6 @@ import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
 import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.DataMovementInterface;
-import org.apache.airavata.model.appcatalog.computeresource.DataMovementProtocol;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
@@ -38,6 +36,8 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfil
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.DataMovementInterface;
+import org.apache.airavata.model.data.movement.DataMovementProtocol;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.airavata.model.workspace.Gateway;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
index f0cf0d5..6ed6a78 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
@@ -30,6 +30,9 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfil
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.DMType;
+import org.apache.airavata.model.data.movement.SCPDataMovement;
+import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.thrift.TException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index 0e22c85..836c88d 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -32,6 +32,10 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfil
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.DMType;
+import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.data.movement.SCPDataMovement;
+import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.thrift.TException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
index b2f12c1..dfe6b80 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
@@ -31,6 +31,8 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePrefer
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.DataMovementInterface;
+import org.apache.airavata.model.data.movement.DataMovementProtocol;
 
 import java.util.List;
 import java.util.Map;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
index 92dc544..9523389 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
@@ -30,6 +30,9 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfil
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.DMType;
+import org.apache.airavata.model.data.movement.SCPDataMovement;
+import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.thrift.TException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index 629c57a..39a76e2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -74,7 +74,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
   }
 
   private String jobSubmissionInterfaceId; // required
-  private SecurityProtocol securityProtocol; // required
+  private org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
   private String nodeId; // required
   private String executableType; // required
   private ProviderName providerName; // required
@@ -85,7 +85,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
     /**
      * 
-     * @see SecurityProtocol
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
      */
     SECURITY_PROTOCOL((short)2, "securityProtocol"),
     NODE_ID((short)3, "nodeId"),
@@ -168,7 +168,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     tmpMap.put(_Fields.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", 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)));
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
     tmpMap.put(_Fields.NODE_ID, new org.apache.thrift.meta_data.FieldMetaData("nodeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.EXECUTABLE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("executableType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
@@ -188,7 +188,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
 
   public CloudJobSubmission(
     String jobSubmissionInterfaceId,
-    SecurityProtocol securityProtocol,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
     String nodeId,
     String executableType,
     ProviderName providerName,
@@ -267,17 +267,17 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
 
   /**
    * 
-   * @see SecurityProtocol
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
    */
-  public SecurityProtocol getSecurityProtocol() {
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
     return this.securityProtocol;
   }
 
   /**
    * 
-   * @see SecurityProtocol
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
    */
-  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+  public void setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
     this.securityProtocol = securityProtocol;
   }
 
@@ -410,7 +410,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       if (value == null) {
         unsetSecurityProtocol();
       } else {
-        setSecurityProtocol((SecurityProtocol)value);
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
       }
       break;
 
@@ -815,7 +815,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
             break;
           case 2: // SECURITY_PROTOCOL
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.securityProtocol = org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol.findByValue(iprot.readI32());
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
               struct.setSecurityProtocolIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -926,7 +926,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.jobSubmissionInterfaceId = iprot.readString();
       struct.setJobSubmissionInterfaceIdIsSet(true);
-      struct.securityProtocol = org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol.findByValue(iprot.readI32());
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
       struct.setSecurityProtocolIsSet(true);
       struct.nodeId = iprot.readString();
       struct.setNodeIdIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index b441a14..06fc413 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -111,7 +111,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private List<BatchQueue> batchQueues; // optional
   private Map<FileSystems,String> fileSystems; // optional
   private List<JobSubmissionInterface> jobSubmissionInterfaces; // optional
-  private List<DataMovementInterface> dataMovementInterfaces; // optional
+  private List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces; // optional
   private int maxMemoryPerNode; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -236,7 +236,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobSubmissionInterface.class))));
     tmpMap.put(_Fields.DATA_MOVEMENT_INTERFACES, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaces", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataMovementInterface.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.movement.DataMovementInterface.class))));
     tmpMap.put(_Fields.MAX_MEMORY_PER_NODE, new org.apache.thrift.meta_data.FieldMetaData("maxMemoryPerNode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -310,9 +310,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       this.jobSubmissionInterfaces = __this__jobSubmissionInterfaces;
     }
     if (other.isSetDataMovementInterfaces()) {
-      List<DataMovementInterface> __this__dataMovementInterfaces = new ArrayList<DataMovementInterface>(other.dataMovementInterfaces.size());
-      for (DataMovementInterface other_element : other.dataMovementInterfaces) {
-        __this__dataMovementInterfaces.add(new DataMovementInterface(other_element));
+      List<org.apache.airavata.model.data.movement.DataMovementInterface> __this__dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(other.dataMovementInterfaces.size());
+      for (org.apache.airavata.model.data.movement.DataMovementInterface other_element : other.dataMovementInterfaces) {
+        __this__dataMovementInterfaces.add(new org.apache.airavata.model.data.movement.DataMovementInterface(other_element));
       }
       this.dataMovementInterfaces = __this__dataMovementInterfaces;
     }
@@ -622,22 +622,22 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     return (this.dataMovementInterfaces == null) ? 0 : this.dataMovementInterfaces.size();
   }
 
-  public java.util.Iterator<DataMovementInterface> getDataMovementInterfacesIterator() {
+  public java.util.Iterator<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfacesIterator() {
     return (this.dataMovementInterfaces == null) ? null : this.dataMovementInterfaces.iterator();
   }
 
-  public void addToDataMovementInterfaces(DataMovementInterface elem) {
+  public void addToDataMovementInterfaces(org.apache.airavata.model.data.movement.DataMovementInterface elem) {
     if (this.dataMovementInterfaces == null) {
-      this.dataMovementInterfaces = new ArrayList<DataMovementInterface>();
+      this.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>();
     }
     this.dataMovementInterfaces.add(elem);
   }
 
-  public List<DataMovementInterface> getDataMovementInterfaces() {
+  public List<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfaces() {
     return this.dataMovementInterfaces;
   }
 
-  public void setDataMovementInterfaces(List<DataMovementInterface> dataMovementInterfaces) {
+  public void setDataMovementInterfaces(List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces) {
     this.dataMovementInterfaces = dataMovementInterfaces;
   }
 
@@ -756,7 +756,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (value == null) {
         unsetDataMovementInterfaces();
       } else {
-        setDataMovementInterfaces((List<DataMovementInterface>)value);
+        setDataMovementInterfaces((List<org.apache.airavata.model.data.movement.DataMovementInterface>)value);
       }
       break;
 
@@ -1327,13 +1327,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 3: // HOST_ALIASES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list34 = iprot.readListBegin();
-                struct.hostAliases = new ArrayList<String>(_list34.size);
-                String _elem35;
-                for (int _i36 = 0; _i36 < _list34.size; ++_i36)
+                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
+                struct.hostAliases = new ArrayList<String>(_list26.size);
+                String _elem27;
+                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
                 {
-                  _elem35 = iprot.readString();
-                  struct.hostAliases.add(_elem35);
+                  _elem27 = iprot.readString();
+                  struct.hostAliases.add(_elem27);
                 }
                 iprot.readListEnd();
               }
@@ -1345,13 +1345,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 4: // IP_ADDRESSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list37 = iprot.readListBegin();
-                struct.ipAddresses = new ArrayList<String>(_list37.size);
-                String _elem38;
-                for (int _i39 = 0; _i39 < _list37.size; ++_i39)
+                org.apache.thrift.protocol.TList _list29 = iprot.readListBegin();
+                struct.ipAddresses = new ArrayList<String>(_list29.size);
+                String _elem30;
+                for (int _i31 = 0; _i31 < _list29.size; ++_i31)
                 {
-                  _elem38 = iprot.readString();
-                  struct.ipAddresses.add(_elem38);
+                  _elem30 = iprot.readString();
+                  struct.ipAddresses.add(_elem30);
                 }
                 iprot.readListEnd();
               }
@@ -1379,14 +1379,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 7: // BATCH_QUEUES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list40 = iprot.readListBegin();
-                struct.batchQueues = new ArrayList<BatchQueue>(_list40.size);
-                BatchQueue _elem41;
-                for (int _i42 = 0; _i42 < _list40.size; ++_i42)
+                org.apache.thrift.protocol.TList _list32 = iprot.readListBegin();
+                struct.batchQueues = new ArrayList<BatchQueue>(_list32.size);
+                BatchQueue _elem33;
+                for (int _i34 = 0; _i34 < _list32.size; ++_i34)
                 {
-                  _elem41 = new BatchQueue();
-                  _elem41.read(iprot);
-                  struct.batchQueues.add(_elem41);
+                  _elem33 = new BatchQueue();
+                  _elem33.read(iprot);
+                  struct.batchQueues.add(_elem33);
                 }
                 iprot.readListEnd();
               }
@@ -1398,15 +1398,15 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 8: // FILE_SYSTEMS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map43 = iprot.readMapBegin();
-                struct.fileSystems = new HashMap<FileSystems,String>(2*_map43.size);
-                FileSystems _key44;
-                String _val45;
-                for (int _i46 = 0; _i46 < _map43.size; ++_i46)
+                org.apache.thrift.protocol.TMap _map35 = iprot.readMapBegin();
+                struct.fileSystems = new HashMap<FileSystems,String>(2*_map35.size);
+                FileSystems _key36;
+                String _val37;
+                for (int _i38 = 0; _i38 < _map35.size; ++_i38)
                 {
-                  _key44 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-                  _val45 = iprot.readString();
-                  struct.fileSystems.put(_key44, _val45);
+                  _key36 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+                  _val37 = iprot.readString();
+                  struct.fileSystems.put(_key36, _val37);
                 }
                 iprot.readMapEnd();
               }
@@ -1418,14 +1418,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 9: // JOB_SUBMISSION_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list47 = iprot.readListBegin();
-                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list47.size);
-                JobSubmissionInterface _elem48;
-                for (int _i49 = 0; _i49 < _list47.size; ++_i49)
+                org.apache.thrift.protocol.TList _list39 = iprot.readListBegin();
+                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list39.size);
+                JobSubmissionInterface _elem40;
+                for (int _i41 = 0; _i41 < _list39.size; ++_i41)
                 {
-                  _elem48 = new JobSubmissionInterface();
-                  _elem48.read(iprot);
-                  struct.jobSubmissionInterfaces.add(_elem48);
+                  _elem40 = new JobSubmissionInterface();
+                  _elem40.read(iprot);
+                  struct.jobSubmissionInterfaces.add(_elem40);
                 }
                 iprot.readListEnd();
               }
@@ -1437,14 +1437,14 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           case 10: // DATA_MOVEMENT_INTERFACES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list50 = iprot.readListBegin();
-                struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list50.size);
-                DataMovementInterface _elem51;
-                for (int _i52 = 0; _i52 < _list50.size; ++_i52)
+                org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
+                struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list42.size);
+                org.apache.airavata.model.data.movement.DataMovementInterface _elem43;
+                for (int _i44 = 0; _i44 < _list42.size; ++_i44)
                 {
-                  _elem51 = new DataMovementInterface();
-                  _elem51.read(iprot);
-                  struct.dataMovementInterfaces.add(_elem51);
+                  _elem43 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+                  _elem43.read(iprot);
+                  struct.dataMovementInterfaces.add(_elem43);
                 }
                 iprot.readListEnd();
               }
@@ -1489,9 +1489,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
-            for (String _iter53 : struct.hostAliases)
+            for (String _iter45 : struct.hostAliases)
             {
-              oprot.writeString(_iter53);
+              oprot.writeString(_iter45);
             }
             oprot.writeListEnd();
           }
@@ -1503,9 +1503,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
-            for (String _iter54 : struct.ipAddresses)
+            for (String _iter46 : struct.ipAddresses)
             {
-              oprot.writeString(_iter54);
+              oprot.writeString(_iter46);
             }
             oprot.writeListEnd();
           }
@@ -1529,9 +1529,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(BATCH_QUEUES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.batchQueues.size()));
-            for (BatchQueue _iter55 : struct.batchQueues)
+            for (BatchQueue _iter47 : struct.batchQueues)
             {
-              _iter55.write(oprot);
+              _iter47.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1543,10 +1543,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(FILE_SYSTEMS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.fileSystems.size()));
-            for (Map.Entry<FileSystems, String> _iter56 : struct.fileSystems.entrySet())
+            for (Map.Entry<FileSystems, String> _iter48 : struct.fileSystems.entrySet())
             {
-              oprot.writeI32(_iter56.getKey().getValue());
-              oprot.writeString(_iter56.getValue());
+              oprot.writeI32(_iter48.getKey().getValue());
+              oprot.writeString(_iter48.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -1558,9 +1558,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobSubmissionInterfaces.size()));
-            for (JobSubmissionInterface _iter57 : struct.jobSubmissionInterfaces)
+            for (JobSubmissionInterface _iter49 : struct.jobSubmissionInterfaces)
             {
-              _iter57.write(oprot);
+              _iter49.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1572,9 +1572,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataMovementInterfaces.size()));
-            for (DataMovementInterface _iter58 : struct.dataMovementInterfaces)
+            for (org.apache.airavata.model.data.movement.DataMovementInterface _iter50 : struct.dataMovementInterfaces)
             {
-              _iter58.write(oprot);
+              _iter50.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1637,18 +1637,18 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetHostAliases()) {
         {
           oprot.writeI32(struct.hostAliases.size());
-          for (String _iter59 : struct.hostAliases)
+          for (String _iter51 : struct.hostAliases)
           {
-            oprot.writeString(_iter59);
+            oprot.writeString(_iter51);
           }
         }
       }
       if (struct.isSetIpAddresses()) {
         {
           oprot.writeI32(struct.ipAddresses.size());
-          for (String _iter60 : struct.ipAddresses)
+          for (String _iter52 : struct.ipAddresses)
           {
-            oprot.writeString(_iter60);
+            oprot.writeString(_iter52);
           }
         }
       }
@@ -1661,37 +1661,37 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetBatchQueues()) {
         {
           oprot.writeI32(struct.batchQueues.size());
-          for (BatchQueue _iter61 : struct.batchQueues)
+          for (BatchQueue _iter53 : struct.batchQueues)
           {
-            _iter61.write(oprot);
+            _iter53.write(oprot);
           }
         }
       }
       if (struct.isSetFileSystems()) {
         {
           oprot.writeI32(struct.fileSystems.size());
-          for (Map.Entry<FileSystems, String> _iter62 : struct.fileSystems.entrySet())
+          for (Map.Entry<FileSystems, String> _iter54 : struct.fileSystems.entrySet())
           {
-            oprot.writeI32(_iter62.getKey().getValue());
-            oprot.writeString(_iter62.getValue());
+            oprot.writeI32(_iter54.getKey().getValue());
+            oprot.writeString(_iter54.getValue());
           }
         }
       }
       if (struct.isSetJobSubmissionInterfaces()) {
         {
           oprot.writeI32(struct.jobSubmissionInterfaces.size());
-          for (JobSubmissionInterface _iter63 : struct.jobSubmissionInterfaces)
+          for (JobSubmissionInterface _iter55 : struct.jobSubmissionInterfaces)
           {
-            _iter63.write(oprot);
+            _iter55.write(oprot);
           }
         }
       }
       if (struct.isSetDataMovementInterfaces()) {
         {
           oprot.writeI32(struct.dataMovementInterfaces.size());
-          for (DataMovementInterface _iter64 : struct.dataMovementInterfaces)
+          for (org.apache.airavata.model.data.movement.DataMovementInterface _iter56 : struct.dataMovementInterfaces)
           {
-            _iter64.write(oprot);
+            _iter56.write(oprot);
           }
         }
       }
@@ -1710,26 +1710,26 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       BitSet incoming = iprot.readBitSet(9);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list65 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.hostAliases = new ArrayList<String>(_list65.size);
-          String _elem66;
-          for (int _i67 = 0; _i67 < _list65.size; ++_i67)
+          org.apache.thrift.protocol.TList _list57 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.hostAliases = new ArrayList<String>(_list57.size);
+          String _elem58;
+          for (int _i59 = 0; _i59 < _list57.size; ++_i59)
           {
-            _elem66 = iprot.readString();
-            struct.hostAliases.add(_elem66);
+            _elem58 = iprot.readString();
+            struct.hostAliases.add(_elem58);
           }
         }
         struct.setHostAliasesIsSet(true);
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list68 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.ipAddresses = new ArrayList<String>(_list68.size);
-          String _elem69;
-          for (int _i70 = 0; _i70 < _list68.size; ++_i70)
+          org.apache.thrift.protocol.TList _list60 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.ipAddresses = new ArrayList<String>(_list60.size);
+          String _elem61;
+          for (int _i62 = 0; _i62 < _list60.size; ++_i62)
           {
-            _elem69 = iprot.readString();
-            struct.ipAddresses.add(_elem69);
+            _elem61 = iprot.readString();
+            struct.ipAddresses.add(_elem61);
           }
         }
         struct.setIpAddressesIsSet(true);
@@ -1744,57 +1744,57 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       }
       if (incoming.get(4)) {
         {
-          org.apache.thrift.protocol.TList _list71 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.batchQueues = new ArrayList<BatchQueue>(_list71.size);
-          BatchQueue _elem72;
-          for (int _i73 = 0; _i73 < _list71.size; ++_i73)
+          org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.batchQueues = new ArrayList<BatchQueue>(_list63.size);
+          BatchQueue _elem64;
+          for (int _i65 = 0; _i65 < _list63.size; ++_i65)
           {
-            _elem72 = new BatchQueue();
-            _elem72.read(iprot);
-            struct.batchQueues.add(_elem72);
+            _elem64 = new BatchQueue();
+            _elem64.read(iprot);
+            struct.batchQueues.add(_elem64);
           }
         }
         struct.setBatchQueuesIsSet(true);
       }
       if (incoming.get(5)) {
         {
-          org.apache.thrift.protocol.TMap _map74 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.fileSystems = new HashMap<FileSystems,String>(2*_map74.size);
-          FileSystems _key75;
-          String _val76;
-          for (int _i77 = 0; _i77 < _map74.size; ++_i77)
+          org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.fileSystems = new HashMap<FileSystems,String>(2*_map66.size);
+          FileSystems _key67;
+          String _val68;
+          for (int _i69 = 0; _i69 < _map66.size; ++_i69)
           {
-            _key75 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
-            _val76 = iprot.readString();
-            struct.fileSystems.put(_key75, _val76);
+            _key67 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+            _val68 = iprot.readString();
+            struct.fileSystems.put(_key67, _val68);
           }
         }
         struct.setFileSystemsIsSet(true);
       }
       if (incoming.get(6)) {
         {
-          org.apache.thrift.protocol.TList _list78 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list78.size);
-          JobSubmissionInterface _elem79;
-          for (int _i80 = 0; _i80 < _list78.size; ++_i80)
+          org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list70.size);
+          JobSubmissionInterface _elem71;
+          for (int _i72 = 0; _i72 < _list70.size; ++_i72)
           {
-            _elem79 = new JobSubmissionInterface();
-            _elem79.read(iprot);
-            struct.jobSubmissionInterfaces.add(_elem79);
+            _elem71 = new JobSubmissionInterface();
+            _elem71.read(iprot);
+            struct.jobSubmissionInterfaces.add(_elem71);
           }
         }
         struct.setJobSubmissionInterfacesIsSet(true);
       }
       if (incoming.get(7)) {
         {
-          org.apache.thrift.protocol.TList _list81 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.dataMovementInterfaces = new ArrayList<DataMovementInterface>(_list81.size);
-          DataMovementInterface _elem82;
-          for (int _i83 = 0; _i83 < _list81.size; ++_i83)
+          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list73.size);
+          org.apache.airavata.model.data.movement.DataMovementInterface _elem74;
+          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
           {
-            _elem82 = new DataMovementInterface();
-            _elem82.read(iprot);
-            struct.dataMovementInterfaces.add(_elem82);
+            _elem74 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+            _elem74.read(iprot);
+            struct.dataMovementInterfaces.add(_elem74);
           }
         }
         struct.setDataMovementInterfacesIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca89eaee/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
deleted file mode 100644
index 4cb727e..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
+++ /dev/null
@@ -1,62 +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.2)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.appcatalog.computeresource;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum DMType implements org.apache.thrift.TEnum {
-  COMPUTE_RESOURCE(0),
-  STORAGE_RESOURCE(1);
-
-  private final int value;
-
-  private DMType(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 DMType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return COMPUTE_RESOURCE;
-      case 1:
-        return STORAGE_RESOURCE;
-      default:
-        return null;
-    }
-  }
-}