You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/08/09 18:00:50 UTC

[10/32] airavata-sandbox git commit: adding jupyter note books for Airavata

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
new file mode 100644
index 0000000..dc82372
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
new file mode 100644
index 0000000..32a9325
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
@@ -0,0 +1,167 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.data.movement.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+
+class StorageResourceDescription:
+  """
+  Storage Resource Description
+
+  storageResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
+
+  hostName:
+    Fully Qualified Host Name.
+
+  storageResourceDescription:
+   A user friendly description of the resource.
+
+
+  DataMovementProtocol:
+   Option to specify a prefered data movement mechanism of the available options.
+
+
+
+  Attributes:
+   - storageResourceId
+   - hostName
+   - storageResourceDescription
+   - enabled
+   - dataMovementInterfaces
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'storageResourceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+    (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.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,):
+    self.storageResourceId = storageResourceId
+    self.hostName = hostName
+    self.storageResourceDescription = storageResourceDescription
+    self.enabled = enabled
+    self.dataMovementInterfaces = dataMovementInterfaces
+
+  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.storageResourceId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.hostName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.storageResourceDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.BOOL:
+          self.enabled = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.LIST:
+          self.dataMovementInterfaces = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.data.movement.ttypes.DataMovementInterface()
+            _elem5.read(iprot)
+            self.dataMovementInterfaces.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('StorageResourceDescription')
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 1)
+      oprot.writeString(self.storageResourceId)
+      oprot.writeFieldEnd()
+    if self.hostName is not None:
+      oprot.writeFieldBegin('hostName', TType.STRING, 2)
+      oprot.writeString(self.hostName)
+      oprot.writeFieldEnd()
+    if self.storageResourceDescription is not None:
+      oprot.writeFieldBegin('storageResourceDescription', TType.STRING, 3)
+      oprot.writeString(self.storageResourceDescription)
+      oprot.writeFieldEnd()
+    if self.enabled is not None:
+      oprot.writeFieldBegin('enabled', TType.BOOL, 4)
+      oprot.writeBool(self.enabled)
+      oprot.writeFieldEnd()
+    if self.dataMovementInterfaces is not None:
+      oprot.writeFieldBegin('dataMovementInterfaces', TType.LIST, 5)
+      oprot.writeListBegin(TType.STRUCT, len(self.dataMovementInterfaces))
+      for iter6 in self.dataMovementInterfaces:
+        iter6.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.storageResourceId is None:
+      raise TProtocol.TProtocolException(message='Required field storageResourceId is unset!')
+    if self.hostName is None:
+      raise TProtocol.TProtocolException(message='Required field hostName is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.storageResourceId)
+    value = (value * 31) ^ hash(self.hostName)
+    value = (value * 31) ^ hash(self.storageResourceDescription)
+    value = (value * 31) ^ hash(self.enabled)
+    value = (value * 31) ^ hash(self.dataMovementInterfaces)
+    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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
new file mode 100644
index 0000000..3cb2bed
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
new file mode 100644
index 0000000..b806d59
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
new file mode 100644
index 0000000..eb40934
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
new file mode 100644
index 0000000..3b255a5
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
@@ -0,0 +1,510 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.appcatalog.computeresource.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class DataType:
+  """
+  Data Types supported in Airavata. The primitive data types
+
+  """
+  STRING = 0
+  INTEGER = 1
+  FLOAT = 2
+  URI = 3
+  URI_COLLECTION = 4
+  STDOUT = 5
+  STDERR = 6
+
+  _VALUES_TO_NAMES = {
+    0: "STRING",
+    1: "INTEGER",
+    2: "FLOAT",
+    3: "URI",
+    4: "URI_COLLECTION",
+    5: "STDOUT",
+    6: "STDERR",
+  }
+
+  _NAMES_TO_VALUES = {
+    "STRING": 0,
+    "INTEGER": 1,
+    "FLOAT": 2,
+    "URI": 3,
+    "URI_COLLECTION": 4,
+    "STDOUT": 5,
+    "STDERR": 6,
+  }
+
+
+class InputDataObjectType:
+  """
+  Application Inputs. The paramters describe how inputs are passed to the application.
+
+  name:
+    Name of the parameter.
+
+  value:
+    Value of the parameter. A default value could be set during registration.
+
+  type:
+    Data type of the parameter
+
+  applicationArguement:
+    The argument flag sent to the application. Such as -p pressure.
+
+  standardInput:
+    When this value is set, the parameter is sent as standard input rather than a parameter.
+    Typically this is passed using redirection operator ">".
+
+  userFriendlyDescription:
+    Description to be displayed at the user interface.
+
+  metaData:
+    Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+  Attributes:
+   - name
+   - value
+   - type
+   - applicationArgument
+   - standardInput
+   - userFriendlyDescription
+   - metaData
+   - inputOrder
+   - isRequired
+   - requiredToAddedToCommandLine
+   - dataStaged
+   - storageResourceId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'name', None, None, ), # 1
+    (2, TType.STRING, 'value', None, None, ), # 2
+    (3, TType.I32, 'type', None, None, ), # 3
+    (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+    (5, TType.BOOL, 'standardInput', None, None, ), # 5
+    (6, TType.STRING, 'userFriendlyDescription', None, None, ), # 6
+    (7, TType.STRING, 'metaData', None, None, ), # 7
+    (8, TType.I32, 'inputOrder', None, None, ), # 8
+    (9, TType.BOOL, 'isRequired', None, None, ), # 9
+    (10, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 10
+    (11, TType.BOOL, 'dataStaged', None, None, ), # 11
+    (12, TType.STRING, 'storageResourceId', None, None, ), # 12
+  )
+
+  def __init__(self, name=None, value=None, type=None, applicationArgument=None, standardInput=None, userFriendlyDescription=None, metaData=None, inputOrder=None, isRequired=None, requiredToAddedToCommandLine=None, dataStaged=None, storageResourceId=None,):
+    self.name = name
+    self.value = value
+    self.type = type
+    self.applicationArgument = applicationArgument
+    self.standardInput = standardInput
+    self.userFriendlyDescription = userFriendlyDescription
+    self.metaData = metaData
+    self.inputOrder = inputOrder
+    self.isRequired = isRequired
+    self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+    self.dataStaged = dataStaged
+    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:
+      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.name = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.value = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.I32:
+          self.type = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.applicationArgument = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.BOOL:
+          self.standardInput = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.userFriendlyDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.metaData = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I32:
+          self.inputOrder = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.BOOL:
+          self.isRequired = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.BOOL:
+          self.requiredToAddedToCommandLine = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.BOOL:
+          self.dataStaged = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.STRING:
+          self.storageResourceId = 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('InputDataObjectType')
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 1)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.value is not None:
+      oprot.writeFieldBegin('value', TType.STRING, 2)
+      oprot.writeString(self.value)
+      oprot.writeFieldEnd()
+    if self.type is not None:
+      oprot.writeFieldBegin('type', TType.I32, 3)
+      oprot.writeI32(self.type)
+      oprot.writeFieldEnd()
+    if self.applicationArgument is not None:
+      oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+      oprot.writeString(self.applicationArgument)
+      oprot.writeFieldEnd()
+    if self.standardInput is not None:
+      oprot.writeFieldBegin('standardInput', TType.BOOL, 5)
+      oprot.writeBool(self.standardInput)
+      oprot.writeFieldEnd()
+    if self.userFriendlyDescription is not None:
+      oprot.writeFieldBegin('userFriendlyDescription', TType.STRING, 6)
+      oprot.writeString(self.userFriendlyDescription)
+      oprot.writeFieldEnd()
+    if self.metaData is not None:
+      oprot.writeFieldBegin('metaData', TType.STRING, 7)
+      oprot.writeString(self.metaData)
+      oprot.writeFieldEnd()
+    if self.inputOrder is not None:
+      oprot.writeFieldBegin('inputOrder', TType.I32, 8)
+      oprot.writeI32(self.inputOrder)
+      oprot.writeFieldEnd()
+    if self.isRequired is not None:
+      oprot.writeFieldBegin('isRequired', TType.BOOL, 9)
+      oprot.writeBool(self.isRequired)
+      oprot.writeFieldEnd()
+    if self.requiredToAddedToCommandLine is not None:
+      oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 10)
+      oprot.writeBool(self.requiredToAddedToCommandLine)
+      oprot.writeFieldEnd()
+    if self.dataStaged is not None:
+      oprot.writeFieldBegin('dataStaged', TType.BOOL, 11)
+      oprot.writeBool(self.dataStaged)
+      oprot.writeFieldEnd()
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 12)
+      oprot.writeString(self.storageResourceId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.name is None:
+      raise TProtocol.TProtocolException(message='Required field name is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.value)
+    value = (value * 31) ^ hash(self.type)
+    value = (value * 31) ^ hash(self.applicationArgument)
+    value = (value * 31) ^ hash(self.standardInput)
+    value = (value * 31) ^ hash(self.userFriendlyDescription)
+    value = (value * 31) ^ hash(self.metaData)
+    value = (value * 31) ^ hash(self.inputOrder)
+    value = (value * 31) ^ hash(self.isRequired)
+    value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+    value = (value * 31) ^ hash(self.dataStaged)
+    value = (value * 31) ^ hash(self.storageResourceId)
+    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 OutputDataObjectType:
+  """
+  Application Outputs. The paramters describe how outputs generated by the application.
+
+  name:
+    Name of the parameter.
+
+  value:
+    Value of the parameter.
+
+  type:
+    Data type of the parameter
+
+  applicationArguement:
+    The argument flag sent to the application. Such as -p pressure.
+
+  standardInput:
+    When this value is set, the parameter is sent as standard input rather than a parameter.
+    Typically this is passed using redirection operator ">".
+
+  userFriendlyDescription:
+    Description to be displayed at the user interface.
+
+  metaData:
+    Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+  Attributes:
+   - name
+   - value
+   - type
+   - applicationArgument
+   - isRequired
+   - requiredToAddedToCommandLine
+   - dataMovement
+   - location
+   - searchQuery
+   - outputStreaming
+   - storageResourceId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'name', None, None, ), # 1
+    (2, TType.STRING, 'value', None, None, ), # 2
+    (3, TType.I32, 'type', None, None, ), # 3
+    (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+    (5, TType.BOOL, 'isRequired', None, None, ), # 5
+    (6, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 6
+    (7, TType.BOOL, 'dataMovement', None, None, ), # 7
+    (8, TType.STRING, 'location', None, None, ), # 8
+    (9, TType.STRING, 'searchQuery', None, None, ), # 9
+    (10, TType.BOOL, 'outputStreaming', None, None, ), # 10
+    (11, TType.STRING, 'storageResourceId', None, None, ), # 11
+  )
+
+  def __init__(self, name=None, value=None, type=None, applicationArgument=None, isRequired=None, requiredToAddedToCommandLine=None, dataMovement=None, location=None, searchQuery=None, outputStreaming=None, storageResourceId=None,):
+    self.name = name
+    self.value = value
+    self.type = type
+    self.applicationArgument = applicationArgument
+    self.isRequired = isRequired
+    self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+    self.dataMovement = dataMovement
+    self.location = location
+    self.searchQuery = searchQuery
+    self.outputStreaming = outputStreaming
+    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:
+      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.name = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.value = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.I32:
+          self.type = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.applicationArgument = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.BOOL:
+          self.isRequired = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.BOOL:
+          self.requiredToAddedToCommandLine = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.BOOL:
+          self.dataMovement = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.location = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.searchQuery = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.BOOL:
+          self.outputStreaming = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.storageResourceId = 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('OutputDataObjectType')
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 1)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.value is not None:
+      oprot.writeFieldBegin('value', TType.STRING, 2)
+      oprot.writeString(self.value)
+      oprot.writeFieldEnd()
+    if self.type is not None:
+      oprot.writeFieldBegin('type', TType.I32, 3)
+      oprot.writeI32(self.type)
+      oprot.writeFieldEnd()
+    if self.applicationArgument is not None:
+      oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+      oprot.writeString(self.applicationArgument)
+      oprot.writeFieldEnd()
+    if self.isRequired is not None:
+      oprot.writeFieldBegin('isRequired', TType.BOOL, 5)
+      oprot.writeBool(self.isRequired)
+      oprot.writeFieldEnd()
+    if self.requiredToAddedToCommandLine is not None:
+      oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 6)
+      oprot.writeBool(self.requiredToAddedToCommandLine)
+      oprot.writeFieldEnd()
+    if self.dataMovement is not None:
+      oprot.writeFieldBegin('dataMovement', TType.BOOL, 7)
+      oprot.writeBool(self.dataMovement)
+      oprot.writeFieldEnd()
+    if self.location is not None:
+      oprot.writeFieldBegin('location', TType.STRING, 8)
+      oprot.writeString(self.location)
+      oprot.writeFieldEnd()
+    if self.searchQuery is not None:
+      oprot.writeFieldBegin('searchQuery', TType.STRING, 9)
+      oprot.writeString(self.searchQuery)
+      oprot.writeFieldEnd()
+    if self.outputStreaming is not None:
+      oprot.writeFieldBegin('outputStreaming', TType.BOOL, 10)
+      oprot.writeBool(self.outputStreaming)
+      oprot.writeFieldEnd()
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 11)
+      oprot.writeString(self.storageResourceId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.name is None:
+      raise TProtocol.TProtocolException(message='Required field name is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.value)
+    value = (value * 31) ^ hash(self.type)
+    value = (value * 31) ^ hash(self.applicationArgument)
+    value = (value * 31) ^ hash(self.isRequired)
+    value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+    value = (value * 31) ^ hash(self.dataMovement)
+    value = (value * 31) ^ hash(self.location)
+    value = (value * 31) ^ hash(self.searchQuery)
+    value = (value * 31) ^ hash(self.outputStreaming)
+    value = (value * 31) ^ hash(self.storageResourceId)
+    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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
new file mode 100644
index 0000000..ad38d28
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
new file mode 100644
index 0000000..78b00cc
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
new file mode 100644
index 0000000..abf8bc6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
@@ -0,0 +1,12 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 *
+
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
new file mode 100644
index 0000000..21ec7e0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
@@ -0,0 +1,335 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.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)

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
new file mode 100644
index 0000000..1b27961
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
new file mode 100644
index 0000000..6a02e2f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
new file mode 100644
index 0000000..b4638db
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
new file mode 100644
index 0000000..01e5c45
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
@@ -0,0 +1,625 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 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)

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
new file mode 100644
index 0000000..12a05dd
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc differ

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 *
+