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 2015/03/24 10:19:13 UTC

[2/8] airavata git commit: Adding python generated code - AIRAVATA-1642

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
new file mode 100644
index 0000000..25d2fb0
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
@@ -0,0 +1,429 @@
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# 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.workspace.experiment.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+
+class Group:
+  """
+  Attributes:
+   - groupName
+   - description
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'groupName', None, None, ), # 1
+    (2, TType.STRING, 'description', None, None, ), # 2
+  )
+
+  def __init__(self, groupName=None, description=None,):
+    self.groupName = groupName
+    self.description = description
+
+  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.groupName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.description = 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('Group')
+    if self.groupName is not None:
+      oprot.writeFieldBegin('groupName', TType.STRING, 1)
+      oprot.writeString(self.groupName)
+      oprot.writeFieldEnd()
+    if self.description is not None:
+      oprot.writeFieldBegin('description', TType.STRING, 2)
+      oprot.writeString(self.description)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.groupName is None:
+      raise TProtocol.TProtocolException(message='Required field groupName is unset!')
+    return
+
+
+  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 Project:
+  """
+  Attributes:
+   - projectID
+   - owner
+   - name
+   - description
+   - creationTime
+   - sharedUsers
+   - sharedGroups
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'projectID', None, "DEFAULT", ), # 1
+    (2, TType.STRING, 'owner', None, None, ), # 2
+    (3, TType.STRING, 'name', None, None, ), # 3
+    (4, TType.STRING, 'description', None, None, ), # 4
+    (5, TType.I64, 'creationTime', None, None, ), # 5
+    (6, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 6
+    (7, TType.LIST, 'sharedGroups', (TType.STRING,None), None, ), # 7
+  )
+
+  def __init__(self, projectID=thrift_spec[1][4], owner=None, name=None, description=None, creationTime=None, sharedUsers=None, sharedGroups=None,):
+    self.projectID = projectID
+    self.owner = owner
+    self.name = name
+    self.description = description
+    self.creationTime = creationTime
+    self.sharedUsers = sharedUsers
+    self.sharedGroups = sharedGroups
+
+  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.projectID = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.owner = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.name = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.description = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64();
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.LIST:
+          self.sharedUsers = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = iprot.readString();
+            self.sharedUsers.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.LIST:
+          self.sharedGroups = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = iprot.readString();
+            self.sharedGroups.append(_elem11)
+          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('Project')
+    if self.projectID is not None:
+      oprot.writeFieldBegin('projectID', TType.STRING, 1)
+      oprot.writeString(self.projectID)
+      oprot.writeFieldEnd()
+    if self.owner is not None:
+      oprot.writeFieldBegin('owner', TType.STRING, 2)
+      oprot.writeString(self.owner)
+      oprot.writeFieldEnd()
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 3)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.description is not None:
+      oprot.writeFieldBegin('description', TType.STRING, 4)
+      oprot.writeString(self.description)
+      oprot.writeFieldEnd()
+    if self.creationTime is not None:
+      oprot.writeFieldBegin('creationTime', TType.I64, 5)
+      oprot.writeI64(self.creationTime)
+      oprot.writeFieldEnd()
+    if self.sharedUsers is not None:
+      oprot.writeFieldBegin('sharedUsers', TType.LIST, 6)
+      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+      for iter12 in self.sharedUsers:
+        oprot.writeString(iter12)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.sharedGroups is not None:
+      oprot.writeFieldBegin('sharedGroups', TType.LIST, 7)
+      oprot.writeListBegin(TType.STRING, len(self.sharedGroups))
+      for iter13 in self.sharedGroups:
+        oprot.writeString(iter13)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.projectID is None:
+      raise TProtocol.TProtocolException(message='Required field projectID is unset!')
+    if self.owner is None:
+      raise TProtocol.TProtocolException(message='Required field owner is unset!')
+    if self.name is None:
+      raise TProtocol.TProtocolException(message='Required field name is unset!')
+    return
+
+
+  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 User:
+  """
+  Attributes:
+   - userName
+   - groupList
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'userName', None, None, ), # 1
+    (2, TType.LIST, 'groupList', (TType.STRUCT,(Group, Group.thrift_spec)), None, ), # 2
+  )
+
+  def __init__(self, userName=None, groupList=None,):
+    self.userName = userName
+    self.groupList = groupList
+
+  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.userName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.LIST:
+          self.groupList = []
+          (_etype17, _size14) = iprot.readListBegin()
+          for _i18 in xrange(_size14):
+            _elem19 = Group()
+            _elem19.read(iprot)
+            self.groupList.append(_elem19)
+          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('User')
+    if self.userName is not None:
+      oprot.writeFieldBegin('userName', TType.STRING, 1)
+      oprot.writeString(self.userName)
+      oprot.writeFieldEnd()
+    if self.groupList is not None:
+      oprot.writeFieldBegin('groupList', TType.LIST, 2)
+      oprot.writeListBegin(TType.STRUCT, len(self.groupList))
+      for iter20 in self.groupList:
+        iter20.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.userName is None:
+      raise TProtocol.TProtocolException(message='Required field userName is unset!')
+    return
+
+
+  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 Gateway:
+  """
+  Attributes:
+   - gatewayId
+   - gatewayName
+   - domain
+   - emailAddress
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'gatewayId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayName', None, None, ), # 2
+    (3, TType.STRING, 'domain', None, None, ), # 3
+    (4, TType.STRING, 'emailAddress', None, None, ), # 4
+  )
+
+  def __init__(self, gatewayId=None, gatewayName=None, domain=None, emailAddress=None,):
+    self.gatewayId = gatewayId
+    self.gatewayName = gatewayName
+    self.domain = domain
+    self.emailAddress = emailAddress
+
+  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.gatewayId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.domain = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.emailAddress = 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('Gateway')
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 1)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.gatewayName is not None:
+      oprot.writeFieldBegin('gatewayName', TType.STRING, 2)
+      oprot.writeString(self.gatewayName)
+      oprot.writeFieldEnd()
+    if self.domain is not None:
+      oprot.writeFieldBegin('domain', TType.STRING, 3)
+      oprot.writeString(self.domain)
+      oprot.writeFieldEnd()
+    if self.emailAddress is not None:
+      oprot.writeFieldBegin('emailAddress', TType.STRING, 4)
+      oprot.writeString(self.emailAddress)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    return
+
+
+  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/97c7a736/airavata-api/airavata-client-sdks/pom.xml
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/pom.xml b/airavata-api/airavata-client-sdks/pom.xml
index 75ad93f..cd02c27 100644
--- a/airavata-api/airavata-client-sdks/pom.xml
+++ b/airavata-api/airavata-client-sdks/pom.xml
@@ -31,9 +31,10 @@
                 <activeByDefault>true</activeByDefault>
             </activation>
             <modules>
-		<module>airavata-php-sdk</module>
-		<module>airavata-cpp-sdk</module>
                 <module>java-client-samples</module>
+                <module>airavata-php-sdk</module>
+                <module>airavata-cpp-sdk</module>
+                <module>airavata-python-sdk</module>
             </modules>
         </profile>
     </profiles>

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift b/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift
index dd5ed51..0149f23 100644
--- a/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift
@@ -25,6 +25,7 @@ include "messagingEvents.thrift"
 namespace java org.apache.airavata.model
 namespace php Airavata.Model
 namespace cpp apache.airavata.model
+namespace py apache.airavata.model
 
 /*
  * This file describes the definitions of the Airavata Execution Data Structures. Each of the

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/airavataErrors.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataErrors.thrift b/airavata-api/thrift-interface-descriptions/airavataErrors.thrift
index 0a91adf..6ffd5d5 100644
--- a/airavata-api/thrift-interface-descriptions/airavataErrors.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataErrors.thrift
@@ -30,7 +30,7 @@ namespace java org.apache.airavata.model.error
 namespace php Airavata.API.Error
 namespace cpp apache.airavata.api.error
 namespace perl AiravataAPIError
-namespace py airavata.api.error
+namespace py apache.airavata.api.error
 namespace js AiravataAPIError
 
 /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/applicationDeploymentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/applicationDeploymentModel.thrift b/airavata-api/thrift-interface-descriptions/applicationDeploymentModel.thrift
index d2171b5..a965e23 100644
--- a/airavata-api/thrift-interface-descriptions/applicationDeploymentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationDeploymentModel.thrift
@@ -27,6 +27,7 @@
 namespace java org.apache.airavata.model.appcatalog.appdeployment
 namespace php Airavata.Model.AppCatalog.AppDeployment
 namespace cpp apache.airavata.model.appcatalog.appdeployment
+namespace py apache.airavata.model.appcatalog.appdeployment
 
 const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
index baeab2a..4c57009 100644
--- a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
@@ -27,6 +27,7 @@
 namespace java org.apache.airavata.model.appcatalog.appinterface
 namespace php Airavata.Model.AppCatalog.AppInterface
 namespace cpp apache.airavata.model.appcatalog.appinterface
+namespace py apache.airavata.model.appcatalog.appinterface
 
 const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
index d91210c..929e677 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -21,6 +21,7 @@
 namespace java org.apache.airavata.model.appcatalog.computeresource
 namespace php Airavata.Model.AppCatalog.ComputeResource
 namespace cpp apache.airavata.model.appcatalog.computeresource
+namespace py apache.airavata.model.appcatalog.computeresource
 
 const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 7f76f90..2cd82d3 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -24,6 +24,7 @@ include "applicationInterfaceModel.thrift"
 namespace java org.apache.airavata.model.workspace.experiment
 namespace php Airavata.Model.Workspace.Experiment
 namespace cpp apache.airavata.model.workspace.experiment
+namespace py apache.airavata.model.workspace.experiment
 
 /*
  * This file describes the definitions of the Airavata Experiment Data Structures. Each of the

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift b/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
index 3f384c6..11a6586 100644
--- a/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
@@ -21,6 +21,8 @@
 namespace java org.apache.airavata.model.appcatalog.gatewayprofile
 namespace php Airavata.Model.AppCatalog.GatewayProfile
 namespace cpp apache.airavata.model.appcatalog.gatewayprofile
+namespace py apache.airavata.model.appcatalog.gatewayprofile
+
 include "computeResourceModel.thrift"
 
 /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/messagingEvents.thrift b/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
index d9e85d4..c2808a1 100644
--- a/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
+++ b/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
@@ -24,6 +24,7 @@ include "applicationInterfaceModel.thrift"
 namespace java org.apache.airavata.model.messaging.event
 namespace php Airavata.Model.Messaging.Event
 namespace cpp apache.airavata.model.messaging.event
+namespace py apache.airavata.model.messaging.event
 
 const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/workflowAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/workflowAPI.thrift b/airavata-api/thrift-interface-descriptions/workflowAPI.thrift
index 90d5b57..9aa4a88 100644
--- a/airavata-api/thrift-interface-descriptions/workflowAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/workflowAPI.thrift
@@ -37,10 +37,10 @@ namespace java org.apache.airavata.api.workflow
 namespace php Airavata.API.Workflow
 namespace cpp airavata.api.workflow
 namespace perl AiravataWorkflowAPI
-namespace py airavata.api.workflow
+namespace py apache.airavata.api.workflow
 namespace js AiravataWorkflowAPI
 
-const string AIRAVATA_API_VERSION = "0.13.0"
+const string AIRAVATA_API_VERSION = "0.15.0"
 
 service Workflow {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/workflowDataModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/workflowDataModel.thrift b/airavata-api/thrift-interface-descriptions/workflowDataModel.thrift
index 58ba75b..68d60cd 100644
--- a/airavata-api/thrift-interface-descriptions/workflowDataModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/workflowDataModel.thrift
@@ -21,6 +21,8 @@
 
 namespace java org.apache.airavata.model
 namespace php Airavata.Model
+namespace py apache.airavata.model.workflow
+
 include "applicationInterfaceModel.thrift"
 
 /*

http://git-wip-us.apache.org/repos/asf/airavata/blob/97c7a736/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/workspaceModel.thrift b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
index fd75985..803cea8 100644
--- a/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
@@ -23,6 +23,7 @@ include "experimentModel.thrift"
 namespace java org.apache.airavata.model.workspace
 namespace php Airavata.Model.Workspace
 namespace cpp apache.airavata.model.workspace
+namespace py apache.airavata.model.workspace
 
 /*
  * This file describes the definitions of the Airavata Workspace. The workspace is a container for all user data