airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scnakand...@apache.org
Subject [1/6] airavata git commit: adding sharing php and python thrift generated code to language specific sdks
Date Wed, 02 Aug 2017 18:04:21 GMT
Repository: airavata
Updated Branches:
  refs/heads/develop d49f25271 -> 6d6973d87


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

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/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/blob/6d6973d8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/ttypes.py
new file mode 100644
index 0000000..56bdc1f
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/sharing/ttypes.py
@@ -0,0 +1,20 @@
+#
+# 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.sharing.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+

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

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/constants.py
new file mode 100644
index 0000000..68ebfe8
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/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 *
+
+DO_NOT_SET_AT_CLIENTS_ID = "DO_NOT_SET_AT_CLIENTS_ID"

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/ttypes.py
new file mode 100644
index 0000000..81f5788
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/sharing/ttypes.py
@@ -0,0 +1,1722 @@
+#
+# 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 GroupCardinality:
+  """
+  <p>This is an system internal enum used to define single user groups and multi users groups. Every user is also
+  considered as a group in it's own right for implementation ease</p>
+
+  """
+  SINGLE_USER = 0
+  MULTI_USER = 1
+
+  _VALUES_TO_NAMES = {
+    0: "SINGLE_USER",
+    1: "MULTI_USER",
+  }
+
+  _NAMES_TO_VALUES = {
+    "SINGLE_USER": 0,
+    "MULTI_USER": 1,
+  }
+
+class GroupType:
+  """
+  <p>Group types can be either user level or domain level groups.</p>
+
+  """
+  DOMAIN_LEVEL_GROUP = 0
+  USER_LEVEL_GROUP = 1
+
+  _VALUES_TO_NAMES = {
+    0: "DOMAIN_LEVEL_GROUP",
+    1: "USER_LEVEL_GROUP",
+  }
+
+  _NAMES_TO_VALUES = {
+    "DOMAIN_LEVEL_GROUP": 0,
+    "USER_LEVEL_GROUP": 1,
+  }
+
+class GroupChildType:
+  """
+  <p>System internal data type to match group child types</p>
+
+  """
+  USER = 0
+  GROUP = 1
+
+  _VALUES_TO_NAMES = {
+    0: "USER",
+    1: "GROUP",
+  }
+
+  _NAMES_TO_VALUES = {
+    "USER": 0,
+    "GROUP": 1,
+  }
+
+class EntitySearchField:
+  """
+  <p>This list of fields that can be used to search entities</p>
+  <li>NAME : Name of the entity</li>
+  <li>DESCRIPTION : Description of the entity</li>
+  <li>FULL_TEXT : Full text field of the entity</li>
+  <li>PARENT_ENTITY_ID : Parent entity id of the entity</li>
+  <li>OWNER_ID : Owner of the entity</li>
+  <li>CREATED_TIME : Created time of the entity</li>
+  <li>UPDATED_TIME : Updated time of the entity</li>
+  <li>SHARED_COUNT : Number of directly shared users and groups</li>
+
+  """
+  NAME = 0
+  DESCRIPTION = 1
+  FULL_TEXT = 2
+  PARRENT_ENTITY_ID = 3
+  OWNER_ID = 4
+  PERMISSION_TYPE_ID = 5
+  CREATED_TIME = 6
+  UPDATED_TIME = 7
+  ENTITY_TYPE_ID = 8
+  SHARED_COUNT = 9
+
+  _VALUES_TO_NAMES = {
+    0: "NAME",
+    1: "DESCRIPTION",
+    2: "FULL_TEXT",
+    3: "PARRENT_ENTITY_ID",
+    4: "OWNER_ID",
+    5: "PERMISSION_TYPE_ID",
+    6: "CREATED_TIME",
+    7: "UPDATED_TIME",
+    8: "ENTITY_TYPE_ID",
+    9: "SHARED_COUNT",
+  }
+
+  _NAMES_TO_VALUES = {
+    "NAME": 0,
+    "DESCRIPTION": 1,
+    "FULL_TEXT": 2,
+    "PARRENT_ENTITY_ID": 3,
+    "OWNER_ID": 4,
+    "PERMISSION_TYPE_ID": 5,
+    "CREATED_TIME": 6,
+    "UPDATED_TIME": 7,
+    "ENTITY_TYPE_ID": 8,
+    "SHARED_COUNT": 9,
+  }
+
+class SearchCondition:
+  """
+  <p>Different search operators that can be used with the entity search fields</p>
+  <li>EQUAL : Simply matches for equality. Applicable for name, and parent entity id</li>
+  <li>LIKE : Check for the condition %$FIELD% condition. Applicable for name, and description</li>
+  <li>FULL_TEXT : Does a full text search. Only applicable for the FULL_TEXT field.</li>
+  <li>GTE : Greater than or equal. Only applicable for created time, updated time and shared count.</li>
+  <li>LTE : Less than or equal. Only applicable for created time, updated time and shared count.</li>
+
+  """
+  EQUAL = 0
+  LIKE = 1
+  FULL_TEXT = 2
+  GTE = 3
+  LTE = 4
+  NOT = 5
+
+  _VALUES_TO_NAMES = {
+    0: "EQUAL",
+    1: "LIKE",
+    2: "FULL_TEXT",
+    3: "GTE",
+    4: "LTE",
+    5: "NOT",
+  }
+
+  _NAMES_TO_VALUES = {
+    "EQUAL": 0,
+    "LIKE": 1,
+    "FULL_TEXT": 2,
+    "GTE": 3,
+    "LTE": 4,
+    "NOT": 5,
+  }
+
+class SharingType:
+  """
+  <p>This is an internal enum type for managing sharings</p>
+
+  """
+  DIRECT_NON_CASCADING = 0
+  DIRECT_CASCADING = 1
+  INDIRECT_CASCADING = 2
+
+  _VALUES_TO_NAMES = {
+    0: "DIRECT_NON_CASCADING",
+    1: "DIRECT_CASCADING",
+    2: "INDIRECT_CASCADING",
+  }
+
+  _NAMES_TO_VALUES = {
+    "DIRECT_NON_CASCADING": 0,
+    "DIRECT_CASCADING": 1,
+    "INDIRECT_CASCADING": 2,
+  }
+
+
+class Domain:
+  """
+  <p>Domain is the entity that enables multi-tenency in this componenet. Every tenant will be
+  operating separately it's own silo which is identified by the domain id. In the current implementation domain id
+  will be same as the domain name</p>
+  <li>domainId : Will be generated by the server based on the domain name</li>
+  <li><b>name</b> : A single word name that identifies the domain e.g seagrid, ultrascan</li>
+  <li>description : A short description for the domain</li>
+  <li>createdTime : Will be set by the system</li>
+  <li>updatedTime : Will be set by the system</li>
+
+
+  Attributes:
+   - domainId
+   - name
+   - description
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'domainId', None, "DO_NOT_SET_AT_CLIENTS_ID", ), # 1
+    (2, TType.STRING, 'name', None, None, ), # 2
+    (3, TType.STRING, 'description', None, None, ), # 3
+    (4, TType.I64, 'createdTime', None, None, ), # 4
+    (5, TType.I64, 'updatedTime', None, None, ), # 5
+  )
+
+  def __init__(self, domainId=thrift_spec[1][4], name=None, description=None, createdTime=None, updatedTime=None,):
+    self.domainId = domainId
+    self.name = name
+    self.description = description
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.domainId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.name = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.description = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('Domain')
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 1)
+      oprot.writeString(self.domainId)
+      oprot.writeFieldEnd()
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 2)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.description is not None:
+      oprot.writeFieldBegin('description', TType.STRING, 3)
+      oprot.writeString(self.description)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 4)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 5)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.description)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 User:
+  """
+  <p>User is the model used to register a user in the system. Minimal user information will be required to provide
+  regarding the user.</p>
+  <li><b>userId</b> : User id provided by the client</li>
+  <li><b>domainId</b> : Domain id for that user</li>
+  <li><b>userName</b> : User name for the user</li>
+  <li><b>firstName</b> : First name of the user</li>
+  <li><b>lastName</b> : Last name of the user</li>
+  <li><b>email</b> : Email address of the user</li>
+  <li>icon : A binary field for storing the user icon</li>
+  <li>createdTime : If client provides this value then the system will use it if not the current time will be set</li>
+  <li>updatedTime : If client provides this value then the system will use it if not the current time will be set</li>
+
+
+  Attributes:
+   - userId
+   - domainId
+   - userName
+   - firstName
+   - lastName
+   - email
+   - icon
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'userId', None, None, ), # 1
+    (2, TType.STRING, 'domainId', None, None, ), # 2
+    (3, TType.STRING, 'userName', None, None, ), # 3
+    (4, TType.STRING, 'firstName', None, None, ), # 4
+    (5, TType.STRING, 'lastName', None, None, ), # 5
+    (6, TType.STRING, 'email', None, None, ), # 6
+    (7, TType.STRING, 'icon', None, None, ), # 7
+    (8, TType.I64, 'createdTime', None, None, ), # 8
+    (9, TType.I64, 'updatedTime', None, None, ), # 9
+  )
+
+  def __init__(self, userId=None, domainId=None, userName=None, firstName=None, lastName=None, email=None, icon=None, createdTime=None, updatedTime=None,):
+    self.userId = userId
+    self.domainId = domainId
+    self.userName = userName
+    self.firstName = firstName
+    self.lastName = lastName
+    self.email = email
+    self.icon = icon
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.userId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.domainId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.userName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.firstName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.lastName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.email = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.icon = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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.userId is not None:
+      oprot.writeFieldBegin('userId', TType.STRING, 1)
+      oprot.writeString(self.userId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 2)
+      oprot.writeString(self.domainId)
+      oprot.writeFieldEnd()
+    if self.userName is not None:
+      oprot.writeFieldBegin('userName', TType.STRING, 3)
+      oprot.writeString(self.userName)
+      oprot.writeFieldEnd()
+    if self.firstName is not None:
+      oprot.writeFieldBegin('firstName', TType.STRING, 4)
+      oprot.writeString(self.firstName)
+      oprot.writeFieldEnd()
+    if self.lastName is not None:
+      oprot.writeFieldBegin('lastName', TType.STRING, 5)
+      oprot.writeString(self.lastName)
+      oprot.writeFieldEnd()
+    if self.email is not None:
+      oprot.writeFieldBegin('email', TType.STRING, 6)
+      oprot.writeString(self.email)
+      oprot.writeFieldEnd()
+    if self.icon is not None:
+      oprot.writeFieldBegin('icon', TType.STRING, 7)
+      oprot.writeString(self.icon)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 8)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 9)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.userId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.userName)
+    value = (value * 31) ^ hash(self.firstName)
+    value = (value * 31) ^ hash(self.lastName)
+    value = (value * 31) ^ hash(self.email)
+    value = (value * 31) ^ hash(self.icon)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 UserGroup:
+  """
+  <p>User group is a collection of users.</p>
+   <li><b>groupId</b> : Group id provided by the client</li>
+   <li><b>domainId</b> : Domain id for this user group</li>
+   <li><b>name</b> : Name for the user group. should be one word</li>
+   <li>description : Short description for the group.</li>
+   <li><b>ownerId</b> : Owner id of this group.</li>
+   <li><b>groupType</b> : Group type (DOMAIN_LEVEL_GROUP, USER_LEVEL_GROUP)</li>
+   <li><b>groupCardinality</b> : Group cardinality (SINGLE_USER, MULTI_USER)</li>
+   <li>createdTime : Will be set by the system</li>
+   <li>updatedTime : Will be set by the system</li>
+   
+
+  Attributes:
+   - groupId
+   - domainId
+   - name
+   - description
+   - ownerId
+   - groupType
+   - groupCardinality
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'groupId', None, None, ), # 1
+    (2, TType.STRING, 'domainId', None, None, ), # 2
+    (3, TType.STRING, 'name', None, None, ), # 3
+    (4, TType.STRING, 'description', None, None, ), # 4
+    (5, TType.STRING, 'ownerId', None, None, ), # 5
+    (6, TType.I32, 'groupType', None, None, ), # 6
+    (7, TType.I32, 'groupCardinality', None, None, ), # 7
+    (8, TType.I64, 'createdTime', None, None, ), # 8
+    (9, TType.I64, 'updatedTime', None, None, ), # 9
+  )
+
+  def __init__(self, groupId=None, domainId=None, name=None, description=None, ownerId=None, groupType=None, groupCardinality=None, createdTime=None, updatedTime=None,):
+    self.groupId = groupId
+    self.domainId = domainId
+    self.name = name
+    self.description = description
+    self.ownerId = ownerId
+    self.groupType = groupType
+    self.groupCardinality = groupCardinality
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.groupId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.domainId = 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.STRING:
+          self.ownerId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I32:
+          self.groupType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.I32:
+          self.groupCardinality = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('UserGroup')
+    if self.groupId is not None:
+      oprot.writeFieldBegin('groupId', TType.STRING, 1)
+      oprot.writeString(self.groupId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 2)
+      oprot.writeString(self.domainId)
+      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.ownerId is not None:
+      oprot.writeFieldBegin('ownerId', TType.STRING, 5)
+      oprot.writeString(self.ownerId)
+      oprot.writeFieldEnd()
+    if self.groupType is not None:
+      oprot.writeFieldBegin('groupType', TType.I32, 6)
+      oprot.writeI32(self.groupType)
+      oprot.writeFieldEnd()
+    if self.groupCardinality is not None:
+      oprot.writeFieldBegin('groupCardinality', TType.I32, 7)
+      oprot.writeI32(self.groupCardinality)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 8)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 9)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.groupId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.description)
+    value = (value * 31) ^ hash(self.ownerId)
+    value = (value * 31) ^ hash(self.groupType)
+    value = (value * 31) ^ hash(self.groupCardinality)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 GroupMembership:
+  """
+  <p>System internal data type to map group memberships</p>
+
+
+  Attributes:
+   - parentId
+   - childId
+   - domainId
+   - childType
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'parentId', None, None, ), # 1
+    (2, TType.STRING, 'childId', None, None, ), # 2
+    (3, TType.STRING, 'domainId', None, None, ), # 3
+    (4, TType.I32, 'childType', None, None, ), # 4
+    (5, TType.I64, 'createdTime', None, None, ), # 5
+    (6, TType.I64, 'updatedTime', None, None, ), # 6
+  )
+
+  def __init__(self, parentId=None, childId=None, domainId=None, childType=None, createdTime=None, updatedTime=None,):
+    self.parentId = parentId
+    self.childId = childId
+    self.domainId = domainId
+    self.childType = childType
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.parentId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.childId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.domainId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.I32:
+          self.childType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('GroupMembership')
+    if self.parentId is not None:
+      oprot.writeFieldBegin('parentId', TType.STRING, 1)
+      oprot.writeString(self.parentId)
+      oprot.writeFieldEnd()
+    if self.childId is not None:
+      oprot.writeFieldBegin('childId', TType.STRING, 2)
+      oprot.writeString(self.childId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 3)
+      oprot.writeString(self.domainId)
+      oprot.writeFieldEnd()
+    if self.childType is not None:
+      oprot.writeFieldBegin('childType', TType.I32, 4)
+      oprot.writeI32(self.childType)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 5)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 6)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.parentId)
+    value = (value * 31) ^ hash(self.childId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.childType)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 EntityType:
+  """
+  <p>client defined entity types</p>
+  <li><b>entityTypeId</b> : Entity type id provided by the client</li>
+  <li><b>domainId</b> : Domain id of the domain.</li>
+  <li><b>name</b> : Name for the entity type. Should be a single word.</li>
+  <li>description : Short description for the entity type.</li>
+  <li>createdTime : Will be set by the system</li>
+  <li>updatedTime : Will be set by the system</li>
+
+
+  Attributes:
+   - entityTypeId
+   - domainId
+   - name
+   - description
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'entityTypeId', None, None, ), # 1
+    (2, TType.STRING, 'domainId', None, None, ), # 2
+    (3, TType.STRING, 'name', None, None, ), # 3
+    (4, TType.STRING, 'description', None, None, ), # 4
+    (5, TType.I64, 'createdTime', None, None, ), # 5
+    (6, TType.I64, 'updatedTime', None, None, ), # 6
+  )
+
+  def __init__(self, entityTypeId=None, domainId=None, name=None, description=None, createdTime=None, updatedTime=None,):
+    self.entityTypeId = entityTypeId
+    self.domainId = domainId
+    self.name = name
+    self.description = description
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.entityTypeId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.domainId = 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.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('EntityType')
+    if self.entityTypeId is not None:
+      oprot.writeFieldBegin('entityTypeId', TType.STRING, 1)
+      oprot.writeString(self.entityTypeId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 2)
+      oprot.writeString(self.domainId)
+      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.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 5)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 6)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.entityTypeId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.description)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 SearchCriteria:
+  """
+  <p>Container object for search criteria</p>
+  <li><b>searchField</b> : Entity search field</li>
+  <li><b>value</b> : Search value</li>
+  <li><b>searchCondition</b> : EQUAL, LIKE etc..</li>
+
+
+  Attributes:
+   - searchField
+   - value
+   - searchCondition
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'searchField', None, None, ), # 1
+    (2, TType.STRING, 'value', None, None, ), # 2
+    (3, TType.I32, 'searchCondition', None, None, ), # 3
+  )
+
+  def __init__(self, searchField=None, value=None, searchCondition=None,):
+    self.searchField = searchField
+    self.value = value
+    self.searchCondition = searchCondition
+
+  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.I32:
+          self.searchField = iprot.readI32()
+        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.searchCondition = 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('SearchCriteria')
+    if self.searchField is not None:
+      oprot.writeFieldBegin('searchField', TType.I32, 1)
+      oprot.writeI32(self.searchField)
+      oprot.writeFieldEnd()
+    if self.value is not None:
+      oprot.writeFieldBegin('value', TType.STRING, 2)
+      oprot.writeString(self.value)
+      oprot.writeFieldEnd()
+    if self.searchCondition is not None:
+      oprot.writeFieldBegin('searchCondition', TType.I32, 3)
+      oprot.writeI32(self.searchCondition)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.searchField)
+    value = (value * 31) ^ hash(self.value)
+    value = (value * 31) ^ hash(self.searchCondition)
+    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 Entity:
+  """
+  <p>Entity object which is used to register an entity in the system.</p>
+  <li><b>entityId</b> : Entity id provided by the client</li>
+  <li><b>domainId</b> : Domain id</li>
+  <li><b>entityTypeId</b> : Entity type id</li>
+  <li><b>ownerId</b> : Owner id</li>
+  <li>parentEntityId : Parent entity id</li>
+  <li><b>name</b> : Name</li>
+  <li>description : Short description for the entity</li>
+  <li>binaryData : Any information stored in binary format</li>
+  <li>fullText : A string which will be considered for full text search</li>
+  <li><b>originalEntityCreationTime</b> : When registering old records what is the original entity creation time. If not
+  set will be default to current time</li>
+  <li>createdTime : Will be set by the system</li>
+  <li>updatedTime : Will be set by the system</li>
+
+
+  Attributes:
+   - entityId
+   - domainId
+   - entityTypeId
+   - ownerId
+   - parentEntityId
+   - name
+   - description
+   - binaryData
+   - fullText
+   - sharedCount
+   - originalEntityCreationTime
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'entityId', None, None, ), # 1
+    (2, TType.STRING, 'domainId', None, None, ), # 2
+    (3, TType.STRING, 'entityTypeId', None, None, ), # 3
+    (4, TType.STRING, 'ownerId', None, None, ), # 4
+    (5, TType.STRING, 'parentEntityId', None, None, ), # 5
+    (6, TType.STRING, 'name', None, None, ), # 6
+    (7, TType.STRING, 'description', None, None, ), # 7
+    (8, TType.STRING, 'binaryData', None, None, ), # 8
+    (9, TType.STRING, 'fullText', None, None, ), # 9
+    (10, TType.I64, 'sharedCount', None, 0, ), # 10
+    (11, TType.I64, 'originalEntityCreationTime', None, None, ), # 11
+    (12, TType.I64, 'createdTime', None, None, ), # 12
+    (13, TType.I64, 'updatedTime', None, None, ), # 13
+  )
+
+  def __init__(self, entityId=None, domainId=None, entityTypeId=None, ownerId=None, parentEntityId=None, name=None, description=None, binaryData=None, fullText=None, sharedCount=thrift_spec[10][4], originalEntityCreationTime=None, createdTime=None, updatedTime=None,):
+    self.entityId = entityId
+    self.domainId = domainId
+    self.entityTypeId = entityTypeId
+    self.ownerId = ownerId
+    self.parentEntityId = parentEntityId
+    self.name = name
+    self.description = description
+    self.binaryData = binaryData
+    self.fullText = fullText
+    self.sharedCount = sharedCount
+    self.originalEntityCreationTime = originalEntityCreationTime
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.entityId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.domainId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.entityTypeId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.ownerId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.parentEntityId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.name = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.description = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.binaryData = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.fullText = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.I64:
+          self.sharedCount = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.I64:
+          self.originalEntityCreationTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('Entity')
+    if self.entityId is not None:
+      oprot.writeFieldBegin('entityId', TType.STRING, 1)
+      oprot.writeString(self.entityId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 2)
+      oprot.writeString(self.domainId)
+      oprot.writeFieldEnd()
+    if self.entityTypeId is not None:
+      oprot.writeFieldBegin('entityTypeId', TType.STRING, 3)
+      oprot.writeString(self.entityTypeId)
+      oprot.writeFieldEnd()
+    if self.ownerId is not None:
+      oprot.writeFieldBegin('ownerId', TType.STRING, 4)
+      oprot.writeString(self.ownerId)
+      oprot.writeFieldEnd()
+    if self.parentEntityId is not None:
+      oprot.writeFieldBegin('parentEntityId', TType.STRING, 5)
+      oprot.writeString(self.parentEntityId)
+      oprot.writeFieldEnd()
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 6)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.description is not None:
+      oprot.writeFieldBegin('description', TType.STRING, 7)
+      oprot.writeString(self.description)
+      oprot.writeFieldEnd()
+    if self.binaryData is not None:
+      oprot.writeFieldBegin('binaryData', TType.STRING, 8)
+      oprot.writeString(self.binaryData)
+      oprot.writeFieldEnd()
+    if self.fullText is not None:
+      oprot.writeFieldBegin('fullText', TType.STRING, 9)
+      oprot.writeString(self.fullText)
+      oprot.writeFieldEnd()
+    if self.sharedCount is not None:
+      oprot.writeFieldBegin('sharedCount', TType.I64, 10)
+      oprot.writeI64(self.sharedCount)
+      oprot.writeFieldEnd()
+    if self.originalEntityCreationTime is not None:
+      oprot.writeFieldBegin('originalEntityCreationTime', TType.I64, 11)
+      oprot.writeI64(self.originalEntityCreationTime)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 12)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 13)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.entityId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.entityTypeId)
+    value = (value * 31) ^ hash(self.ownerId)
+    value = (value * 31) ^ hash(self.parentEntityId)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.description)
+    value = (value * 31) ^ hash(self.binaryData)
+    value = (value * 31) ^ hash(self.fullText)
+    value = (value * 31) ^ hash(self.sharedCount)
+    value = (value * 31) ^ hash(self.originalEntityCreationTime)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 PermissionType:
+  """
+  <p>Object for creating client defined permission type</p>
+  <li><b>permissionTypeId</b> : Permission type id provided by the client</li>
+  <li><b>domainId</b> : Domain id</li>
+  <li><b>name</b> : Single word name for the permission</li>
+  <li>description : Short description for the permission type</li>
+  <li>createdTime : Will be set by the system</li>
+  <li>updatedTime : Will be set by the system</li>
+
+
+  Attributes:
+   - permissionTypeId
+   - domainId
+   - name
+   - description
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'permissionTypeId', None, None, ), # 1
+    (2, TType.STRING, 'domainId', None, None, ), # 2
+    (3, TType.STRING, 'name', None, None, ), # 3
+    (4, TType.STRING, 'description', None, None, ), # 4
+    (5, TType.I64, 'createdTime', None, None, ), # 5
+    (6, TType.I64, 'updatedTime', None, None, ), # 6
+  )
+
+  def __init__(self, permissionTypeId=None, domainId=None, name=None, description=None, createdTime=None, updatedTime=None,):
+    self.permissionTypeId = permissionTypeId
+    self.domainId = domainId
+    self.name = name
+    self.description = description
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.permissionTypeId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.domainId = 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.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('PermissionType')
+    if self.permissionTypeId is not None:
+      oprot.writeFieldBegin('permissionTypeId', TType.STRING, 1)
+      oprot.writeString(self.permissionTypeId)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 2)
+      oprot.writeString(self.domainId)
+      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.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 5)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 6)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.permissionTypeId)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.description)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 Sharing:
+  """
+  <p>This is an internal enum type for managing sharings</p>
+
+
+  Attributes:
+   - permissionTypeId
+   - entityId
+   - groupId
+   - sharingType
+   - domainId
+   - inheritedParentId
+   - createdTime
+   - updatedTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'permissionTypeId', None, None, ), # 1
+    (2, TType.STRING, 'entityId', None, None, ), # 2
+    (3, TType.STRING, 'groupId', None, None, ), # 3
+    (4, TType.I32, 'sharingType', None, None, ), # 4
+    (5, TType.STRING, 'domainId', None, None, ), # 5
+    (6, TType.STRING, 'inheritedParentId', None, None, ), # 6
+    (7, TType.I64, 'createdTime', None, None, ), # 7
+    (8, TType.I64, 'updatedTime', None, None, ), # 8
+  )
+
+  def __init__(self, permissionTypeId=None, entityId=None, groupId=None, sharingType=None, domainId=None, inheritedParentId=None, createdTime=None, updatedTime=None,):
+    self.permissionTypeId = permissionTypeId
+    self.entityId = entityId
+    self.groupId = groupId
+    self.sharingType = sharingType
+    self.domainId = domainId
+    self.inheritedParentId = inheritedParentId
+    self.createdTime = createdTime
+    self.updatedTime = updatedTime
+
+  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.permissionTypeId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.entityId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.groupId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.I32:
+          self.sharingType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.domainId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.inheritedParentId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I64:
+          self.updatedTime = iprot.readI64()
+        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('Sharing')
+    if self.permissionTypeId is not None:
+      oprot.writeFieldBegin('permissionTypeId', TType.STRING, 1)
+      oprot.writeString(self.permissionTypeId)
+      oprot.writeFieldEnd()
+    if self.entityId is not None:
+      oprot.writeFieldBegin('entityId', TType.STRING, 2)
+      oprot.writeString(self.entityId)
+      oprot.writeFieldEnd()
+    if self.groupId is not None:
+      oprot.writeFieldBegin('groupId', TType.STRING, 3)
+      oprot.writeString(self.groupId)
+      oprot.writeFieldEnd()
+    if self.sharingType is not None:
+      oprot.writeFieldBegin('sharingType', TType.I32, 4)
+      oprot.writeI32(self.sharingType)
+      oprot.writeFieldEnd()
+    if self.domainId is not None:
+      oprot.writeFieldBegin('domainId', TType.STRING, 5)
+      oprot.writeString(self.domainId)
+      oprot.writeFieldEnd()
+    if self.inheritedParentId is not None:
+      oprot.writeFieldBegin('inheritedParentId', TType.STRING, 6)
+      oprot.writeString(self.inheritedParentId)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 7)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.updatedTime is not None:
+      oprot.writeFieldBegin('updatedTime', TType.I64, 8)
+      oprot.writeI64(self.updatedTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.permissionTypeId)
+    value = (value * 31) ^ hash(self.entityId)
+    value = (value * 31) ^ hash(self.groupId)
+    value = (value * 31) ^ hash(self.sharingType)
+    value = (value * 31) ^ hash(self.domainId)
+    value = (value * 31) ^ hash(self.inheritedParentId)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.updatedTime)
+    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 SharingRegistryException(TException):
+  """
+  <p>Exception model used in the sharing registry service</p>
+
+
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  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.message = 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('SharingRegistryException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.message)
+    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 DuplicateEntryException(TException):
+  """
+  This exception is thrown when you try to save a duplicate entity that already exists
+    in the database.
+
+    message: contains the associated error message
+
+
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  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.message = 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('DuplicateEntryException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.message)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/modules/sharing-registry/thrift_models/sharing_cpi.thrift
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/thrift_models/sharing_cpi.thrift b/modules/sharing-registry/thrift_models/sharing_cpi.thrift
index c408846..df543cc 100644
--- a/modules/sharing-registry/thrift_models/sharing_cpi.thrift
+++ b/modules/sharing-registry/thrift_models/sharing_cpi.thrift
@@ -19,6 +19,8 @@
  */
 
 namespace java org.apache.airavata.sharing.registry.service.cpi
+namespace php Airavata.API.Sharing
+namespace py apache.airavata.api.sharing
 
 include "./sharing_models.thrift"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/modules/sharing-registry/thrift_models/sharing_models.thrift
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/thrift_models/sharing_models.thrift b/modules/sharing-registry/thrift_models/sharing_models.thrift
index 141f120..5189ee0 100644
--- a/modules/sharing-registry/thrift_models/sharing_models.thrift
+++ b/modules/sharing-registry/thrift_models/sharing_models.thrift
@@ -19,6 +19,8 @@
  */
 
  namespace java org.apache.airavata.sharing.registry.models
+ namespace php Airavata.Model.Sharing
+ namespace py apache.airavata.model.sharing
 
 const string DO_NOT_SET_AT_CLIENTS_ID = "DO_NOT_SET_AT_CLIENTS_ID"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/6d6973d8/thrift-interface-descriptions/generate-thrift-stubs.sh
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/generate-thrift-stubs.sh b/thrift-interface-descriptions/generate-thrift-stubs.sh
index ef3076c..287cf4a 100755
--- a/thrift-interface-descriptions/generate-thrift-stubs.sh
+++ b/thrift-interface-descriptions/generate-thrift-stubs.sh
@@ -23,7 +23,7 @@
 #    and Data Model java beans in java, C++, PHP and Python.
 
 show_usage() {
-	echo -e "Usage: $0 [--native-thrift] [Language to generate stubs]"
+	echo -e "Usage: $0 [docker-machine start--native-thrift] [Language to generate stubs]"
 	echo ""
 	echo "options:"
 	echo -e "\tjava Generate/Update Java Stubs"
@@ -77,7 +77,9 @@ setup() {
 
     # Thrift files
     AIRAVATA_API_THRIFT_FILE="${BASEDIR}airavata-apis/airavata_api.thrift"
+    SHARING_API_THRIFT_FILE="${BASEDIR}../modules/sharing-registry/thrift_models/sharing_cpi.thrift"
     DATAMODEL_THRIFT_FILE="${BASEDIR}data-models/airavata_data_models.thrift"
+    SHARING_DATAMODEL_THRIFT_FILE="${BASEDIR}../modules/sharing-registry/thrift_models/sharing_models.thrift"
     APP_CATALOG_THRIFT_FILE="${BASEDIR}data-models/app-catalog-models/app_catalog_models.thrift"
     RESOURCE_CATALOG_THRIFT_FILE="${BASEDIR}data-models/resource-catalog-models/resource_catalog_models.thrift"
     WORKFLOW_THRIFT_FILE="${BASEDIR}data-models/workflow-models/workflow_data_model.thrift"
@@ -228,9 +230,11 @@ generate_php_stubs() {
     # Using thrift Java generator, generate the PHP classes based on Airavata API. This
     #   The airavata_api.thrift includes rest of data models.
     $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${DATAMODEL_THRIFT_FILE}  || fail unable to generate PHP thrift classes
+    $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${SHARING_DATAMODEL_THRIFT_FILE}  || fail unable to generate PHP thrift classes
     $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${APP_CATALOG_THRIFT_FILE}  || fail unable to generate PHP thrift classes
     $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${RESOURCE_CATALOG_THRIFT_FILE}   || fail unable to generate PHP thrift classes
     $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${AIRAVATA_API_THRIFT_FILE} || fail unable to generate PHP thrift classes
+    $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${SHARING_API_THRIFT_FILE} || fail unable to generate PHP thrift classes
     $THRIFT_EXEC ${THRIFT_ARGS} --gen php:autoload ${PROFILE_SERVICE_THRIFT_FILE} || fail unable to generate PHP thrift classes
 
     # For the generated java classes add the ASF V2 License header
@@ -283,6 +287,8 @@ generate_python_stubs() {
     #   The airavata_api.thrift includes rest of data models.
     $THRIFT_EXEC ${THRIFT_ARGS} --gen py ${AIRAVATA_API_THRIFT_FILE}  || fail unable to generate Python thrift classes
 
+    $THRIFT_EXEC ${THRIFT_ARGS} --gen py ${SHARING_API_THRIFT_FILE}  || fail unable to generate Python thrift classes
+
     # For the generated CPP classes add the ASF V2 License header
     #add_license_header #PYTHON_GEN_DIR
 


Mime
View raw message