#
# Autogenerated by Thrift Compiler (0.9.1)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

from thrift.Thrift import TType, TMessageType, TException, TApplicationException
import koverse.thriftgen.ttypes
import koverse.thriftgen.security.ttypes
import koverse.thriftgen.collection.ttypes


from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol, TProtocol
try:
  from thrift.protocol import fastbinary
except:
  fastbinary = None



class TSystemSettings:
  """
  Attributes:
   - settingsId
   - koverseBaseURL
   - smtpServerHostName
   - smtpServerPort
   - smtpUsername
   - smtpPassword
   - smtpFromEmailAddress
   - smtpConnectionType
   - ldapServerHostName
   - ldapServerPort
   - ldapBaseDN
   - hadoopNameNodeHostname
   - hadoopNameNodePort
   - hadoopJobTrackerHostname
   - hadoopJobTrackerPort
   - dataStoreType
   - authenticatorsEnabled
   - authenticatorSettings
   - authorizersEnabled
   - authorizerSettings
   - dataStoreSettings
   - lockDown
   - settingsSavedOnce
   - logoffDisabled
   - usersCanChangePassword
   - usersCanEditAccountDetails
   - resetToken
   - hdfsResourceDirectory
   - hadoopJobSettings
   - serializationMaxBufferSize
   - temporaryWorkingDirectory
   - backupScheduleEnabled
   - backupScheduleId
   - accountMenuDisabled
   - autoRunTransformsDisabled
   - instancePrefix
   - hadoopJobHistoryHostname
   - hadoopJobHistoryPort
  """

  thrift_spec = (
    None, # 0
    (1, TType.I32, 'settingsId', None, None, ), # 1
    (2, TType.STRING, 'koverseBaseURL', None, None, ), # 2
    (3, TType.STRING, 'smtpServerHostName', None, None, ), # 3
    (4, TType.I32, 'smtpServerPort', None, None, ), # 4
    (5, TType.STRING, 'smtpUsername', None, None, ), # 5
    (6, TType.STRING, 'smtpPassword', None, None, ), # 6
    (7, TType.STRING, 'smtpFromEmailAddress', None, None, ), # 7
    (8, TType.STRING, 'smtpConnectionType', None, None, ), # 8
    (9, TType.STRING, 'ldapServerHostName', None, None, ), # 9
    (10, TType.I32, 'ldapServerPort', None, None, ), # 10
    (11, TType.STRING, 'ldapBaseDN', None, None, ), # 11
    (12, TType.STRING, 'hadoopNameNodeHostname', None, None, ), # 12
    (13, TType.I32, 'hadoopNameNodePort', None, None, ), # 13
    (14, TType.STRING, 'hadoopJobTrackerHostname', None, None, ), # 14
    (15, TType.I32, 'hadoopJobTrackerPort', None, None, ), # 15
    (16, TType.STRING, 'dataStoreType', None, None, ), # 16
    (17, TType.STRING, 'authenticatorsEnabled', None, None, ), # 17
    (18, TType.MAP, 'authenticatorSettings', (TType.STRING,None,TType.MAP,(TType.STRING,None,TType.STRING,None)), None, ), # 18
    (19, TType.STRING, 'authorizersEnabled', None, None, ), # 19
    (20, TType.MAP, 'authorizerSettings', (TType.STRING,None,TType.MAP,(TType.STRING,None,TType.STRING,None)), None, ), # 20
    (21, TType.MAP, 'dataStoreSettings', (TType.STRING,None,TType.STRING,None), None, ), # 21
    (22, TType.BOOL, 'lockDown', None, None, ), # 22
    (23, TType.BOOL, 'settingsSavedOnce', None, None, ), # 23
    (24, TType.BOOL, 'logoffDisabled', None, None, ), # 24
    (25, TType.BOOL, 'usersCanChangePassword', None, None, ), # 25
    (26, TType.BOOL, 'usersCanEditAccountDetails', None, None, ), # 26
    (27, TType.STRING, 'resetToken', None, None, ), # 27
    (28, TType.STRING, 'hdfsResourceDirectory', None, None, ), # 28
    (29, TType.MAP, 'hadoopJobSettings', (TType.STRING,None,TType.STRING,None), None, ), # 29
    (30, TType.I32, 'serializationMaxBufferSize', None, None, ), # 30
    (31, TType.STRING, 'temporaryWorkingDirectory', None, None, ), # 31
    (32, TType.BOOL, 'backupScheduleEnabled', None, None, ), # 32
    (33, TType.I64, 'backupScheduleId', None, None, ), # 33
    None, # 34
    (35, TType.BOOL, 'accountMenuDisabled', None, None, ), # 35
    (36, TType.BOOL, 'autoRunTransformsDisabled', None, None, ), # 36
    (37, TType.STRING, 'instancePrefix', None, None, ), # 37
    (38, TType.STRING, 'hadoopJobHistoryHostname', None, None, ), # 38
    (39, TType.I32, 'hadoopJobHistoryPort', None, None, ), # 39
  )

  def __init__(self, settingsId=None, koverseBaseURL=None, smtpServerHostName=None, smtpServerPort=None, smtpUsername=None, smtpPassword=None, smtpFromEmailAddress=None, smtpConnectionType=None, ldapServerHostName=None, ldapServerPort=None, ldapBaseDN=None, hadoopNameNodeHostname=None, hadoopNameNodePort=None, hadoopJobTrackerHostname=None, hadoopJobTrackerPort=None, dataStoreType=None, authenticatorsEnabled=None, authenticatorSettings=None, authorizersEnabled=None, authorizerSettings=None, dataStoreSettings=None, lockDown=None, settingsSavedOnce=None, logoffDisabled=None, usersCanChangePassword=None, usersCanEditAccountDetails=None, resetToken=None, hdfsResourceDirectory=None, hadoopJobSettings=None, serializationMaxBufferSize=None, temporaryWorkingDirectory=None, backupScheduleEnabled=None, backupScheduleId=None, accountMenuDisabled=None, autoRunTransformsDisabled=None, instancePrefix=None, hadoopJobHistoryHostname=None, hadoopJobHistoryPort=None,):
    self.settingsId = settingsId
    self.koverseBaseURL = koverseBaseURL
    self.smtpServerHostName = smtpServerHostName
    self.smtpServerPort = smtpServerPort
    self.smtpUsername = smtpUsername
    self.smtpPassword = smtpPassword
    self.smtpFromEmailAddress = smtpFromEmailAddress
    self.smtpConnectionType = smtpConnectionType
    self.ldapServerHostName = ldapServerHostName
    self.ldapServerPort = ldapServerPort
    self.ldapBaseDN = ldapBaseDN
    self.hadoopNameNodeHostname = hadoopNameNodeHostname
    self.hadoopNameNodePort = hadoopNameNodePort
    self.hadoopJobTrackerHostname = hadoopJobTrackerHostname
    self.hadoopJobTrackerPort = hadoopJobTrackerPort
    self.dataStoreType = dataStoreType
    self.authenticatorsEnabled = authenticatorsEnabled
    self.authenticatorSettings = authenticatorSettings
    self.authorizersEnabled = authorizersEnabled
    self.authorizerSettings = authorizerSettings
    self.dataStoreSettings = dataStoreSettings
    self.lockDown = lockDown
    self.settingsSavedOnce = settingsSavedOnce
    self.logoffDisabled = logoffDisabled
    self.usersCanChangePassword = usersCanChangePassword
    self.usersCanEditAccountDetails = usersCanEditAccountDetails
    self.resetToken = resetToken
    self.hdfsResourceDirectory = hdfsResourceDirectory
    self.hadoopJobSettings = hadoopJobSettings
    self.serializationMaxBufferSize = serializationMaxBufferSize
    self.temporaryWorkingDirectory = temporaryWorkingDirectory
    self.backupScheduleEnabled = backupScheduleEnabled
    self.backupScheduleId = backupScheduleId
    self.accountMenuDisabled = accountMenuDisabled
    self.autoRunTransformsDisabled = autoRunTransformsDisabled
    self.instancePrefix = instancePrefix
    self.hadoopJobHistoryHostname = hadoopJobHistoryHostname
    self.hadoopJobHistoryPort = hadoopJobHistoryPort

  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.settingsId = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.koverseBaseURL = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.smtpServerHostName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I32:
          self.smtpServerPort = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.smtpUsername = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.STRING:
          self.smtpPassword = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.STRING:
          self.smtpFromEmailAddress = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.STRING:
          self.smtpConnectionType = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.STRING:
          self.ldapServerHostName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.I32:
          self.ldapServerPort = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.STRING:
          self.ldapBaseDN = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.STRING:
          self.hadoopNameNodeHostname = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.I32:
          self.hadoopNameNodePort = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.STRING:
          self.hadoopJobTrackerHostname = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 15:
        if ftype == TType.I32:
          self.hadoopJobTrackerPort = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 16:
        if ftype == TType.STRING:
          self.dataStoreType = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 17:
        if ftype == TType.STRING:
          self.authenticatorsEnabled = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 18:
        if ftype == TType.MAP:
          self.authenticatorSettings = {}
          (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
          for _i4 in xrange(_size0):
            _key5 = iprot.readString();
            _val6 = {}
            (_ktype8, _vtype9, _size7 ) = iprot.readMapBegin()
            for _i11 in xrange(_size7):
              _key12 = iprot.readString();
              _val13 = iprot.readString();
              _val6[_key12] = _val13
            iprot.readMapEnd()
            self.authenticatorSettings[_key5] = _val6
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 19:
        if ftype == TType.STRING:
          self.authorizersEnabled = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 20:
        if ftype == TType.MAP:
          self.authorizerSettings = {}
          (_ktype15, _vtype16, _size14 ) = iprot.readMapBegin()
          for _i18 in xrange(_size14):
            _key19 = iprot.readString();
            _val20 = {}
            (_ktype22, _vtype23, _size21 ) = iprot.readMapBegin()
            for _i25 in xrange(_size21):
              _key26 = iprot.readString();
              _val27 = iprot.readString();
              _val20[_key26] = _val27
            iprot.readMapEnd()
            self.authorizerSettings[_key19] = _val20
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 21:
        if ftype == TType.MAP:
          self.dataStoreSettings = {}
          (_ktype29, _vtype30, _size28 ) = iprot.readMapBegin()
          for _i32 in xrange(_size28):
            _key33 = iprot.readString();
            _val34 = iprot.readString();
            self.dataStoreSettings[_key33] = _val34
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 22:
        if ftype == TType.BOOL:
          self.lockDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 23:
        if ftype == TType.BOOL:
          self.settingsSavedOnce = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 24:
        if ftype == TType.BOOL:
          self.logoffDisabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 25:
        if ftype == TType.BOOL:
          self.usersCanChangePassword = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 26:
        if ftype == TType.BOOL:
          self.usersCanEditAccountDetails = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 27:
        if ftype == TType.STRING:
          self.resetToken = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 28:
        if ftype == TType.STRING:
          self.hdfsResourceDirectory = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 29:
        if ftype == TType.MAP:
          self.hadoopJobSettings = {}
          (_ktype36, _vtype37, _size35 ) = iprot.readMapBegin()
          for _i39 in xrange(_size35):
            _key40 = iprot.readString();
            _val41 = iprot.readString();
            self.hadoopJobSettings[_key40] = _val41
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 30:
        if ftype == TType.I32:
          self.serializationMaxBufferSize = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 31:
        if ftype == TType.STRING:
          self.temporaryWorkingDirectory = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 32:
        if ftype == TType.BOOL:
          self.backupScheduleEnabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 33:
        if ftype == TType.I64:
          self.backupScheduleId = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 35:
        if ftype == TType.BOOL:
          self.accountMenuDisabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 36:
        if ftype == TType.BOOL:
          self.autoRunTransformsDisabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 37:
        if ftype == TType.STRING:
          self.instancePrefix = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 38:
        if ftype == TType.STRING:
          self.hadoopJobHistoryHostname = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 39:
        if ftype == TType.I32:
          self.hadoopJobHistoryPort = 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('TSystemSettings')
    if self.settingsId is not None:
      oprot.writeFieldBegin('settingsId', TType.I32, 1)
      oprot.writeI32(self.settingsId)
      oprot.writeFieldEnd()
    if self.koverseBaseURL is not None:
      oprot.writeFieldBegin('koverseBaseURL', TType.STRING, 2)
      oprot.writeString(self.koverseBaseURL)
      oprot.writeFieldEnd()
    if self.smtpServerHostName is not None:
      oprot.writeFieldBegin('smtpServerHostName', TType.STRING, 3)
      oprot.writeString(self.smtpServerHostName)
      oprot.writeFieldEnd()
    if self.smtpServerPort is not None:
      oprot.writeFieldBegin('smtpServerPort', TType.I32, 4)
      oprot.writeI32(self.smtpServerPort)
      oprot.writeFieldEnd()
    if self.smtpUsername is not None:
      oprot.writeFieldBegin('smtpUsername', TType.STRING, 5)
      oprot.writeString(self.smtpUsername)
      oprot.writeFieldEnd()
    if self.smtpPassword is not None:
      oprot.writeFieldBegin('smtpPassword', TType.STRING, 6)
      oprot.writeString(self.smtpPassword)
      oprot.writeFieldEnd()
    if self.smtpFromEmailAddress is not None:
      oprot.writeFieldBegin('smtpFromEmailAddress', TType.STRING, 7)
      oprot.writeString(self.smtpFromEmailAddress)
      oprot.writeFieldEnd()
    if self.smtpConnectionType is not None:
      oprot.writeFieldBegin('smtpConnectionType', TType.STRING, 8)
      oprot.writeString(self.smtpConnectionType)
      oprot.writeFieldEnd()
    if self.ldapServerHostName is not None:
      oprot.writeFieldBegin('ldapServerHostName', TType.STRING, 9)
      oprot.writeString(self.ldapServerHostName)
      oprot.writeFieldEnd()
    if self.ldapServerPort is not None:
      oprot.writeFieldBegin('ldapServerPort', TType.I32, 10)
      oprot.writeI32(self.ldapServerPort)
      oprot.writeFieldEnd()
    if self.ldapBaseDN is not None:
      oprot.writeFieldBegin('ldapBaseDN', TType.STRING, 11)
      oprot.writeString(self.ldapBaseDN)
      oprot.writeFieldEnd()
    if self.hadoopNameNodeHostname is not None:
      oprot.writeFieldBegin('hadoopNameNodeHostname', TType.STRING, 12)
      oprot.writeString(self.hadoopNameNodeHostname)
      oprot.writeFieldEnd()
    if self.hadoopNameNodePort is not None:
      oprot.writeFieldBegin('hadoopNameNodePort', TType.I32, 13)
      oprot.writeI32(self.hadoopNameNodePort)
      oprot.writeFieldEnd()
    if self.hadoopJobTrackerHostname is not None:
      oprot.writeFieldBegin('hadoopJobTrackerHostname', TType.STRING, 14)
      oprot.writeString(self.hadoopJobTrackerHostname)
      oprot.writeFieldEnd()
    if self.hadoopJobTrackerPort is not None:
      oprot.writeFieldBegin('hadoopJobTrackerPort', TType.I32, 15)
      oprot.writeI32(self.hadoopJobTrackerPort)
      oprot.writeFieldEnd()
    if self.dataStoreType is not None:
      oprot.writeFieldBegin('dataStoreType', TType.STRING, 16)
      oprot.writeString(self.dataStoreType)
      oprot.writeFieldEnd()
    if self.authenticatorsEnabled is not None:
      oprot.writeFieldBegin('authenticatorsEnabled', TType.STRING, 17)
      oprot.writeString(self.authenticatorsEnabled)
      oprot.writeFieldEnd()
    if self.authenticatorSettings is not None:
      oprot.writeFieldBegin('authenticatorSettings', TType.MAP, 18)
      oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.authenticatorSettings))
      for kiter42,viter43 in self.authenticatorSettings.items():
        oprot.writeString(kiter42)
        oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter43))
        for kiter44,viter45 in viter43.items():
          oprot.writeString(kiter44)
          oprot.writeString(viter45)
        oprot.writeMapEnd()
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.authorizersEnabled is not None:
      oprot.writeFieldBegin('authorizersEnabled', TType.STRING, 19)
      oprot.writeString(self.authorizersEnabled)
      oprot.writeFieldEnd()
    if self.authorizerSettings is not None:
      oprot.writeFieldBegin('authorizerSettings', TType.MAP, 20)
      oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.authorizerSettings))
      for kiter46,viter47 in self.authorizerSettings.items():
        oprot.writeString(kiter46)
        oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter47))
        for kiter48,viter49 in viter47.items():
          oprot.writeString(kiter48)
          oprot.writeString(viter49)
        oprot.writeMapEnd()
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.dataStoreSettings is not None:
      oprot.writeFieldBegin('dataStoreSettings', TType.MAP, 21)
      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.dataStoreSettings))
      for kiter50,viter51 in self.dataStoreSettings.items():
        oprot.writeString(kiter50)
        oprot.writeString(viter51)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.lockDown is not None:
      oprot.writeFieldBegin('lockDown', TType.BOOL, 22)
      oprot.writeBool(self.lockDown)
      oprot.writeFieldEnd()
    if self.settingsSavedOnce is not None:
      oprot.writeFieldBegin('settingsSavedOnce', TType.BOOL, 23)
      oprot.writeBool(self.settingsSavedOnce)
      oprot.writeFieldEnd()
    if self.logoffDisabled is not None:
      oprot.writeFieldBegin('logoffDisabled', TType.BOOL, 24)
      oprot.writeBool(self.logoffDisabled)
      oprot.writeFieldEnd()
    if self.usersCanChangePassword is not None:
      oprot.writeFieldBegin('usersCanChangePassword', TType.BOOL, 25)
      oprot.writeBool(self.usersCanChangePassword)
      oprot.writeFieldEnd()
    if self.usersCanEditAccountDetails is not None:
      oprot.writeFieldBegin('usersCanEditAccountDetails', TType.BOOL, 26)
      oprot.writeBool(self.usersCanEditAccountDetails)
      oprot.writeFieldEnd()
    if self.resetToken is not None:
      oprot.writeFieldBegin('resetToken', TType.STRING, 27)
      oprot.writeString(self.resetToken)
      oprot.writeFieldEnd()
    if self.hdfsResourceDirectory is not None:
      oprot.writeFieldBegin('hdfsResourceDirectory', TType.STRING, 28)
      oprot.writeString(self.hdfsResourceDirectory)
      oprot.writeFieldEnd()
    if self.hadoopJobSettings is not None:
      oprot.writeFieldBegin('hadoopJobSettings', TType.MAP, 29)
      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.hadoopJobSettings))
      for kiter52,viter53 in self.hadoopJobSettings.items():
        oprot.writeString(kiter52)
        oprot.writeString(viter53)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.serializationMaxBufferSize is not None:
      oprot.writeFieldBegin('serializationMaxBufferSize', TType.I32, 30)
      oprot.writeI32(self.serializationMaxBufferSize)
      oprot.writeFieldEnd()
    if self.temporaryWorkingDirectory is not None:
      oprot.writeFieldBegin('temporaryWorkingDirectory', TType.STRING, 31)
      oprot.writeString(self.temporaryWorkingDirectory)
      oprot.writeFieldEnd()
    if self.backupScheduleEnabled is not None:
      oprot.writeFieldBegin('backupScheduleEnabled', TType.BOOL, 32)
      oprot.writeBool(self.backupScheduleEnabled)
      oprot.writeFieldEnd()
    if self.backupScheduleId is not None:
      oprot.writeFieldBegin('backupScheduleId', TType.I64, 33)
      oprot.writeI64(self.backupScheduleId)
      oprot.writeFieldEnd()
    if self.accountMenuDisabled is not None:
      oprot.writeFieldBegin('accountMenuDisabled', TType.BOOL, 35)
      oprot.writeBool(self.accountMenuDisabled)
      oprot.writeFieldEnd()
    if self.autoRunTransformsDisabled is not None:
      oprot.writeFieldBegin('autoRunTransformsDisabled', TType.BOOL, 36)
      oprot.writeBool(self.autoRunTransformsDisabled)
      oprot.writeFieldEnd()
    if self.instancePrefix is not None:
      oprot.writeFieldBegin('instancePrefix', TType.STRING, 37)
      oprot.writeString(self.instancePrefix)
      oprot.writeFieldEnd()
    if self.hadoopJobHistoryHostname is not None:
      oprot.writeFieldBegin('hadoopJobHistoryHostname', TType.STRING, 38)
      oprot.writeString(self.hadoopJobHistoryHostname)
      oprot.writeFieldEnd()
    if self.hadoopJobHistoryPort is not None:
      oprot.writeFieldBegin('hadoopJobHistoryPort', TType.I32, 39)
      oprot.writeI32(self.hadoopJobHistoryPort)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TDataStoreDescriptor:
  """
  Attributes:
   - name
   - storeTypeId
   - implementationClassName
   - description
   - parameters
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'name', None, None, ), # 1
    (2, TType.STRING, 'storeTypeId', None, None, ), # 2
    (3, TType.STRING, 'implementationClassName', None, None, ), # 3
    (4, TType.STRING, 'description', None, None, ), # 4
    (5, TType.LIST, 'parameters', (TType.STRUCT,(koverse.thriftgen.ttypes.TParameter, koverse.thriftgen.ttypes.TParameter.thrift_spec)), None, ), # 5
  )

  def __init__(self, name=None, storeTypeId=None, implementationClassName=None, description=None, parameters=None,):
    self.name = name
    self.storeTypeId = storeTypeId
    self.implementationClassName = implementationClassName
    self.description = description
    self.parameters = parameters

  def read(self, iprot):
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
      return
    iprot.readStructBegin()
    while True:
      (fname, ftype, fid) = iprot.readFieldBegin()
      if ftype == TType.STOP:
        break
      if fid == 1:
        if ftype == TType.STRING:
          self.name = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.storeTypeId = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.STRING:
          self.implementationClassName = 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.LIST:
          self.parameters = []
          (_etype57, _size54) = iprot.readListBegin()
          for _i58 in xrange(_size54):
            _elem59 = koverse.thriftgen.ttypes.TParameter()
            _elem59.read(iprot)
            self.parameters.append(_elem59)
          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('TDataStoreDescriptor')
    if self.name is not None:
      oprot.writeFieldBegin('name', TType.STRING, 1)
      oprot.writeString(self.name)
      oprot.writeFieldEnd()
    if self.storeTypeId is not None:
      oprot.writeFieldBegin('storeTypeId', TType.STRING, 2)
      oprot.writeString(self.storeTypeId)
      oprot.writeFieldEnd()
    if self.implementationClassName is not None:
      oprot.writeFieldBegin('implementationClassName', TType.STRING, 3)
      oprot.writeString(self.implementationClassName)
      oprot.writeFieldEnd()
    if self.description is not None:
      oprot.writeFieldBegin('description', TType.STRING, 4)
      oprot.writeString(self.description)
      oprot.writeFieldEnd()
    if self.parameters is not None:
      oprot.writeFieldBegin('parameters', TType.LIST, 5)
      oprot.writeListBegin(TType.STRUCT, len(self.parameters))
      for iter60 in self.parameters:
        iter60.write(oprot)
      oprot.writeListEnd()
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TNodeInfo:
  """
  Attributes:
   - info
  """

  thrift_spec = (
    None, # 0
    (1, TType.MAP, 'info', (TType.STRING,None,TType.MAP,(TType.STRING,None,TType.STRING,None)), None, ), # 1
  )

  def __init__(self, info=None,):
    self.info = info

  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.MAP:
          self.info = {}
          (_ktype62, _vtype63, _size61 ) = iprot.readMapBegin()
          for _i65 in xrange(_size61):
            _key66 = iprot.readString();
            _val67 = {}
            (_ktype69, _vtype70, _size68 ) = iprot.readMapBegin()
            for _i72 in xrange(_size68):
              _key73 = iprot.readString();
              _val74 = iprot.readString();
              _val67[_key73] = _val74
            iprot.readMapEnd()
            self.info[_key66] = _val67
          iprot.readMapEnd()
        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('TNodeInfo')
    if self.info is not None:
      oprot.writeFieldBegin('info', TType.MAP, 1)
      oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.info))
      for kiter75,viter76 in self.info.items():
        oprot.writeString(kiter75)
        oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter76))
        for kiter77,viter78 in viter76.items():
          oprot.writeString(kiter77)
          oprot.writeString(viter78)
        oprot.writeMapEnd()
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class THeapMemoryUsage:
  """
  Attributes:
   - max
   - committed
   - init
   - used
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'max', None, None, ), # 1
    (2, TType.I64, 'committed', None, None, ), # 2
    (3, TType.I64, 'init', None, None, ), # 3
    (4, TType.I64, 'used', None, None, ), # 4
  )

  def __init__(self, max=None, committed=None, init=None, used=None,):
    self.max = max
    self.committed = committed
    self.init = init
    self.used = used

  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.I64:
          self.max = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.committed = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.init = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.used = 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('THeapMemoryUsage')
    if self.max is not None:
      oprot.writeFieldBegin('max', TType.I64, 1)
      oprot.writeI64(self.max)
      oprot.writeFieldEnd()
    if self.committed is not None:
      oprot.writeFieldBegin('committed', TType.I64, 2)
      oprot.writeI64(self.committed)
      oprot.writeFieldEnd()
    if self.init is not None:
      oprot.writeFieldBegin('init', TType.I64, 3)
      oprot.writeI64(self.init)
      oprot.writeFieldEnd()
    if self.used is not None:
      oprot.writeFieldBegin('used', TType.I64, 4)
      oprot.writeI64(self.used)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TJobInfo:
  """
  Attributes:
   - jobId
   - failureInfo
   - userName
   - overallProgress
   - mapProgress
   - reduceProgress
   - cleanupProgress
   - priority
   - startTimestamp
   - complete
   - runState
   - type
   - name
   - colletionIds
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'jobId', None, None, ), # 1
    (2, TType.STRING, 'failureInfo', None, None, ), # 2
    (3, TType.STRING, 'userName', None, None, ), # 3
    (4, TType.DOUBLE, 'overallProgress', None, None, ), # 4
    (5, TType.DOUBLE, 'mapProgress', None, None, ), # 5
    (6, TType.DOUBLE, 'reduceProgress', None, None, ), # 6
    (7, TType.DOUBLE, 'cleanupProgress', None, None, ), # 7
    (8, TType.STRING, 'priority', None, None, ), # 8
    (9, TType.I64, 'startTimestamp', None, None, ), # 9
    (10, TType.BOOL, 'complete', None, None, ), # 10
    (11, TType.I32, 'runState', None, None, ), # 11
    (12, TType.STRING, 'type', None, None, ), # 12
    (13, TType.STRING, 'name', None, None, ), # 13
    (14, TType.LIST, 'colletionIds', (TType.STRING,None), None, ), # 14
  )

  def __init__(self, jobId=None, failureInfo=None, userName=None, overallProgress=None, mapProgress=None, reduceProgress=None, cleanupProgress=None, priority=None, startTimestamp=None, complete=None, runState=None, type=None, name=None, colletionIds=None,):
    self.jobId = jobId
    self.failureInfo = failureInfo
    self.userName = userName
    self.overallProgress = overallProgress
    self.mapProgress = mapProgress
    self.reduceProgress = reduceProgress
    self.cleanupProgress = cleanupProgress
    self.priority = priority
    self.startTimestamp = startTimestamp
    self.complete = complete
    self.runState = runState
    self.type = type
    self.name = name
    self.colletionIds = colletionIds

  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.jobId = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.failureInfo = 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.DOUBLE:
          self.overallProgress = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.DOUBLE:
          self.mapProgress = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.DOUBLE:
          self.reduceProgress = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.DOUBLE:
          self.cleanupProgress = iprot.readDouble();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.STRING:
          self.priority = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.startTimestamp = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.BOOL:
          self.complete = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.I32:
          self.runState = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.STRING:
          self.type = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.STRING:
          self.name = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.LIST:
          self.colletionIds = []
          (_etype82, _size79) = iprot.readListBegin()
          for _i83 in xrange(_size79):
            _elem84 = iprot.readString();
            self.colletionIds.append(_elem84)
          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('TJobInfo')
    if self.jobId is not None:
      oprot.writeFieldBegin('jobId', TType.STRING, 1)
      oprot.writeString(self.jobId)
      oprot.writeFieldEnd()
    if self.failureInfo is not None:
      oprot.writeFieldBegin('failureInfo', TType.STRING, 2)
      oprot.writeString(self.failureInfo)
      oprot.writeFieldEnd()
    if self.userName is not None:
      oprot.writeFieldBegin('userName', TType.STRING, 3)
      oprot.writeString(self.userName)
      oprot.writeFieldEnd()
    if self.overallProgress is not None:
      oprot.writeFieldBegin('overallProgress', TType.DOUBLE, 4)
      oprot.writeDouble(self.overallProgress)
      oprot.writeFieldEnd()
    if self.mapProgress is not None:
      oprot.writeFieldBegin('mapProgress', TType.DOUBLE, 5)
      oprot.writeDouble(self.mapProgress)
      oprot.writeFieldEnd()
    if self.reduceProgress is not None:
      oprot.writeFieldBegin('reduceProgress', TType.DOUBLE, 6)
      oprot.writeDouble(self.reduceProgress)
      oprot.writeFieldEnd()
    if self.cleanupProgress is not None:
      oprot.writeFieldBegin('cleanupProgress', TType.DOUBLE, 7)
      oprot.writeDouble(self.cleanupProgress)
      oprot.writeFieldEnd()
    if self.priority is not None:
      oprot.writeFieldBegin('priority', TType.STRING, 8)
      oprot.writeString(self.priority)
      oprot.writeFieldEnd()
    if self.startTimestamp is not None:
      oprot.writeFieldBegin('startTimestamp', TType.I64, 9)
      oprot.writeI64(self.startTimestamp)
      oprot.writeFieldEnd()
    if self.complete is not None:
      oprot.writeFieldBegin('complete', TType.BOOL, 10)
      oprot.writeBool(self.complete)
      oprot.writeFieldEnd()
    if self.runState is not None:
      oprot.writeFieldBegin('runState', TType.I32, 11)
      oprot.writeI32(self.runState)
      oprot.writeFieldEnd()
    if self.type is not None:
      oprot.writeFieldBegin('type', TType.STRING, 12)
      oprot.writeString(self.type)
      oprot.writeFieldEnd()
    if self.name is not None:
      oprot.writeFieldBegin('name', TType.STRING, 13)
      oprot.writeString(self.name)
      oprot.writeFieldEnd()
    if self.colletionIds is not None:
      oprot.writeFieldBegin('colletionIds', TType.LIST, 14)
      oprot.writeListBegin(TType.STRING, len(self.colletionIds))
      for iter85 in self.colletionIds:
        oprot.writeString(iter85)
      oprot.writeListEnd()
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class THdfsInfo:
  """
  Attributes:
   - numCorruptBlocks
   - blockSize
   - numMissingBlocks
   - numUnderReplicatedBlocks
   - nodeInfo
   - defaultReplicationFactor
   - capacityInBytes
   - usedBytes
   - remainingBytes
   - inSafeMode
   - nameNodeState
   - nameNodeHeapMemoryUsage
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'numCorruptBlocks', None, None, ), # 1
    (2, TType.I64, 'blockSize', None, None, ), # 2
    (3, TType.I64, 'numMissingBlocks', None, None, ), # 3
    (4, TType.I64, 'numUnderReplicatedBlocks', None, None, ), # 4
    (5, TType.STRUCT, 'nodeInfo', (TNodeInfo, TNodeInfo.thrift_spec), None, ), # 5
    (6, TType.I16, 'defaultReplicationFactor', None, None, ), # 6
    (7, TType.I64, 'capacityInBytes', None, None, ), # 7
    (8, TType.I64, 'usedBytes', None, None, ), # 8
    (9, TType.I64, 'remainingBytes', None, None, ), # 9
    (10, TType.BOOL, 'inSafeMode', None, None, ), # 10
    (11, TType.STRING, 'nameNodeState', None, None, ), # 11
    (12, TType.STRUCT, 'nameNodeHeapMemoryUsage', (THeapMemoryUsage, THeapMemoryUsage.thrift_spec), None, ), # 12
  )

  def __init__(self, numCorruptBlocks=None, blockSize=None, numMissingBlocks=None, numUnderReplicatedBlocks=None, nodeInfo=None, defaultReplicationFactor=None, capacityInBytes=None, usedBytes=None, remainingBytes=None, inSafeMode=None, nameNodeState=None, nameNodeHeapMemoryUsage=None,):
    self.numCorruptBlocks = numCorruptBlocks
    self.blockSize = blockSize
    self.numMissingBlocks = numMissingBlocks
    self.numUnderReplicatedBlocks = numUnderReplicatedBlocks
    self.nodeInfo = nodeInfo
    self.defaultReplicationFactor = defaultReplicationFactor
    self.capacityInBytes = capacityInBytes
    self.usedBytes = usedBytes
    self.remainingBytes = remainingBytes
    self.inSafeMode = inSafeMode
    self.nameNodeState = nameNodeState
    self.nameNodeHeapMemoryUsage = nameNodeHeapMemoryUsage

  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.I64:
          self.numCorruptBlocks = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I64:
          self.blockSize = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.numMissingBlocks = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I64:
          self.numUnderReplicatedBlocks = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRUCT:
          self.nodeInfo = TNodeInfo()
          self.nodeInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I16:
          self.defaultReplicationFactor = iprot.readI16();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I64:
          self.capacityInBytes = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.usedBytes = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I64:
          self.remainingBytes = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.BOOL:
          self.inSafeMode = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.STRING:
          self.nameNodeState = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.STRUCT:
          self.nameNodeHeapMemoryUsage = THeapMemoryUsage()
          self.nameNodeHeapMemoryUsage.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('THdfsInfo')
    if self.numCorruptBlocks is not None:
      oprot.writeFieldBegin('numCorruptBlocks', TType.I64, 1)
      oprot.writeI64(self.numCorruptBlocks)
      oprot.writeFieldEnd()
    if self.blockSize is not None:
      oprot.writeFieldBegin('blockSize', TType.I64, 2)
      oprot.writeI64(self.blockSize)
      oprot.writeFieldEnd()
    if self.numMissingBlocks is not None:
      oprot.writeFieldBegin('numMissingBlocks', TType.I64, 3)
      oprot.writeI64(self.numMissingBlocks)
      oprot.writeFieldEnd()
    if self.numUnderReplicatedBlocks is not None:
      oprot.writeFieldBegin('numUnderReplicatedBlocks', TType.I64, 4)
      oprot.writeI64(self.numUnderReplicatedBlocks)
      oprot.writeFieldEnd()
    if self.nodeInfo is not None:
      oprot.writeFieldBegin('nodeInfo', TType.STRUCT, 5)
      self.nodeInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.defaultReplicationFactor is not None:
      oprot.writeFieldBegin('defaultReplicationFactor', TType.I16, 6)
      oprot.writeI16(self.defaultReplicationFactor)
      oprot.writeFieldEnd()
    if self.capacityInBytes is not None:
      oprot.writeFieldBegin('capacityInBytes', TType.I64, 7)
      oprot.writeI64(self.capacityInBytes)
      oprot.writeFieldEnd()
    if self.usedBytes is not None:
      oprot.writeFieldBegin('usedBytes', TType.I64, 8)
      oprot.writeI64(self.usedBytes)
      oprot.writeFieldEnd()
    if self.remainingBytes is not None:
      oprot.writeFieldBegin('remainingBytes', TType.I64, 9)
      oprot.writeI64(self.remainingBytes)
      oprot.writeFieldEnd()
    if self.inSafeMode is not None:
      oprot.writeFieldBegin('inSafeMode', TType.BOOL, 10)
      oprot.writeBool(self.inSafeMode)
      oprot.writeFieldEnd()
    if self.nameNodeState is not None:
      oprot.writeFieldBegin('nameNodeState', TType.STRING, 11)
      oprot.writeString(self.nameNodeState)
      oprot.writeFieldEnd()
    if self.nameNodeHeapMemoryUsage is not None:
      oprot.writeFieldBegin('nameNodeHeapMemoryUsage', TType.STRUCT, 12)
      self.nameNodeHeapMemoryUsage.write(oprot)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TMapReduceInfo:
  """
  Attributes:
   - numRunningMapTasks
   - numRunningReduceTasks
   - maximumMapTasks
   - maximumReduceTasks
   - maximumMemoryInBytes
   - expirationIntervalInMs
   - numExcludedTrackers
   - numTrackers
   - numTotalJobs
   - jobInfos
   - nodeInfo
   - jobTrackerState
  """

  thrift_spec = (
    None, # 0
    (1, TType.I32, 'numRunningMapTasks', None, None, ), # 1
    (2, TType.I32, 'numRunningReduceTasks', None, None, ), # 2
    (3, TType.I32, 'maximumMapTasks', None, None, ), # 3
    (4, TType.I32, 'maximumReduceTasks', None, None, ), # 4
    (5, TType.I64, 'maximumMemoryInBytes', None, None, ), # 5
    (6, TType.I64, 'expirationIntervalInMs', None, None, ), # 6
    (7, TType.I32, 'numExcludedTrackers', None, None, ), # 7
    (8, TType.I32, 'numTrackers', None, None, ), # 8
    (9, TType.I32, 'numTotalJobs', None, None, ), # 9
    (10, TType.LIST, 'jobInfos', (TType.STRUCT,(TJobInfo, TJobInfo.thrift_spec)), None, ), # 10
    (11, TType.STRUCT, 'nodeInfo', (TNodeInfo, TNodeInfo.thrift_spec), None, ), # 11
    (12, TType.STRING, 'jobTrackerState', None, None, ), # 12
  )

  def __init__(self, numRunningMapTasks=None, numRunningReduceTasks=None, maximumMapTasks=None, maximumReduceTasks=None, maximumMemoryInBytes=None, expirationIntervalInMs=None, numExcludedTrackers=None, numTrackers=None, numTotalJobs=None, jobInfos=None, nodeInfo=None, jobTrackerState=None,):
    self.numRunningMapTasks = numRunningMapTasks
    self.numRunningReduceTasks = numRunningReduceTasks
    self.maximumMapTasks = maximumMapTasks
    self.maximumReduceTasks = maximumReduceTasks
    self.maximumMemoryInBytes = maximumMemoryInBytes
    self.expirationIntervalInMs = expirationIntervalInMs
    self.numExcludedTrackers = numExcludedTrackers
    self.numTrackers = numTrackers
    self.numTotalJobs = numTotalJobs
    self.jobInfos = jobInfos
    self.nodeInfo = nodeInfo
    self.jobTrackerState = jobTrackerState

  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.numRunningMapTasks = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.I32:
          self.numRunningReduceTasks = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I32:
          self.maximumMapTasks = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.I32:
          self.maximumReduceTasks = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.I64:
          self.maximumMemoryInBytes = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.I64:
          self.expirationIntervalInMs = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.I32:
          self.numExcludedTrackers = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I32:
          self.numTrackers = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.I32:
          self.numTotalJobs = iprot.readI32();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.LIST:
          self.jobInfos = []
          (_etype89, _size86) = iprot.readListBegin()
          for _i90 in xrange(_size86):
            _elem91 = TJobInfo()
            _elem91.read(iprot)
            self.jobInfos.append(_elem91)
          iprot.readListEnd()
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.STRUCT:
          self.nodeInfo = TNodeInfo()
          self.nodeInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.STRING:
          self.jobTrackerState = 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('TMapReduceInfo')
    if self.numRunningMapTasks is not None:
      oprot.writeFieldBegin('numRunningMapTasks', TType.I32, 1)
      oprot.writeI32(self.numRunningMapTasks)
      oprot.writeFieldEnd()
    if self.numRunningReduceTasks is not None:
      oprot.writeFieldBegin('numRunningReduceTasks', TType.I32, 2)
      oprot.writeI32(self.numRunningReduceTasks)
      oprot.writeFieldEnd()
    if self.maximumMapTasks is not None:
      oprot.writeFieldBegin('maximumMapTasks', TType.I32, 3)
      oprot.writeI32(self.maximumMapTasks)
      oprot.writeFieldEnd()
    if self.maximumReduceTasks is not None:
      oprot.writeFieldBegin('maximumReduceTasks', TType.I32, 4)
      oprot.writeI32(self.maximumReduceTasks)
      oprot.writeFieldEnd()
    if self.maximumMemoryInBytes is not None:
      oprot.writeFieldBegin('maximumMemoryInBytes', TType.I64, 5)
      oprot.writeI64(self.maximumMemoryInBytes)
      oprot.writeFieldEnd()
    if self.expirationIntervalInMs is not None:
      oprot.writeFieldBegin('expirationIntervalInMs', TType.I64, 6)
      oprot.writeI64(self.expirationIntervalInMs)
      oprot.writeFieldEnd()
    if self.numExcludedTrackers is not None:
      oprot.writeFieldBegin('numExcludedTrackers', TType.I32, 7)
      oprot.writeI32(self.numExcludedTrackers)
      oprot.writeFieldEnd()
    if self.numTrackers is not None:
      oprot.writeFieldBegin('numTrackers', TType.I32, 8)
      oprot.writeI32(self.numTrackers)
      oprot.writeFieldEnd()
    if self.numTotalJobs is not None:
      oprot.writeFieldBegin('numTotalJobs', TType.I32, 9)
      oprot.writeI32(self.numTotalJobs)
      oprot.writeFieldEnd()
    if self.jobInfos is not None:
      oprot.writeFieldBegin('jobInfos', TType.LIST, 10)
      oprot.writeListBegin(TType.STRUCT, len(self.jobInfos))
      for iter92 in self.jobInfos:
        iter92.write(oprot)
      oprot.writeListEnd()
      oprot.writeFieldEnd()
    if self.nodeInfo is not None:
      oprot.writeFieldBegin('nodeInfo', TType.STRUCT, 11)
      self.nodeInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.jobTrackerState is not None:
      oprot.writeFieldBegin('jobTrackerState', TType.STRING, 12)
      oprot.writeString(self.jobTrackerState)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TDataStoreInfo:
  """
  Attributes:
   - dataStats
   - nodeInfo
   - instanceInfo
  """

  thrift_spec = (
    None, # 0
    (1, TType.MAP, 'dataStats', (TType.STRING,None,TType.DOUBLE,None), None, ), # 1
    (2, TType.STRUCT, 'nodeInfo', (TNodeInfo, TNodeInfo.thrift_spec), None, ), # 2
    (3, TType.MAP, 'instanceInfo', (TType.STRING,None,TType.STRING,None), None, ), # 3
  )

  def __init__(self, dataStats=None, nodeInfo=None, instanceInfo=None,):
    self.dataStats = dataStats
    self.nodeInfo = nodeInfo
    self.instanceInfo = instanceInfo

  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.MAP:
          self.dataStats = {}
          (_ktype94, _vtype95, _size93 ) = iprot.readMapBegin()
          for _i97 in xrange(_size93):
            _key98 = iprot.readString();
            _val99 = iprot.readDouble();
            self.dataStats[_key98] = _val99
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRUCT:
          self.nodeInfo = TNodeInfo()
          self.nodeInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.MAP:
          self.instanceInfo = {}
          (_ktype101, _vtype102, _size100 ) = iprot.readMapBegin()
          for _i104 in xrange(_size100):
            _key105 = iprot.readString();
            _val106 = iprot.readString();
            self.instanceInfo[_key105] = _val106
          iprot.readMapEnd()
        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('TDataStoreInfo')
    if self.dataStats is not None:
      oprot.writeFieldBegin('dataStats', TType.MAP, 1)
      oprot.writeMapBegin(TType.STRING, TType.DOUBLE, len(self.dataStats))
      for kiter107,viter108 in self.dataStats.items():
        oprot.writeString(kiter107)
        oprot.writeDouble(viter108)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.nodeInfo is not None:
      oprot.writeFieldBegin('nodeInfo', TType.STRUCT, 2)
      self.nodeInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.instanceInfo is not None:
      oprot.writeFieldBegin('instanceInfo', TType.MAP, 3)
      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.instanceInfo))
      for kiter109,viter110 in self.instanceInfo.items():
        oprot.writeString(kiter109)
        oprot.writeString(viter110)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TSystemStatus:
  """
  Attributes:
   - koverseVersion
   - koverseRevision
   - koverseBuildTimestamp
   - hdfsInfo
   - mapReduceInfo
   - dataStoreInfo
   - logoffDisabled
   - usersCanChangePassword
   - usersCanEditAccountDetails
   - lockedDown
   - systemSettingsSavedOnce
   - dataStats
   - hardwareStats
   - nodeInfo
   - dataStoreConnectionDown
   - hdfsConnectionDown
   - managementDatabaseConnectionDown
   - jobTrackerConnectionDown
   - systemStartTimestamp
   - systemTimestampNow
   - autoRunTransformsDisabled
   - accountMenuDisabled
  """

  thrift_spec = (
    None, # 0
    (1, TType.STRING, 'koverseVersion', None, None, ), # 1
    (2, TType.STRING, 'koverseRevision', None, None, ), # 2
    (3, TType.I64, 'koverseBuildTimestamp', None, None, ), # 3
    (4, TType.STRUCT, 'hdfsInfo', (THdfsInfo, THdfsInfo.thrift_spec), None, ), # 4
    (5, TType.STRUCT, 'mapReduceInfo', (TMapReduceInfo, TMapReduceInfo.thrift_spec), None, ), # 5
    (6, TType.STRUCT, 'dataStoreInfo', (TDataStoreInfo, TDataStoreInfo.thrift_spec), None, ), # 6
    (7, TType.BOOL, 'logoffDisabled', None, None, ), # 7
    (8, TType.BOOL, 'usersCanChangePassword', None, None, ), # 8
    (9, TType.BOOL, 'usersCanEditAccountDetails', None, None, ), # 9
    (10, TType.BOOL, 'lockedDown', None, None, ), # 10
    (11, TType.BOOL, 'systemSettingsSavedOnce', None, None, ), # 11
    (12, TType.MAP, 'dataStats', (TType.STRING,None,TType.DOUBLE,None), None, ), # 12
    (13, TType.MAP, 'hardwareStats', (TType.STRING,None,TType.DOUBLE,None), None, ), # 13
    (14, TType.STRUCT, 'nodeInfo', (TNodeInfo, TNodeInfo.thrift_spec), None, ), # 14
    (15, TType.BOOL, 'dataStoreConnectionDown', None, None, ), # 15
    (16, TType.BOOL, 'hdfsConnectionDown', None, None, ), # 16
    (17, TType.BOOL, 'managementDatabaseConnectionDown', None, None, ), # 17
    (18, TType.BOOL, 'jobTrackerConnectionDown', None, None, ), # 18
    (19, TType.I64, 'systemStartTimestamp', None, None, ), # 19
    (20, TType.I64, 'systemTimestampNow', None, None, ), # 20
    (21, TType.BOOL, 'autoRunTransformsDisabled', None, None, ), # 21
    (22, TType.BOOL, 'accountMenuDisabled', None, None, ), # 22
  )

  def __init__(self, koverseVersion=None, koverseRevision=None, koverseBuildTimestamp=None, hdfsInfo=None, mapReduceInfo=None, dataStoreInfo=None, logoffDisabled=None, usersCanChangePassword=None, usersCanEditAccountDetails=None, lockedDown=None, systemSettingsSavedOnce=None, dataStats=None, hardwareStats=None, nodeInfo=None, dataStoreConnectionDown=None, hdfsConnectionDown=None, managementDatabaseConnectionDown=None, jobTrackerConnectionDown=None, systemStartTimestamp=None, systemTimestampNow=None, autoRunTransformsDisabled=None, accountMenuDisabled=None,):
    self.koverseVersion = koverseVersion
    self.koverseRevision = koverseRevision
    self.koverseBuildTimestamp = koverseBuildTimestamp
    self.hdfsInfo = hdfsInfo
    self.mapReduceInfo = mapReduceInfo
    self.dataStoreInfo = dataStoreInfo
    self.logoffDisabled = logoffDisabled
    self.usersCanChangePassword = usersCanChangePassword
    self.usersCanEditAccountDetails = usersCanEditAccountDetails
    self.lockedDown = lockedDown
    self.systemSettingsSavedOnce = systemSettingsSavedOnce
    self.dataStats = dataStats
    self.hardwareStats = hardwareStats
    self.nodeInfo = nodeInfo
    self.dataStoreConnectionDown = dataStoreConnectionDown
    self.hdfsConnectionDown = hdfsConnectionDown
    self.managementDatabaseConnectionDown = managementDatabaseConnectionDown
    self.jobTrackerConnectionDown = jobTrackerConnectionDown
    self.systemStartTimestamp = systemStartTimestamp
    self.systemTimestampNow = systemTimestampNow
    self.autoRunTransformsDisabled = autoRunTransformsDisabled
    self.accountMenuDisabled = accountMenuDisabled

  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.koverseVersion = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.koverseRevision = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 3:
        if ftype == TType.I64:
          self.koverseBuildTimestamp = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 4:
        if ftype == TType.STRUCT:
          self.hdfsInfo = THdfsInfo()
          self.hdfsInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRUCT:
          self.mapReduceInfo = TMapReduceInfo()
          self.mapReduceInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.STRUCT:
          self.dataStoreInfo = TDataStoreInfo()
          self.dataStoreInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.BOOL:
          self.logoffDisabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.BOOL:
          self.usersCanChangePassword = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 9:
        if ftype == TType.BOOL:
          self.usersCanEditAccountDetails = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 10:
        if ftype == TType.BOOL:
          self.lockedDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 11:
        if ftype == TType.BOOL:
          self.systemSettingsSavedOnce = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 12:
        if ftype == TType.MAP:
          self.dataStats = {}
          (_ktype112, _vtype113, _size111 ) = iprot.readMapBegin()
          for _i115 in xrange(_size111):
            _key116 = iprot.readString();
            _val117 = iprot.readDouble();
            self.dataStats[_key116] = _val117
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 13:
        if ftype == TType.MAP:
          self.hardwareStats = {}
          (_ktype119, _vtype120, _size118 ) = iprot.readMapBegin()
          for _i122 in xrange(_size118):
            _key123 = iprot.readString();
            _val124 = iprot.readDouble();
            self.hardwareStats[_key123] = _val124
          iprot.readMapEnd()
        else:
          iprot.skip(ftype)
      elif fid == 14:
        if ftype == TType.STRUCT:
          self.nodeInfo = TNodeInfo()
          self.nodeInfo.read(iprot)
        else:
          iprot.skip(ftype)
      elif fid == 15:
        if ftype == TType.BOOL:
          self.dataStoreConnectionDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 16:
        if ftype == TType.BOOL:
          self.hdfsConnectionDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 17:
        if ftype == TType.BOOL:
          self.managementDatabaseConnectionDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 18:
        if ftype == TType.BOOL:
          self.jobTrackerConnectionDown = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 19:
        if ftype == TType.I64:
          self.systemStartTimestamp = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 20:
        if ftype == TType.I64:
          self.systemTimestampNow = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 21:
        if ftype == TType.BOOL:
          self.autoRunTransformsDisabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 22:
        if ftype == TType.BOOL:
          self.accountMenuDisabled = iprot.readBool();
        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('TSystemStatus')
    if self.koverseVersion is not None:
      oprot.writeFieldBegin('koverseVersion', TType.STRING, 1)
      oprot.writeString(self.koverseVersion)
      oprot.writeFieldEnd()
    if self.koverseRevision is not None:
      oprot.writeFieldBegin('koverseRevision', TType.STRING, 2)
      oprot.writeString(self.koverseRevision)
      oprot.writeFieldEnd()
    if self.koverseBuildTimestamp is not None:
      oprot.writeFieldBegin('koverseBuildTimestamp', TType.I64, 3)
      oprot.writeI64(self.koverseBuildTimestamp)
      oprot.writeFieldEnd()
    if self.hdfsInfo is not None:
      oprot.writeFieldBegin('hdfsInfo', TType.STRUCT, 4)
      self.hdfsInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.mapReduceInfo is not None:
      oprot.writeFieldBegin('mapReduceInfo', TType.STRUCT, 5)
      self.mapReduceInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.dataStoreInfo is not None:
      oprot.writeFieldBegin('dataStoreInfo', TType.STRUCT, 6)
      self.dataStoreInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.logoffDisabled is not None:
      oprot.writeFieldBegin('logoffDisabled', TType.BOOL, 7)
      oprot.writeBool(self.logoffDisabled)
      oprot.writeFieldEnd()
    if self.usersCanChangePassword is not None:
      oprot.writeFieldBegin('usersCanChangePassword', TType.BOOL, 8)
      oprot.writeBool(self.usersCanChangePassword)
      oprot.writeFieldEnd()
    if self.usersCanEditAccountDetails is not None:
      oprot.writeFieldBegin('usersCanEditAccountDetails', TType.BOOL, 9)
      oprot.writeBool(self.usersCanEditAccountDetails)
      oprot.writeFieldEnd()
    if self.lockedDown is not None:
      oprot.writeFieldBegin('lockedDown', TType.BOOL, 10)
      oprot.writeBool(self.lockedDown)
      oprot.writeFieldEnd()
    if self.systemSettingsSavedOnce is not None:
      oprot.writeFieldBegin('systemSettingsSavedOnce', TType.BOOL, 11)
      oprot.writeBool(self.systemSettingsSavedOnce)
      oprot.writeFieldEnd()
    if self.dataStats is not None:
      oprot.writeFieldBegin('dataStats', TType.MAP, 12)
      oprot.writeMapBegin(TType.STRING, TType.DOUBLE, len(self.dataStats))
      for kiter125,viter126 in self.dataStats.items():
        oprot.writeString(kiter125)
        oprot.writeDouble(viter126)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.hardwareStats is not None:
      oprot.writeFieldBegin('hardwareStats', TType.MAP, 13)
      oprot.writeMapBegin(TType.STRING, TType.DOUBLE, len(self.hardwareStats))
      for kiter127,viter128 in self.hardwareStats.items():
        oprot.writeString(kiter127)
        oprot.writeDouble(viter128)
      oprot.writeMapEnd()
      oprot.writeFieldEnd()
    if self.nodeInfo is not None:
      oprot.writeFieldBegin('nodeInfo', TType.STRUCT, 14)
      self.nodeInfo.write(oprot)
      oprot.writeFieldEnd()
    if self.dataStoreConnectionDown is not None:
      oprot.writeFieldBegin('dataStoreConnectionDown', TType.BOOL, 15)
      oprot.writeBool(self.dataStoreConnectionDown)
      oprot.writeFieldEnd()
    if self.hdfsConnectionDown is not None:
      oprot.writeFieldBegin('hdfsConnectionDown', TType.BOOL, 16)
      oprot.writeBool(self.hdfsConnectionDown)
      oprot.writeFieldEnd()
    if self.managementDatabaseConnectionDown is not None:
      oprot.writeFieldBegin('managementDatabaseConnectionDown', TType.BOOL, 17)
      oprot.writeBool(self.managementDatabaseConnectionDown)
      oprot.writeFieldEnd()
    if self.jobTrackerConnectionDown is not None:
      oprot.writeFieldBegin('jobTrackerConnectionDown', TType.BOOL, 18)
      oprot.writeBool(self.jobTrackerConnectionDown)
      oprot.writeFieldEnd()
    if self.systemStartTimestamp is not None:
      oprot.writeFieldBegin('systemStartTimestamp', TType.I64, 19)
      oprot.writeI64(self.systemStartTimestamp)
      oprot.writeFieldEnd()
    if self.systemTimestampNow is not None:
      oprot.writeFieldBegin('systemTimestampNow', TType.I64, 20)
      oprot.writeI64(self.systemTimestampNow)
      oprot.writeFieldEnd()
    if self.autoRunTransformsDisabled is not None:
      oprot.writeFieldBegin('autoRunTransformsDisabled', TType.BOOL, 21)
      oprot.writeBool(self.autoRunTransformsDisabled)
      oprot.writeFieldEnd()
    if self.accountMenuDisabled is not None:
      oprot.writeFieldBegin('accountMenuDisabled', TType.BOOL, 22)
      oprot.writeBool(self.accountMenuDisabled)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)

class TSecurityLabelParserDescription:
  """
  Attributes:
   - id
   - displayName
   - description
   - typeId
   - implementationClassName
   - version
   - disabled
   - addonId
  """

  thrift_spec = (
    None, # 0
    (1, TType.I64, 'id', None, None, ), # 1
    (2, TType.STRING, 'displayName', None, None, ), # 2
    (3, TType.STRING, 'description', None, None, ), # 3
    (4, TType.STRING, 'typeId', None, None, ), # 4
    (5, TType.STRING, 'implementationClassName', None, None, ), # 5
    (6, TType.STRING, 'version', None, None, ), # 6
    (7, TType.BOOL, 'disabled', None, None, ), # 7
    (8, TType.I64, 'addonId', None, None, ), # 8
  )

  def __init__(self, id=None, displayName=None, description=None, typeId=None, implementationClassName=None, version=None, disabled=None, addonId=None,):
    self.id = id
    self.displayName = displayName
    self.description = description
    self.typeId = typeId
    self.implementationClassName = implementationClassName
    self.version = version
    self.disabled = disabled
    self.addonId = addonId

  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.I64:
          self.id = iprot.readI64();
        else:
          iprot.skip(ftype)
      elif fid == 2:
        if ftype == TType.STRING:
          self.displayName = 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.STRING:
          self.typeId = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 5:
        if ftype == TType.STRING:
          self.implementationClassName = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 6:
        if ftype == TType.STRING:
          self.version = iprot.readString();
        else:
          iprot.skip(ftype)
      elif fid == 7:
        if ftype == TType.BOOL:
          self.disabled = iprot.readBool();
        else:
          iprot.skip(ftype)
      elif fid == 8:
        if ftype == TType.I64:
          self.addonId = 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('TSecurityLabelParserDescription')
    if self.id is not None:
      oprot.writeFieldBegin('id', TType.I64, 1)
      oprot.writeI64(self.id)
      oprot.writeFieldEnd()
    if self.displayName is not None:
      oprot.writeFieldBegin('displayName', TType.STRING, 2)
      oprot.writeString(self.displayName)
      oprot.writeFieldEnd()
    if self.description is not None:
      oprot.writeFieldBegin('description', TType.STRING, 3)
      oprot.writeString(self.description)
      oprot.writeFieldEnd()
    if self.typeId is not None:
      oprot.writeFieldBegin('typeId', TType.STRING, 4)
      oprot.writeString(self.typeId)
      oprot.writeFieldEnd()
    if self.implementationClassName is not None:
      oprot.writeFieldBegin('implementationClassName', TType.STRING, 5)
      oprot.writeString(self.implementationClassName)
      oprot.writeFieldEnd()
    if self.version is not None:
      oprot.writeFieldBegin('version', TType.STRING, 6)
      oprot.writeString(self.version)
      oprot.writeFieldEnd()
    if self.disabled is not None:
      oprot.writeFieldBegin('disabled', TType.BOOL, 7)
      oprot.writeBool(self.disabled)
      oprot.writeFieldEnd()
    if self.addonId is not None:
      oprot.writeFieldBegin('addonId', TType.I64, 8)
      oprot.writeI64(self.addonId)
      oprot.writeFieldEnd()
    oprot.writeFieldStop()
    oprot.writeStructEnd()

  def validate(self):
    return


  def __repr__(self):
    L = ['%s=%r' % (key, value)
      for key, value in self.__dict__.iteritems()]
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

  def __eq__(self, other):
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

  def __ne__(self, other):
    return not (self == other)
