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

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

http://git-wip-us.apache.org/repos/asf/airavata/blob/14ff0916/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
index 14b8baa..cf4f080 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
@@ -1,817 +1,777 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.10.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
 #  options string: py
 #
 
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
 import apache.airavata.model.commons.ttypes
 
-
 from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-class Status:
-  ACTIVE = 0
-  CONFIRMED = 1
-  APPROVED = 2
-  DELETED = 3
-  DUPLICATE = 4
-  GRACE_PERIOD = 5
-  INVITED = 6
-  DENIED = 7
-  PENDING = 8
-  PENDING_APPROVAL = 9
-  PENDING_CONFIRMATION = 10
-  SUSPENDED = 11
-  DECLINED = 12
-  EXPIRED = 13
-
-  _VALUES_TO_NAMES = {
-    0: "ACTIVE",
-    1: "CONFIRMED",
-    2: "APPROVED",
-    3: "DELETED",
-    4: "DUPLICATE",
-    5: "GRACE_PERIOD",
-    6: "INVITED",
-    7: "DENIED",
-    8: "PENDING",
-    9: "PENDING_APPROVAL",
-    10: "PENDING_CONFIRMATION",
-    11: "SUSPENDED",
-    12: "DECLINED",
-    13: "EXPIRED",
-  }
-
-  _NAMES_TO_VALUES = {
-    "ACTIVE": 0,
-    "CONFIRMED": 1,
-    "APPROVED": 2,
-    "DELETED": 3,
-    "DUPLICATE": 4,
-    "GRACE_PERIOD": 5,
-    "INVITED": 6,
-    "DENIED": 7,
-    "PENDING": 8,
-    "PENDING_APPROVAL": 9,
-    "PENDING_CONFIRMATION": 10,
-    "SUSPENDED": 11,
-    "DECLINED": 12,
-    "EXPIRED": 13,
-  }
-
-class USCitizenship:
-  """
-  U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
-
-  """
-  US_CITIZEN = 0
-  US_PERMANENT_RESIDENT = 1
-  OTHER_NON_US_CITIZEN = 2
-
-  _VALUES_TO_NAMES = {
-    0: "US_CITIZEN",
-    1: "US_PERMANENT_RESIDENT",
-    2: "OTHER_NON_US_CITIZEN",
-  }
-
-  _NAMES_TO_VALUES = {
-    "US_CITIZEN": 0,
-    "US_PERMANENT_RESIDENT": 1,
-    "OTHER_NON_US_CITIZEN": 2,
-  }
-
-class ethnicity:
-  """
-  Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
-   Central American, or other Spanish culture or origin, regardless of race.
-
-  """
-  HISPANIC_LATINO = 0
-  NOT_HISPANIC_LATINO = 1
-
-  _VALUES_TO_NAMES = {
-    0: "HISPANIC_LATINO",
-    1: "NOT_HISPANIC_LATINO",
-  }
-
-  _NAMES_TO_VALUES = {
-    "HISPANIC_LATINO": 0,
-    "NOT_HISPANIC_LATINO": 1,
-  }
-
-class race:
-  """
-  * Asian - a person having origins in any of the original peoples of the Far East,
-  *      Southeast Asia, or the Indian subcontinent including, for example, Cambodia,
-   *      China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
-   *      Thailand, and Vietnam.
-  * American Indian or Alaskan Native - a person having origins in any of the original
-   *     peoples of North and South America (including Central America), and who maintains
-    *     tribal affiliation or community attachment.
-  * Black or African American - a person having origins in any of the black racial groups
-  *      of Africa.
-  * Native Hawaiian or Pacific Islander - a person having origins in any of the original
-  *      peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
-  * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
-  *
-  """
-  ASIAN = 0
-  AMERICAN_INDIAN_OR_ALASKAN_NATIVE = 1
-  BLACK_OR_AFRICAN_AMERICAN = 2
-  NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER = 3
-  WHITE = 4
-
-  _VALUES_TO_NAMES = {
-    0: "ASIAN",
-    1: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE",
-    2: "BLACK_OR_AFRICAN_AMERICAN",
-    3: "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER",
-    4: "WHITE",
-  }
-
-  _NAMES_TO_VALUES = {
-    "ASIAN": 0,
-    "AMERICAN_INDIAN_OR_ALASKAN_NATIVE": 1,
-    "BLACK_OR_AFRICAN_AMERICAN": 2,
-    "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER": 3,
-    "WHITE": 4,
-  }
-
-class disability:
-  HEARING_IMAPAIRED = 0
-  VISUAL_IMPAIRED = 1
-  MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT = 2
-  OTHER_IMPAIRMENT = 3
-
-  _VALUES_TO_NAMES = {
-    0: "HEARING_IMAPAIRED",
-    1: "VISUAL_IMPAIRED",
-    2: "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT",
-    3: "OTHER_IMPAIRMENT",
-  }
-
-  _NAMES_TO_VALUES = {
-    "HEARING_IMAPAIRED": 0,
-    "VISUAL_IMPAIRED": 1,
-    "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT": 2,
-    "OTHER_IMPAIRMENT": 3,
-  }
-
-
-class NSFDemographics:
-  """
-  A structure holding the NSF Demographic information.
-
-
-
-  Attributes:
-   - airavataInternalUserId
-   - gender
-   - usCitizenship
-   - ethnicities
-   - races
-   - disabilities
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'airavataInternalUserId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
-    (2, TType.STRING, 'gender', None, None, ), # 2
-    (3, TType.I32, 'usCitizenship', None, None, ), # 3
-    (4, TType.LIST, 'ethnicities', (TType.I32,None), None, ), # 4
-    (5, TType.LIST, 'races', (TType.I32,None), None, ), # 5
-    (6, TType.LIST, 'disabilities', (TType.I32,None), None, ), # 6
-  )
-
-  def __init__(self, airavataInternalUserId=thrift_spec[1][4], gender=None, usCitizenship=None, ethnicities=None, races=None, disabilities=None,):
-    self.airavataInternalUserId = airavataInternalUserId
-    self.gender = gender
-    self.usCitizenship = usCitizenship
-    self.ethnicities = ethnicities
-    self.races = races
-    self.disabilities = disabilities
-
-  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.airavataInternalUserId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.gender = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.I32:
-          self.usCitizenship = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.LIST:
-          self.ethnicities = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readI32()
-            self.ethnicities.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.LIST:
-          self.races = []
-          (_etype9, _size6) = iprot.readListBegin()
-          for _i10 in xrange(_size6):
-            _elem11 = iprot.readI32()
-            self.races.append(_elem11)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.LIST:
-          self.disabilities = []
-          (_etype15, _size12) = iprot.readListBegin()
-          for _i16 in xrange(_size12):
-            _elem17 = iprot.readI32()
-            self.disabilities.append(_elem17)
-          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('NSFDemographics')
-    if self.airavataInternalUserId is not None:
-      oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 1)
-      oprot.writeString(self.airavataInternalUserId)
-      oprot.writeFieldEnd()
-    if self.gender is not None:
-      oprot.writeFieldBegin('gender', TType.STRING, 2)
-      oprot.writeString(self.gender)
-      oprot.writeFieldEnd()
-    if self.usCitizenship is not None:
-      oprot.writeFieldBegin('usCitizenship', TType.I32, 3)
-      oprot.writeI32(self.usCitizenship)
-      oprot.writeFieldEnd()
-    if self.ethnicities is not None:
-      oprot.writeFieldBegin('ethnicities', TType.LIST, 4)
-      oprot.writeListBegin(TType.I32, len(self.ethnicities))
-      for iter18 in self.ethnicities:
-        oprot.writeI32(iter18)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.races is not None:
-      oprot.writeFieldBegin('races', TType.LIST, 5)
-      oprot.writeListBegin(TType.I32, len(self.races))
-      for iter19 in self.races:
-        oprot.writeI32(iter19)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.disabilities is not None:
-      oprot.writeFieldBegin('disabilities', TType.LIST, 6)
-      oprot.writeListBegin(TType.I32, len(self.disabilities))
-      for iter20 in self.disabilities:
-        oprot.writeI32(iter20)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.airavataInternalUserId is None:
-      raise TProtocol.TProtocolException(message='Required field airavataInternalUserId is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.airavataInternalUserId)
-    value = (value * 31) ^ hash(self.gender)
-    value = (value * 31) ^ hash(self.usCitizenship)
-    value = (value * 31) ^ hash(self.ethnicities)
-    value = (value * 31) ^ hash(self.races)
-    value = (value * 31) ^ hash(self.disabilities)
-    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 UserProfile:
-  """
-  * A structure holding the user profile and its child models.
-  *
-  * Notes:
-  *  The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
-  *  References:
-  *     NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
-  *     LDAP Schema - https://tools.ietf.org/html/rfc4519
-  *     SCIM 2.0 - https://tools.ietf.org/html/rfc7643
-  *
-  * userModelVersion:
-  *  Version number of profile
-  *
-  * airavataInternalUserId:
-  *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
-  *  (that is, never shown to users), never reassigned, REQUIRED
-  *
-  * userId:
-  *  Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
-  *   user name less opaque. OpenID Connect maintains them to be opaque.
-  *
-  * firstName, middleName, lastName:
-  *  First and Last names as assertede by the user
-  *
-  * namePrefix, nameSuffix:
-  *  prefix and suffix to the users name as asserted by the user
-  *
-  * emails:
-  *   Email identifier are Verified, REQUIRED and MULTIVALUED
-  *
-  * userName:
-  *  Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string.
-  *   In the future these can be enumerated as:
-      *   Official name (as asserted possibly by some external identity provider)
-      *   Prefered name (as asserted or suggested by user directly)
-      *   Components:
-      *      givenName
-      *      surname (familyName)
-      *      displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
-  *
-  * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
-  *
-  * phones: Telephone MULTIVALUED
-  *
-  * country: Country of Residance
-  *
-  * nationality Countries of citizenship
-  *
-  * comments:
-  *   Free-form information (treated as opaque by Airavata and simply passed to resource).
-  *
-  * labeledURI:
-    * Google Scholar, Web of Science, ACS, e.t.c
-  *
-  * timeZone:
-  *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
-  *
-
-  Attributes:
-   - userModelVersion
-   - airavataInternalUserId
-   - userId
-   - gatewayId
-   - emails
-   - firstName
-   - lastName
-   - middleName
-   - namePrefix
-   - nameSuffix
-   - orcidId
-   - phones
-   - country
-   - nationality
-   - homeOrganization
-   - orginationAffiliation
-   - creationTime
-   - lastAccessTime
-   - validUntil
-   - State
-   - comments
-   - labeledURI
-   - gpgKey
-   - timeZone
-   - nsfDemographics
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'userModelVersion', None, "1.0", ), # 1
-    (2, TType.STRING, 'airavataInternalUserId', None, "DO_NOT_SET_AT_CLIENTS", ), # 2
-    (3, TType.STRING, 'userId', None, None, ), # 3
-    (4, TType.STRING, 'gatewayId', None, None, ), # 4
-    (5, TType.LIST, 'emails', (TType.STRING,None), None, ), # 5
-    (6, TType.STRING, 'firstName', None, None, ), # 6
-    (7, TType.STRING, 'lastName', None, None, ), # 7
-    (8, TType.STRING, 'middleName', None, None, ), # 8
-    (9, TType.STRING, 'namePrefix', None, None, ), # 9
-    (10, TType.STRING, 'nameSuffix', None, None, ), # 10
-    (11, TType.STRING, 'orcidId', None, None, ), # 11
-    (12, TType.LIST, 'phones', (TType.STRING,None), None, ), # 12
-    (13, TType.STRING, 'country', None, None, ), # 13
-    (14, TType.LIST, 'nationality', (TType.STRING,None), None, ), # 14
-    (15, TType.STRING, 'homeOrganization', None, None, ), # 15
-    (16, TType.STRING, 'orginationAffiliation', None, None, ), # 16
-    (17, TType.I64, 'creationTime', None, None, ), # 17
-    (18, TType.I64, 'lastAccessTime', None, None, ), # 18
-    (19, TType.I64, 'validUntil', None, None, ), # 19
-    (20, TType.I32, 'State', None, None, ), # 20
-    (21, TType.STRING, 'comments', None, None, ), # 21
-    (22, TType.LIST, 'labeledURI', (TType.STRING,None), None, ), # 22
-    (23, TType.STRING, 'gpgKey', None, None, ), # 23
-    (24, TType.STRING, 'timeZone', None, None, ), # 24
-    (25, TType.STRUCT, 'nsfDemographics', (NSFDemographics, NSFDemographics.thrift_spec), None, ), # 25
-  )
-
-  def __init__(self, userModelVersion=thrift_spec[1][4], airavataInternalUserId=thrift_spec[2][4], userId=None, gatewayId=None, emails=None, firstName=None, lastName=None, middleName=None, namePrefix=None, nameSuffix=None, orcidId=None, phones=None, country=None, nationality=None, homeOrganization=None, orginationAffiliation=None, creationTime=None, lastAccessTime=None, validUntil=None, State=None, comments=None, labeledURI=None, gpgKey=None, timeZone=None, nsfDemographics=None,):
-    self.userModelVersion = userModelVersion
-    self.airavataInternalUserId = airavataInternalUserId
-    self.userId = userId
-    self.gatewayId = gatewayId
-    self.emails = emails
-    self.firstName = firstName
-    self.lastName = lastName
-    self.middleName = middleName
-    self.namePrefix = namePrefix
-    self.nameSuffix = nameSuffix
-    self.orcidId = orcidId
-    self.phones = phones
-    self.country = country
-    self.nationality = nationality
-    self.homeOrganization = homeOrganization
-    self.orginationAffiliation = orginationAffiliation
-    self.creationTime = creationTime
-    self.lastAccessTime = lastAccessTime
-    self.validUntil = validUntil
-    self.State = State
-    self.comments = comments
-    self.labeledURI = labeledURI
-    self.gpgKey = gpgKey
-    self.timeZone = timeZone
-    self.nsfDemographics = nsfDemographics
-
-  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.userModelVersion = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.airavataInternalUserId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.userId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.LIST:
-          self.emails = []
-          (_etype24, _size21) = iprot.readListBegin()
-          for _i25 in xrange(_size21):
-            _elem26 = iprot.readString()
-            self.emails.append(_elem26)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.STRING:
-          self.firstName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.STRING:
-          self.lastName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.STRING:
-          self.middleName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.STRING:
-          self.namePrefix = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 10:
-        if ftype == TType.STRING:
-          self.nameSuffix = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 11:
-        if ftype == TType.STRING:
-          self.orcidId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 12:
-        if ftype == TType.LIST:
-          self.phones = []
-          (_etype30, _size27) = iprot.readListBegin()
-          for _i31 in xrange(_size27):
-            _elem32 = iprot.readString()
-            self.phones.append(_elem32)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 13:
-        if ftype == TType.STRING:
-          self.country = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 14:
-        if ftype == TType.LIST:
-          self.nationality = []
-          (_etype36, _size33) = iprot.readListBegin()
-          for _i37 in xrange(_size33):
-            _elem38 = iprot.readString()
-            self.nationality.append(_elem38)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 15:
-        if ftype == TType.STRING:
-          self.homeOrganization = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 16:
-        if ftype == TType.STRING:
-          self.orginationAffiliation = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 17:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 18:
-        if ftype == TType.I64:
-          self.lastAccessTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 19:
-        if ftype == TType.I64:
-          self.validUntil = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 20:
-        if ftype == TType.I32:
-          self.State = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 21:
-        if ftype == TType.STRING:
-          self.comments = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 22:
-        if ftype == TType.LIST:
-          self.labeledURI = []
-          (_etype42, _size39) = iprot.readListBegin()
-          for _i43 in xrange(_size39):
-            _elem44 = iprot.readString()
-            self.labeledURI.append(_elem44)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 23:
-        if ftype == TType.STRING:
-          self.gpgKey = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 24:
-        if ftype == TType.STRING:
-          self.timeZone = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 25:
-        if ftype == TType.STRUCT:
-          self.nsfDemographics = NSFDemographics()
-          self.nsfDemographics.read(iprot)
-        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('UserProfile')
-    if self.userModelVersion is not None:
-      oprot.writeFieldBegin('userModelVersion', TType.STRING, 1)
-      oprot.writeString(self.userModelVersion)
-      oprot.writeFieldEnd()
-    if self.airavataInternalUserId is not None:
-      oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 2)
-      oprot.writeString(self.airavataInternalUserId)
-      oprot.writeFieldEnd()
-    if self.userId is not None:
-      oprot.writeFieldBegin('userId', TType.STRING, 3)
-      oprot.writeString(self.userId)
-      oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
-    if self.emails is not None:
-      oprot.writeFieldBegin('emails', TType.LIST, 5)
-      oprot.writeListBegin(TType.STRING, len(self.emails))
-      for iter45 in self.emails:
-        oprot.writeString(iter45)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.firstName is not None:
-      oprot.writeFieldBegin('firstName', TType.STRING, 6)
-      oprot.writeString(self.firstName)
-      oprot.writeFieldEnd()
-    if self.lastName is not None:
-      oprot.writeFieldBegin('lastName', TType.STRING, 7)
-      oprot.writeString(self.lastName)
-      oprot.writeFieldEnd()
-    if self.middleName is not None:
-      oprot.writeFieldBegin('middleName', TType.STRING, 8)
-      oprot.writeString(self.middleName)
-      oprot.writeFieldEnd()
-    if self.namePrefix is not None:
-      oprot.writeFieldBegin('namePrefix', TType.STRING, 9)
-      oprot.writeString(self.namePrefix)
-      oprot.writeFieldEnd()
-    if self.nameSuffix is not None:
-      oprot.writeFieldBegin('nameSuffix', TType.STRING, 10)
-      oprot.writeString(self.nameSuffix)
-      oprot.writeFieldEnd()
-    if self.orcidId is not None:
-      oprot.writeFieldBegin('orcidId', TType.STRING, 11)
-      oprot.writeString(self.orcidId)
-      oprot.writeFieldEnd()
-    if self.phones is not None:
-      oprot.writeFieldBegin('phones', TType.LIST, 12)
-      oprot.writeListBegin(TType.STRING, len(self.phones))
-      for iter46 in self.phones:
-        oprot.writeString(iter46)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.country is not None:
-      oprot.writeFieldBegin('country', TType.STRING, 13)
-      oprot.writeString(self.country)
-      oprot.writeFieldEnd()
-    if self.nationality is not None:
-      oprot.writeFieldBegin('nationality', TType.LIST, 14)
-      oprot.writeListBegin(TType.STRING, len(self.nationality))
-      for iter47 in self.nationality:
-        oprot.writeString(iter47)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.homeOrganization is not None:
-      oprot.writeFieldBegin('homeOrganization', TType.STRING, 15)
-      oprot.writeString(self.homeOrganization)
-      oprot.writeFieldEnd()
-    if self.orginationAffiliation is not None:
-      oprot.writeFieldBegin('orginationAffiliation', TType.STRING, 16)
-      oprot.writeString(self.orginationAffiliation)
-      oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 17)
-      oprot.writeI64(self.creationTime)
-      oprot.writeFieldEnd()
-    if self.lastAccessTime is not None:
-      oprot.writeFieldBegin('lastAccessTime', TType.I64, 18)
-      oprot.writeI64(self.lastAccessTime)
-      oprot.writeFieldEnd()
-    if self.validUntil is not None:
-      oprot.writeFieldBegin('validUntil', TType.I64, 19)
-      oprot.writeI64(self.validUntil)
-      oprot.writeFieldEnd()
-    if self.State is not None:
-      oprot.writeFieldBegin('State', TType.I32, 20)
-      oprot.writeI32(self.State)
-      oprot.writeFieldEnd()
-    if self.comments is not None:
-      oprot.writeFieldBegin('comments', TType.STRING, 21)
-      oprot.writeString(self.comments)
-      oprot.writeFieldEnd()
-    if self.labeledURI is not None:
-      oprot.writeFieldBegin('labeledURI', TType.LIST, 22)
-      oprot.writeListBegin(TType.STRING, len(self.labeledURI))
-      for iter48 in self.labeledURI:
-        oprot.writeString(iter48)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.gpgKey is not None:
-      oprot.writeFieldBegin('gpgKey', TType.STRING, 23)
-      oprot.writeString(self.gpgKey)
-      oprot.writeFieldEnd()
-    if self.timeZone is not None:
-      oprot.writeFieldBegin('timeZone', TType.STRING, 24)
-      oprot.writeString(self.timeZone)
-      oprot.writeFieldEnd()
-    if self.nsfDemographics is not None:
-      oprot.writeFieldBegin('nsfDemographics', TType.STRUCT, 25)
-      self.nsfDemographics.write(oprot)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    if self.userModelVersion is None:
-      raise TProtocol.TProtocolException(message='Required field userModelVersion is unset!')
-    if self.airavataInternalUserId is None:
-      raise TProtocol.TProtocolException(message='Required field airavataInternalUserId is unset!')
-    if self.userId is None:
-      raise TProtocol.TProtocolException(message='Required field userId is unset!')
-    if self.gatewayId is None:
-      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
-    if self.emails is None:
-      raise TProtocol.TProtocolException(message='Required field emails is unset!')
-    if self.firstName is None:
-      raise TProtocol.TProtocolException(message='Required field firstName is unset!')
-    if self.lastName is None:
-      raise TProtocol.TProtocolException(message='Required field lastName is unset!')
-    if self.creationTime is None:
-      raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
-    if self.lastAccessTime is None:
-      raise TProtocol.TProtocolException(message='Required field lastAccessTime is unset!')
-    if self.validUntil is None:
-      raise TProtocol.TProtocolException(message='Required field validUntil is unset!')
-    if self.State is None:
-      raise TProtocol.TProtocolException(message='Required field State is unset!')
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.userModelVersion)
-    value = (value * 31) ^ hash(self.airavataInternalUserId)
-    value = (value * 31) ^ hash(self.userId)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.emails)
-    value = (value * 31) ^ hash(self.firstName)
-    value = (value * 31) ^ hash(self.lastName)
-    value = (value * 31) ^ hash(self.middleName)
-    value = (value * 31) ^ hash(self.namePrefix)
-    value = (value * 31) ^ hash(self.nameSuffix)
-    value = (value * 31) ^ hash(self.orcidId)
-    value = (value * 31) ^ hash(self.phones)
-    value = (value * 31) ^ hash(self.country)
-    value = (value * 31) ^ hash(self.nationality)
-    value = (value * 31) ^ hash(self.homeOrganization)
-    value = (value * 31) ^ hash(self.orginationAffiliation)
-    value = (value * 31) ^ hash(self.creationTime)
-    value = (value * 31) ^ hash(self.lastAccessTime)
-    value = (value * 31) ^ hash(self.validUntil)
-    value = (value * 31) ^ hash(self.State)
-    value = (value * 31) ^ hash(self.comments)
-    value = (value * 31) ^ hash(self.labeledURI)
-    value = (value * 31) ^ hash(self.gpgKey)
-    value = (value * 31) ^ hash(self.timeZone)
-    value = (value * 31) ^ hash(self.nsfDemographics)
-    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 Status(object):
+    ACTIVE = 0
+    CONFIRMED = 1
+    APPROVED = 2
+    DELETED = 3
+    DUPLICATE = 4
+    GRACE_PERIOD = 5
+    INVITED = 6
+    DENIED = 7
+    PENDING = 8
+    PENDING_APPROVAL = 9
+    PENDING_CONFIRMATION = 10
+    SUSPENDED = 11
+    DECLINED = 12
+    EXPIRED = 13
+
+    _VALUES_TO_NAMES = {
+        0: "ACTIVE",
+        1: "CONFIRMED",
+        2: "APPROVED",
+        3: "DELETED",
+        4: "DUPLICATE",
+        5: "GRACE_PERIOD",
+        6: "INVITED",
+        7: "DENIED",
+        8: "PENDING",
+        9: "PENDING_APPROVAL",
+        10: "PENDING_CONFIRMATION",
+        11: "SUSPENDED",
+        12: "DECLINED",
+        13: "EXPIRED",
+    }
+
+    _NAMES_TO_VALUES = {
+        "ACTIVE": 0,
+        "CONFIRMED": 1,
+        "APPROVED": 2,
+        "DELETED": 3,
+        "DUPLICATE": 4,
+        "GRACE_PERIOD": 5,
+        "INVITED": 6,
+        "DENIED": 7,
+        "PENDING": 8,
+        "PENDING_APPROVAL": 9,
+        "PENDING_CONFIRMATION": 10,
+        "SUSPENDED": 11,
+        "DECLINED": 12,
+        "EXPIRED": 13,
+    }
+
+
+class USCitizenship(object):
+    """
+    U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
+
+    """
+    US_CITIZEN = 0
+    US_PERMANENT_RESIDENT = 1
+    OTHER_NON_US_CITIZEN = 2
+
+    _VALUES_TO_NAMES = {
+        0: "US_CITIZEN",
+        1: "US_PERMANENT_RESIDENT",
+        2: "OTHER_NON_US_CITIZEN",
+    }
+
+    _NAMES_TO_VALUES = {
+        "US_CITIZEN": 0,
+        "US_PERMANENT_RESIDENT": 1,
+        "OTHER_NON_US_CITIZEN": 2,
+    }
+
+
+class ethnicity(object):
+    """
+    Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
+     Central American, or other Spanish culture or origin, regardless of race.
+
+    """
+    HISPANIC_LATINO = 0
+    NOT_HISPANIC_LATINO = 1
+
+    _VALUES_TO_NAMES = {
+        0: "HISPANIC_LATINO",
+        1: "NOT_HISPANIC_LATINO",
+    }
+
+    _NAMES_TO_VALUES = {
+        "HISPANIC_LATINO": 0,
+        "NOT_HISPANIC_LATINO": 1,
+    }
+
+
+class race(object):
+    """
+    * Asian - a person having origins in any of the original peoples of the Far East,
+    *      Southeast Asia, or the Indian subcontinent including, for example, Cambodia,
+     *      China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
+     *      Thailand, and Vietnam.
+    * American Indian or Alaskan Native - a person having origins in any of the original
+     *     peoples of North and South America (including Central America), and who maintains
+      *     tribal affiliation or community attachment.
+    * Black or African American - a person having origins in any of the black racial groups
+    *      of Africa.
+    * Native Hawaiian or Pacific Islander - a person having origins in any of the original
+    *      peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
+    * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
+    *
+    """
+    ASIAN = 0
+    AMERICAN_INDIAN_OR_ALASKAN_NATIVE = 1
+    BLACK_OR_AFRICAN_AMERICAN = 2
+    NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER = 3
+    WHITE = 4
+
+    _VALUES_TO_NAMES = {
+        0: "ASIAN",
+        1: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE",
+        2: "BLACK_OR_AFRICAN_AMERICAN",
+        3: "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER",
+        4: "WHITE",
+    }
+
+    _NAMES_TO_VALUES = {
+        "ASIAN": 0,
+        "AMERICAN_INDIAN_OR_ALASKAN_NATIVE": 1,
+        "BLACK_OR_AFRICAN_AMERICAN": 2,
+        "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER": 3,
+        "WHITE": 4,
+    }
+
+
+class disability(object):
+    HEARING_IMAPAIRED = 0
+    VISUAL_IMPAIRED = 1
+    MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT = 2
+    OTHER_IMPAIRMENT = 3
+
+    _VALUES_TO_NAMES = {
+        0: "HEARING_IMAPAIRED",
+        1: "VISUAL_IMPAIRED",
+        2: "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT",
+        3: "OTHER_IMPAIRMENT",
+    }
+
+    _NAMES_TO_VALUES = {
+        "HEARING_IMAPAIRED": 0,
+        "VISUAL_IMPAIRED": 1,
+        "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT": 2,
+        "OTHER_IMPAIRMENT": 3,
+    }
+
+
+class NSFDemographics(object):
+    """
+    A structure holding the NSF Demographic information.
+
+
+
+    Attributes:
+     - airavataInternalUserId
+     - gender
+     - usCitizenship
+     - ethnicities
+     - races
+     - disabilities
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'airavataInternalUserId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.STRING, 'gender', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'usCitizenship', None, None, ),  # 3
+        (4, TType.LIST, 'ethnicities', (TType.I32, None, False), None, ),  # 4
+        (5, TType.LIST, 'races', (TType.I32, None, False), None, ),  # 5
+        (6, TType.LIST, 'disabilities', (TType.I32, None, False), None, ),  # 6
+    )
+
+    def __init__(self, airavataInternalUserId=thrift_spec[1][4], gender=None, usCitizenship=None, ethnicities=None, races=None, disabilities=None,):
+        self.airavataInternalUserId = airavataInternalUserId
+        self.gender = gender
+        self.usCitizenship = usCitizenship
+        self.ethnicities = ethnicities
+        self.races = races
+        self.disabilities = disabilities
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.airavataInternalUserId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.gender = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.usCitizenship = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.LIST:
+                    self.ethnicities = []
+                    (_etype3, _size0) = iprot.readListBegin()
+                    for _i4 in range(_size0):
+                        _elem5 = iprot.readI32()
+                        self.ethnicities.append(_elem5)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.LIST:
+                    self.races = []
+                    (_etype9, _size6) = iprot.readListBegin()
+                    for _i10 in range(_size6):
+                        _elem11 = iprot.readI32()
+                        self.races.append(_elem11)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.LIST:
+                    self.disabilities = []
+                    (_etype15, _size12) = iprot.readListBegin()
+                    for _i16 in range(_size12):
+                        _elem17 = iprot.readI32()
+                        self.disabilities.append(_elem17)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('NSFDemographics')
+        if self.airavataInternalUserId is not None:
+            oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 1)
+            oprot.writeString(self.airavataInternalUserId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataInternalUserId)
+            oprot.writeFieldEnd()
+        if self.gender is not None:
+            oprot.writeFieldBegin('gender', TType.STRING, 2)
+            oprot.writeString(self.gender.encode('utf-8') if sys.version_info[0] == 2 else self.gender)
+            oprot.writeFieldEnd()
+        if self.usCitizenship is not None:
+            oprot.writeFieldBegin('usCitizenship', TType.I32, 3)
+            oprot.writeI32(self.usCitizenship)
+            oprot.writeFieldEnd()
+        if self.ethnicities is not None:
+            oprot.writeFieldBegin('ethnicities', TType.LIST, 4)
+            oprot.writeListBegin(TType.I32, len(self.ethnicities))
+            for iter18 in self.ethnicities:
+                oprot.writeI32(iter18)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.races is not None:
+            oprot.writeFieldBegin('races', TType.LIST, 5)
+            oprot.writeListBegin(TType.I32, len(self.races))
+            for iter19 in self.races:
+                oprot.writeI32(iter19)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.disabilities is not None:
+            oprot.writeFieldBegin('disabilities', TType.LIST, 6)
+            oprot.writeListBegin(TType.I32, len(self.disabilities))
+            for iter20 in self.disabilities:
+                oprot.writeI32(iter20)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.airavataInternalUserId is None:
+            raise TProtocolException(message='Required field airavataInternalUserId is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class UserProfile(object):
+    """
+    * A structure holding the user profile and its child models.
+    *
+    * Notes:
+    *  The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
+    *  References:
+    *     NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
+    *     LDAP Schema - https://tools.ietf.org/html/rfc4519
+    *     SCIM 2.0 - https://tools.ietf.org/html/rfc7643
+    *
+    * userModelVersion:
+    *  Version number of profile
+    *
+    * airavataInternalUserId:
+    *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
+    *  (that is, never shown to users), never reassigned, REQUIRED
+    *
+    * userId:
+    *  Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
+    *   user name less opaque. OpenID Connect maintains them to be opaque.
+    *
+    * firstName, middleName, lastName:
+    *  First and Last names as assertede by the user
+    *
+    * namePrefix, nameSuffix:
+    *  prefix and suffix to the users name as asserted by the user
+    *
+    * emails:
+    *   Email identifier are Verified, REQUIRED and MULTIVALUED
+    *
+    * userName:
+    *  Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string.
+    *   In the future these can be enumerated as:
+        *   Official name (as asserted possibly by some external identity provider)
+        *   Prefered name (as asserted or suggested by user directly)
+        *   Components:
+        *      givenName
+        *      surname (familyName)
+        *      displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
+    *
+    * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
+    *
+    * phones: Telephone MULTIVALUED
+    *
+    * country: Country of Residance
+    *
+    * nationality Countries of citizenship
+    *
+    * comments:
+    *   Free-form information (treated as opaque by Airavata and simply passed to resource).
+    *
+    * labeledURI:
+      * Google Scholar, Web of Science, ACS, e.t.c
+    *
+    * timeZone:
+    *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
+    *
+
+    Attributes:
+     - userModelVersion
+     - airavataInternalUserId
+     - userId
+     - gatewayId
+     - emails
+     - firstName
+     - lastName
+     - middleName
+     - namePrefix
+     - nameSuffix
+     - orcidId
+     - phones
+     - country
+     - nationality
+     - homeOrganization
+     - orginationAffiliation
+     - creationTime
+     - lastAccessTime
+     - validUntil
+     - State
+     - comments
+     - labeledURI
+     - gpgKey
+     - timeZone
+     - nsfDemographics
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'userModelVersion', 'UTF8', "1.0", ),  # 1
+        (2, TType.STRING, 'airavataInternalUserId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 2
+        (3, TType.STRING, 'userId', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 4
+        (5, TType.LIST, 'emails', (TType.STRING, 'UTF8', False), None, ),  # 5
+        (6, TType.STRING, 'firstName', 'UTF8', None, ),  # 6
+        (7, TType.STRING, 'lastName', 'UTF8', None, ),  # 7
+        (8, TType.STRING, 'middleName', 'UTF8', None, ),  # 8
+        (9, TType.STRING, 'namePrefix', 'UTF8', None, ),  # 9
+        (10, TType.STRING, 'nameSuffix', 'UTF8', None, ),  # 10
+        (11, TType.STRING, 'orcidId', 'UTF8', None, ),  # 11
+        (12, TType.LIST, 'phones', (TType.STRING, 'UTF8', False), None, ),  # 12
+        (13, TType.STRING, 'country', 'UTF8', None, ),  # 13
+        (14, TType.LIST, 'nationality', (TType.STRING, 'UTF8', False), None, ),  # 14
+        (15, TType.STRING, 'homeOrganization', 'UTF8', None, ),  # 15
+        (16, TType.STRING, 'orginationAffiliation', 'UTF8', None, ),  # 16
+        (17, TType.I64, 'creationTime', None, None, ),  # 17
+        (18, TType.I64, 'lastAccessTime', None, None, ),  # 18
+        (19, TType.I64, 'validUntil', None, None, ),  # 19
+        (20, TType.I32, 'State', None, None, ),  # 20
+        (21, TType.STRING, 'comments', 'UTF8', None, ),  # 21
+        (22, TType.LIST, 'labeledURI', (TType.STRING, 'UTF8', False), None, ),  # 22
+        (23, TType.STRING, 'gpgKey', 'UTF8', None, ),  # 23
+        (24, TType.STRING, 'timeZone', 'UTF8', None, ),  # 24
+        (25, TType.STRUCT, 'nsfDemographics', (NSFDemographics, NSFDemographics.thrift_spec), None, ),  # 25
+    )
+
+    def __init__(self, userModelVersion=thrift_spec[1][4], airavataInternalUserId=thrift_spec[2][4], userId=None, gatewayId=None, emails=None, firstName=None, lastName=None, middleName=None, namePrefix=None, nameSuffix=None, orcidId=None, phones=None, country=None, nationality=None, homeOrganization=None, orginationAffiliation=None, creationTime=None, lastAccessTime=None, validUntil=None, State=None, comments=None, labeledURI=None, gpgKey=None, timeZone=None, nsfDemographics=None,):
+        self.userModelVersion = userModelVersion
+        self.airavataInternalUserId = airavataInternalUserId
+        self.userId = userId
+        self.gatewayId = gatewayId
+        self.emails = emails
+        self.firstName = firstName
+        self.lastName = lastName
+        self.middleName = middleName
+        self.namePrefix = namePrefix
+        self.nameSuffix = nameSuffix
+        self.orcidId = orcidId
+        self.phones = phones
+        self.country = country
+        self.nationality = nationality
+        self.homeOrganization = homeOrganization
+        self.orginationAffiliation = orginationAffiliation
+        self.creationTime = creationTime
+        self.lastAccessTime = lastAccessTime
+        self.validUntil = validUntil
+        self.State = State
+        self.comments = comments
+        self.labeledURI = labeledURI
+        self.gpgKey = gpgKey
+        self.timeZone = timeZone
+        self.nsfDemographics = nsfDemographics
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.userModelVersion = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.airavataInternalUserId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.userId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.LIST:
+                    self.emails = []
+                    (_etype24, _size21) = iprot.readListBegin()
+                    for _i25 in range(_size21):
+                        _elem26 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.emails.append(_elem26)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.firstName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.lastName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 8:
+                if ftype == TType.STRING:
+                    self.middleName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 9:
+                if ftype == TType.STRING:
+                    self.namePrefix = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 10:
+                if ftype == TType.STRING:
+                    self.nameSuffix = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 11:
+                if ftype == TType.STRING:
+                    self.orcidId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 12:
+                if ftype == TType.LIST:
+                    self.phones = []
+                    (_etype30, _size27) = iprot.readListBegin()
+                    for _i31 in range(_size27):
+                        _elem32 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.phones.append(_elem32)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 13:
+                if ftype == TType.STRING:
+                    self.country = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 14:
+                if ftype == TType.LIST:
+                    self.nationality = []
+                    (_etype36, _size33) = iprot.readListBegin()
+                    for _i37 in range(_size33):
+                        _elem38 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.nationality.append(_elem38)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 15:
+                if ftype == TType.STRING:
+                    self.homeOrganization = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 16:
+                if ftype == TType.STRING:
+                    self.orginationAffiliation = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 17:
+                if ftype == TType.I64:
+                    self.creationTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 18:
+                if ftype == TType.I64:
+                    self.lastAccessTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 19:
+                if ftype == TType.I64:
+                    self.validUntil = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 20:
+                if ftype == TType.I32:
+                    self.State = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 21:
+                if ftype == TType.STRING:
+                    self.comments = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 22:
+                if ftype == TType.LIST:
+                    self.labeledURI = []
+                    (_etype42, _size39) = iprot.readListBegin()
+                    for _i43 in range(_size39):
+                        _elem44 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                        self.labeledURI.append(_elem44)
+                    iprot.readListEnd()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 23:
+                if ftype == TType.STRING:
+                    self.gpgKey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 24:
+                if ftype == TType.STRING:
+                    self.timeZone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 25:
+                if ftype == TType.STRUCT:
+                    self.nsfDemographics = NSFDemographics()
+                    self.nsfDemographics.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('UserProfile')
+        if self.userModelVersion is not None:
+            oprot.writeFieldBegin('userModelVersion', TType.STRING, 1)
+            oprot.writeString(self.userModelVersion.encode('utf-8') if sys.version_info[0] == 2 else self.userModelVersion)
+            oprot.writeFieldEnd()
+        if self.airavataInternalUserId is not None:
+            oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 2)
+            oprot.writeString(self.airavataInternalUserId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataInternalUserId)
+            oprot.writeFieldEnd()
+        if self.userId is not None:
+            oprot.writeFieldBegin('userId', TType.STRING, 3)
+            oprot.writeString(self.userId.encode('utf-8') if sys.version_info[0] == 2 else self.userId)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.emails is not None:
+            oprot.writeFieldBegin('emails', TType.LIST, 5)
+            oprot.writeListBegin(TType.STRING, len(self.emails))
+            for iter45 in self.emails:
+                oprot.writeString(iter45.encode('utf-8') if sys.version_info[0] == 2 else iter45)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.firstName is not None:
+            oprot.writeFieldBegin('firstName', TType.STRING, 6)
+            oprot.writeString(self.firstName.encode('utf-8') if sys.version_info[0] == 2 else self.firstName)
+            oprot.writeFieldEnd()
+        if self.lastName is not None:
+            oprot.writeFieldBegin('lastName', TType.STRING, 7)
+            oprot.writeString(self.lastName.encode('utf-8') if sys.version_info[0] == 2 else self.lastName)
+            oprot.writeFieldEnd()
+        if self.middleName is not None:
+            oprot.writeFieldBegin('middleName', TType.STRING, 8)
+            oprot.writeString(self.middleName.encode('utf-8') if sys.version_info[0] == 2 else self.middleName)
+            oprot.writeFieldEnd()
+        if self.namePrefix is not None:
+            oprot.writeFieldBegin('namePrefix', TType.STRING, 9)
+            oprot.writeString(self.namePrefix.encode('utf-8') if sys.version_info[0] == 2 else self.namePrefix)
+            oprot.writeFieldEnd()
+        if self.nameSuffix is not None:
+            oprot.writeFieldBegin('nameSuffix', TType.STRING, 10)
+            oprot.writeString(self.nameSuffix.encode('utf-8') if sys.version_info[0] == 2 else self.nameSuffix)
+            oprot.writeFieldEnd()
+        if self.orcidId is not None:
+            oprot.writeFieldBegin('orcidId', TType.STRING, 11)
+            oprot.writeString(self.orcidId.encode('utf-8') if sys.version_info[0] == 2 else self.orcidId)
+            oprot.writeFieldEnd()
+        if self.phones is not None:
+            oprot.writeFieldBegin('phones', TType.LIST, 12)
+            oprot.writeListBegin(TType.STRING, len(self.phones))
+            for iter46 in self.phones:
+                oprot.writeString(iter46.encode('utf-8') if sys.version_info[0] == 2 else iter46)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.country is not None:
+            oprot.writeFieldBegin('country', TType.STRING, 13)
+            oprot.writeString(self.country.encode('utf-8') if sys.version_info[0] == 2 else self.country)
+            oprot.writeFieldEnd()
+        if self.nationality is not None:
+            oprot.writeFieldBegin('nationality', TType.LIST, 14)
+            oprot.writeListBegin(TType.STRING, len(self.nationality))
+            for iter47 in self.nationality:
+                oprot.writeString(iter47.encode('utf-8') if sys.version_info[0] == 2 else iter47)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.homeOrganization is not None:
+            oprot.writeFieldBegin('homeOrganization', TType.STRING, 15)
+            oprot.writeString(self.homeOrganization.encode('utf-8') if sys.version_info[0] == 2 else self.homeOrganization)
+            oprot.writeFieldEnd()
+        if self.orginationAffiliation is not None:
+            oprot.writeFieldBegin('orginationAffiliation', TType.STRING, 16)
+            oprot.writeString(self.orginationAffiliation.encode('utf-8') if sys.version_info[0] == 2 else self.orginationAffiliation)
+            oprot.writeFieldEnd()
+        if self.creationTime is not None:
+            oprot.writeFieldBegin('creationTime', TType.I64, 17)
+            oprot.writeI64(self.creationTime)
+            oprot.writeFieldEnd()
+        if self.lastAccessTime is not None:
+            oprot.writeFieldBegin('lastAccessTime', TType.I64, 18)
+            oprot.writeI64(self.lastAccessTime)
+            oprot.writeFieldEnd()
+        if self.validUntil is not None:
+            oprot.writeFieldBegin('validUntil', TType.I64, 19)
+            oprot.writeI64(self.validUntil)
+            oprot.writeFieldEnd()
+        if self.State is not None:
+            oprot.writeFieldBegin('State', TType.I32, 20)
+            oprot.writeI32(self.State)
+            oprot.writeFieldEnd()
+        if self.comments is not None:
+            oprot.writeFieldBegin('comments', TType.STRING, 21)
+            oprot.writeString(self.comments.encode('utf-8') if sys.version_info[0] == 2 else self.comments)
+            oprot.writeFieldEnd()
+        if self.labeledURI is not None:
+            oprot.writeFieldBegin('labeledURI', TType.LIST, 22)
+            oprot.writeListBegin(TType.STRING, len(self.labeledURI))
+            for iter48 in self.labeledURI:
+                oprot.writeString(iter48.encode('utf-8') if sys.version_info[0] == 2 else iter48)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        if self.gpgKey is not None:
+            oprot.writeFieldBegin('gpgKey', TType.STRING, 23)
+            oprot.writeString(self.gpgKey.encode('utf-8') if sys.version_info[0] == 2 else self.gpgKey)
+            oprot.writeFieldEnd()
+        if self.timeZone is not None:
+            oprot.writeFieldBegin('timeZone', TType.STRING, 24)
+            oprot.writeString(self.timeZone.encode('utf-8') if sys.version_info[0] == 2 else self.timeZone)
+            oprot.writeFieldEnd()
+        if self.nsfDemographics is not None:
+            oprot.writeFieldBegin('nsfDemographics', TType.STRUCT, 25)
+            self.nsfDemographics.write(oprot)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.userModelVersion is None:
+            raise TProtocolException(message='Required field userModelVersion is unset!')
+        if self.airavataInternalUserId is None:
+            raise TProtocolException(message='Required field airavataInternalUserId is unset!')
+        if self.userId is None:
+            raise TProtocolException(message='Required field userId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.emails is None:
+            raise TProtocolException(message='Required field emails is unset!')
+        if self.firstName is None:
+            raise TProtocolException(message='Required field firstName is unset!')
+        if self.lastName is None:
+            raise TProtocolException(message='Required field lastName is unset!')
+        if self.creationTime is None:
+            raise TProtocolException(message='Required field creationTime is unset!')
+        if self.lastAccessTime is None:
+            raise TProtocolException(message='Required field lastAccessTime is unset!')
+        if self.validUntil is None:
+            raise TProtocolException(message='Required field validUntil is unset!')
+        if self.State is None:
+            raise TProtocolException(message='Required field State is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)

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