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

from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
from thrift.protocol.TProtocol import TProtocolException
from thrift.TRecursive import fix_spec

import sys
import koverse.thriftgen.ttypes
import koverse.thriftgen.security.ttypes
import koverse.thriftgen.collection.ttypes

from thrift.transport import TTransport
all_structs = []


class TUsageMetricType(object):
    UserLogins = 1
    Queries = 2
    TransformsRun = 3
    ImportsRun = 4
    ExportsRun = 5
    ApiCalls = 6
    AuditEvents = 7

    _VALUES_TO_NAMES = {
        1: "UserLogins",
        2: "Queries",
        3: "TransformsRun",
        4: "ImportsRun",
        5: "ExportsRun",
        6: "ApiCalls",
        7: "AuditEvents",
    }

    _NAMES_TO_VALUES = {
        "UserLogins": 1,
        "Queries": 2,
        "TransformsRun": 3,
        "ImportsRun": 4,
        "ExportsRun": 5,
        "ApiCalls": 6,
        "AuditEvents": 7,
    }


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


    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, settingsSavedOnce=None, logoffDisabled=None, usersCanChangePassword=None, usersCanEditAccountDetails=None, resetToken=None, hdfsResourceDirectory=None, hadoopJobSettings=None, serializationMaxBufferSize=None, temporaryWorkingDirectory=None, accountMenuDisabled=None, autoRunTransformsDisabled=None, instancePrefix=None, hadoopJobHistoryHostname=None, hadoopJobHistoryPort=None, hadoopSecurityAuthentication=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.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.accountMenuDisabled = accountMenuDisabled
        self.autoRunTransformsDisabled = autoRunTransformsDisabled
        self.instancePrefix = instancePrefix
        self.hadoopJobHistoryHostname = hadoopJobHistoryHostname
        self.hadoopJobHistoryPort = hadoopJobHistoryPort
        self.hadoopSecurityAuthentication = hadoopSecurityAuthentication

    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.I32:
                    self.settingsId = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.koverseBaseURL = 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.smtpServerHostName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.STRING:
                    self.smtpPassword = 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.smtpFromEmailAddress = 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.smtpConnectionType = 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.ldapServerHostName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 12:
                if ftype == TType.STRING:
                    self.hadoopNameNodeHostname = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 17:
                if ftype == TType.STRING:
                    self.authenticatorsEnabled = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 18:
                if ftype == TType.MAP:
                    self.authenticatorSettings = {}
                    (_ktype1, _vtype2, _size0) = iprot.readMapBegin()
                    for _i4 in range(_size0):
                        _key5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val6 = {}
                        (_ktype8, _vtype9, _size7) = iprot.readMapBegin()
                        for _i11 in range(_size7):
                            _key12 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                            _val13 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 20:
                if ftype == TType.MAP:
                    self.authorizerSettings = {}
                    (_ktype15, _vtype16, _size14) = iprot.readMapBegin()
                    for _i18 in range(_size14):
                        _key19 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val20 = {}
                        (_ktype22, _vtype23, _size21) = iprot.readMapBegin()
                        for _i25 in range(_size21):
                            _key26 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                            _val27 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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 range(_size28):
                        _key33 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val34 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.dataStoreSettings[_key33] = _val34
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 22:
                if ftype == TType.BOOL:
                    self.settingsSavedOnce = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 23:
                if ftype == TType.BOOL:
                    self.logoffDisabled = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 24:
                if ftype == TType.BOOL:
                    self.usersCanChangePassword = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 25:
                if ftype == TType.BOOL:
                    self.usersCanEditAccountDetails = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 26:
                if ftype == TType.STRING:
                    self.resetToken = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 27:
                if ftype == TType.STRING:
                    self.hdfsResourceDirectory = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 28:
                if ftype == TType.MAP:
                    self.hadoopJobSettings = {}
                    (_ktype36, _vtype37, _size35) = iprot.readMapBegin()
                    for _i39 in range(_size35):
                        _key40 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val41 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.hadoopJobSettings[_key40] = _val41
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 29:
                if ftype == TType.I32:
                    self.serializationMaxBufferSize = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 30:
                if ftype == TType.STRING:
                    self.temporaryWorkingDirectory = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 31:
                if ftype == TType.BOOL:
                    self.accountMenuDisabled = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 32:
                if ftype == TType.BOOL:
                    self.autoRunTransformsDisabled = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 33:
                if ftype == TType.STRING:
                    self.instancePrefix = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 34:
                if ftype == TType.STRING:
                    self.hadoopJobHistoryHostname = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 35:
                if ftype == TType.I32:
                    self.hadoopJobHistoryPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 36:
                if ftype == TType.STRING:
                    self.hadoopSecurityAuthentication = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                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('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.encode('utf-8') if sys.version_info[0] == 2 else self.koverseBaseURL)
            oprot.writeFieldEnd()
        if self.smtpServerHostName is not None:
            oprot.writeFieldBegin('smtpServerHostName', TType.STRING, 3)
            oprot.writeString(self.smtpServerHostName.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else self.smtpUsername)
            oprot.writeFieldEnd()
        if self.smtpPassword is not None:
            oprot.writeFieldBegin('smtpPassword', TType.STRING, 6)
            oprot.writeString(self.smtpPassword.encode('utf-8') if sys.version_info[0] == 2 else self.smtpPassword)
            oprot.writeFieldEnd()
        if self.smtpFromEmailAddress is not None:
            oprot.writeFieldBegin('smtpFromEmailAddress', TType.STRING, 7)
            oprot.writeString(self.smtpFromEmailAddress.encode('utf-8') if sys.version_info[0] == 2 else self.smtpFromEmailAddress)
            oprot.writeFieldEnd()
        if self.smtpConnectionType is not None:
            oprot.writeFieldBegin('smtpConnectionType', TType.STRING, 8)
            oprot.writeString(self.smtpConnectionType.encode('utf-8') if sys.version_info[0] == 2 else self.smtpConnectionType)
            oprot.writeFieldEnd()
        if self.ldapServerHostName is not None:
            oprot.writeFieldBegin('ldapServerHostName', TType.STRING, 9)
            oprot.writeString(self.ldapServerHostName.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else self.ldapBaseDN)
            oprot.writeFieldEnd()
        if self.hadoopNameNodeHostname is not None:
            oprot.writeFieldBegin('hadoopNameNodeHostname', TType.STRING, 12)
            oprot.writeString(self.hadoopNameNodeHostname.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else self.dataStoreType)
            oprot.writeFieldEnd()
        if self.authenticatorsEnabled is not None:
            oprot.writeFieldBegin('authenticatorsEnabled', TType.STRING, 17)
            oprot.writeString(self.authenticatorsEnabled.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else kiter42)
                oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter43))
                for kiter44, viter45 in viter43.items():
                    oprot.writeString(kiter44.encode('utf-8') if sys.version_info[0] == 2 else kiter44)
                    oprot.writeString(viter45.encode('utf-8') if sys.version_info[0] == 2 else viter45)
                oprot.writeMapEnd()
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.authorizersEnabled is not None:
            oprot.writeFieldBegin('authorizersEnabled', TType.STRING, 19)
            oprot.writeString(self.authorizersEnabled.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else kiter46)
                oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter47))
                for kiter48, viter49 in viter47.items():
                    oprot.writeString(kiter48.encode('utf-8') if sys.version_info[0] == 2 else kiter48)
                    oprot.writeString(viter49.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else kiter50)
                oprot.writeString(viter51.encode('utf-8') if sys.version_info[0] == 2 else viter51)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.settingsSavedOnce is not None:
            oprot.writeFieldBegin('settingsSavedOnce', TType.BOOL, 22)
            oprot.writeBool(self.settingsSavedOnce)
            oprot.writeFieldEnd()
        if self.logoffDisabled is not None:
            oprot.writeFieldBegin('logoffDisabled', TType.BOOL, 23)
            oprot.writeBool(self.logoffDisabled)
            oprot.writeFieldEnd()
        if self.usersCanChangePassword is not None:
            oprot.writeFieldBegin('usersCanChangePassword', TType.BOOL, 24)
            oprot.writeBool(self.usersCanChangePassword)
            oprot.writeFieldEnd()
        if self.usersCanEditAccountDetails is not None:
            oprot.writeFieldBegin('usersCanEditAccountDetails', TType.BOOL, 25)
            oprot.writeBool(self.usersCanEditAccountDetails)
            oprot.writeFieldEnd()
        if self.resetToken is not None:
            oprot.writeFieldBegin('resetToken', TType.STRING, 26)
            oprot.writeString(self.resetToken.encode('utf-8') if sys.version_info[0] == 2 else self.resetToken)
            oprot.writeFieldEnd()
        if self.hdfsResourceDirectory is not None:
            oprot.writeFieldBegin('hdfsResourceDirectory', TType.STRING, 27)
            oprot.writeString(self.hdfsResourceDirectory.encode('utf-8') if sys.version_info[0] == 2 else self.hdfsResourceDirectory)
            oprot.writeFieldEnd()
        if self.hadoopJobSettings is not None:
            oprot.writeFieldBegin('hadoopJobSettings', TType.MAP, 28)
            oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.hadoopJobSettings))
            for kiter52, viter53 in self.hadoopJobSettings.items():
                oprot.writeString(kiter52.encode('utf-8') if sys.version_info[0] == 2 else kiter52)
                oprot.writeString(viter53.encode('utf-8') if sys.version_info[0] == 2 else viter53)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.serializationMaxBufferSize is not None:
            oprot.writeFieldBegin('serializationMaxBufferSize', TType.I32, 29)
            oprot.writeI32(self.serializationMaxBufferSize)
            oprot.writeFieldEnd()
        if self.temporaryWorkingDirectory is not None:
            oprot.writeFieldBegin('temporaryWorkingDirectory', TType.STRING, 30)
            oprot.writeString(self.temporaryWorkingDirectory.encode('utf-8') if sys.version_info[0] == 2 else self.temporaryWorkingDirectory)
            oprot.writeFieldEnd()
        if self.accountMenuDisabled is not None:
            oprot.writeFieldBegin('accountMenuDisabled', TType.BOOL, 31)
            oprot.writeBool(self.accountMenuDisabled)
            oprot.writeFieldEnd()
        if self.autoRunTransformsDisabled is not None:
            oprot.writeFieldBegin('autoRunTransformsDisabled', TType.BOOL, 32)
            oprot.writeBool(self.autoRunTransformsDisabled)
            oprot.writeFieldEnd()
        if self.instancePrefix is not None:
            oprot.writeFieldBegin('instancePrefix', TType.STRING, 33)
            oprot.writeString(self.instancePrefix.encode('utf-8') if sys.version_info[0] == 2 else self.instancePrefix)
            oprot.writeFieldEnd()
        if self.hadoopJobHistoryHostname is not None:
            oprot.writeFieldBegin('hadoopJobHistoryHostname', TType.STRING, 34)
            oprot.writeString(self.hadoopJobHistoryHostname.encode('utf-8') if sys.version_info[0] == 2 else self.hadoopJobHistoryHostname)
            oprot.writeFieldEnd()
        if self.hadoopJobHistoryPort is not None:
            oprot.writeFieldBegin('hadoopJobHistoryPort', TType.I32, 35)
            oprot.writeI32(self.hadoopJobHistoryPort)
            oprot.writeFieldEnd()
        if self.hadoopSecurityAuthentication is not None:
            oprot.writeFieldBegin('hadoopSecurityAuthentication', TType.STRING, 36)
            oprot.writeString(self.hadoopSecurityAuthentication.encode('utf-8') if sys.version_info[0] == 2 else self.hadoopSecurityAuthentication)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        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 TNodeInfo(object):
    """
    Attributes:
     - info
    """


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

    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.MAP:
                    self.info = {}
                    (_ktype55, _vtype56, _size54) = iprot.readMapBegin()
                    for _i58 in range(_size54):
                        _key59 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val60 = {}
                        (_ktype62, _vtype63, _size61) = iprot.readMapBegin()
                        for _i65 in range(_size61):
                            _key66 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                            _val67 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                            _val60[_key66] = _val67
                        iprot.readMapEnd()
                        self.info[_key59] = _val60
                    iprot.readMapEnd()
                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('TNodeInfo')
        if self.info is not None:
            oprot.writeFieldBegin('info', TType.MAP, 1)
            oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.info))
            for kiter68, viter69 in self.info.items():
                oprot.writeString(kiter68.encode('utf-8') if sys.version_info[0] == 2 else kiter68)
                oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter69))
                for kiter70, viter71 in viter69.items():
                    oprot.writeString(kiter70.encode('utf-8') if sys.version_info[0] == 2 else kiter70)
                    oprot.writeString(viter71.encode('utf-8') if sys.version_info[0] == 2 else viter71)
                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__.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 THeapMemoryUsage(object):
    """
    Attributes:
     - max
     - committed
     - init
     - used
    """


    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._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.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._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('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__.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 TJobInfo(object):
    """
    Attributes:
     - jobId
     - failureInfo
     - userName
     - overallProgress
     - mapProgress
     - reduceProgress
     - cleanupProgress
     - priority
     - startTimestamp
     - complete
     - runState
     - type
     - name
     - colletionIds
    """


    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._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.jobId = 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.failureInfo = 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.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 13:
                if ftype == TType.STRING:
                    self.name = 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.colletionIds = []
                    (_etype75, _size72) = iprot.readListBegin()
                    for _i76 in range(_size72):
                        _elem77 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.colletionIds.append(_elem77)
                    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('TJobInfo')
        if self.jobId is not None:
            oprot.writeFieldBegin('jobId', TType.STRING, 1)
            oprot.writeString(self.jobId.encode('utf-8') if sys.version_info[0] == 2 else self.jobId)
            oprot.writeFieldEnd()
        if self.failureInfo is not None:
            oprot.writeFieldBegin('failureInfo', TType.STRING, 2)
            oprot.writeString(self.failureInfo.encode('utf-8') if sys.version_info[0] == 2 else self.failureInfo)
            oprot.writeFieldEnd()
        if self.userName is not None:
            oprot.writeFieldBegin('userName', TType.STRING, 3)
            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else self.type)
            oprot.writeFieldEnd()
        if self.name is not None:
            oprot.writeFieldBegin('name', TType.STRING, 13)
            oprot.writeString(self.name.encode('utf-8') if sys.version_info[0] == 2 else self.name)
            oprot.writeFieldEnd()
        if self.colletionIds is not None:
            oprot.writeFieldBegin('colletionIds', TType.LIST, 14)
            oprot.writeListBegin(TType.STRING, len(self.colletionIds))
            for iter78 in self.colletionIds:
                oprot.writeString(iter78.encode('utf-8') if sys.version_info[0] == 2 else iter78)
            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__.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 THdfsInfo(object):
    """
    Attributes:
     - numCorruptBlocks
     - blockSize
     - numMissingBlocks
     - numUnderReplicatedBlocks
     - nodeInfo
     - defaultReplicationFactor
     - capacityInBytes
     - usedBytes
     - remainingBytes
     - inSafeMode
     - nameNodeState
     - nameNodeHeapMemoryUsage
    """


    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._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.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().decode('utf-8') if sys.version_info[0] == 2 else 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._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('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.encode('utf-8') if sys.version_info[0] == 2 else 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__.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 TMapReduceInfo(object):
    """
    Attributes:
     - numRunningMapTasks
     - numRunningReduceTasks
     - maximumMapTasks
     - maximumReduceTasks
     - maximumMemoryInBytes
     - expirationIntervalInMs
     - numExcludedTrackers
     - numTrackers
     - numTotalJobs
     - jobInfos
     - nodeInfo
     - jobTrackerState
    """


    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._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.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 = []
                    (_etype82, _size79) = iprot.readListBegin()
                    for _i83 in range(_size79):
                        _elem84 = TJobInfo()
                        _elem84.read(iprot)
                        self.jobInfos.append(_elem84)
                    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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                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('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 iter85 in self.jobInfos:
                iter85.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.encode('utf-8') if sys.version_info[0] == 2 else 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__.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 TDataStoreInfo(object):
    """
    Attributes:
     - dataStats
     - nodeInfo
     - instanceInfo
    """


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

    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.MAP:
                    self.dataStats = {}
                    (_ktype87, _vtype88, _size86) = iprot.readMapBegin()
                    for _i90 in range(_size86):
                        _key91 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val92 = iprot.readDouble()
                        self.dataStats[_key91] = _val92
                    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 = {}
                    (_ktype94, _vtype95, _size93) = iprot.readMapBegin()
                    for _i97 in range(_size93):
                        _key98 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        _val99 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.instanceInfo[_key98] = _val99
                    iprot.readMapEnd()
                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('TDataStoreInfo')
        if self.dataStats is not None:
            oprot.writeFieldBegin('dataStats', TType.MAP, 1)
            oprot.writeMapBegin(TType.STRING, TType.DOUBLE, len(self.dataStats))
            for kiter100, viter101 in self.dataStats.items():
                oprot.writeString(kiter100.encode('utf-8') if sys.version_info[0] == 2 else kiter100)
                oprot.writeDouble(viter101)
            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 kiter102, viter103 in self.instanceInfo.items():
                oprot.writeString(kiter102.encode('utf-8') if sys.version_info[0] == 2 else kiter102)
                oprot.writeString(viter103.encode('utf-8') if sys.version_info[0] == 2 else viter103)
            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__.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 TSecurityLabelParserDescription(object):
    """
    Attributes:
     - id
     - displayName
     - description
     - typeId
     - implementationClassName
     - version
     - disabled
     - addonId
    """


    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._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.I64:
                    self.id = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.displayName = 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.description = 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.typeId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.STRING:
                    self.implementationClassName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.STRING:
                    self.version = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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._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('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.encode('utf-8') if sys.version_info[0] == 2 else self.displayName)
            oprot.writeFieldEnd()
        if self.description is not None:
            oprot.writeFieldBegin('description', TType.STRING, 3)
            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else self.description)
            oprot.writeFieldEnd()
        if self.typeId is not None:
            oprot.writeFieldBegin('typeId', TType.STRING, 4)
            oprot.writeString(self.typeId.encode('utf-8') if sys.version_info[0] == 2 else self.typeId)
            oprot.writeFieldEnd()
        if self.implementationClassName is not None:
            oprot.writeFieldBegin('implementationClassName', TType.STRING, 5)
            oprot.writeString(self.implementationClassName.encode('utf-8') if sys.version_info[0] == 2 else self.implementationClassName)
            oprot.writeFieldEnd()
        if self.version is not None:
            oprot.writeFieldBegin('version', TType.STRING, 6)
            oprot.writeString(self.version.encode('utf-8') if sys.version_info[0] == 2 else 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__.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 TUsageMetricsReport(object):
    """
    Attributes:
     - past24Hours
     - past7Days
     - past30Days
     - allTime
     - numberOfCollections
     - numberOfGroups
     - numberOfSources
     - numberOfRunningJobs
     - numberOfApps
    """


    def __init__(self, past24Hours=None, past7Days=None, past30Days=None, allTime=None, numberOfCollections=None, numberOfGroups=None, numberOfSources=None, numberOfRunningJobs=None, numberOfApps=None,):
        self.past24Hours = past24Hours
        self.past7Days = past7Days
        self.past30Days = past30Days
        self.allTime = allTime
        self.numberOfCollections = numberOfCollections
        self.numberOfGroups = numberOfGroups
        self.numberOfSources = numberOfSources
        self.numberOfRunningJobs = numberOfRunningJobs
        self.numberOfApps = numberOfApps

    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.MAP:
                    self.past24Hours = {}
                    (_ktype105, _vtype106, _size104) = iprot.readMapBegin()
                    for _i108 in range(_size104):
                        _key109 = iprot.readI32()
                        _val110 = iprot.readI64()
                        self.past24Hours[_key109] = _val110
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.MAP:
                    self.past7Days = {}
                    (_ktype112, _vtype113, _size111) = iprot.readMapBegin()
                    for _i115 in range(_size111):
                        _key116 = iprot.readI32()
                        _val117 = iprot.readI64()
                        self.past7Days[_key116] = _val117
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.MAP:
                    self.past30Days = {}
                    (_ktype119, _vtype120, _size118) = iprot.readMapBegin()
                    for _i122 in range(_size118):
                        _key123 = iprot.readI32()
                        _val124 = iprot.readI64()
                        self.past30Days[_key123] = _val124
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.MAP:
                    self.allTime = {}
                    (_ktype126, _vtype127, _size125) = iprot.readMapBegin()
                    for _i129 in range(_size125):
                        _key130 = iprot.readI32()
                        _val131 = iprot.readI64()
                        self.allTime[_key130] = _val131
                    iprot.readMapEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.I64:
                    self.numberOfCollections = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.I64:
                    self.numberOfGroups = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 9:
                if ftype == TType.I64:
                    self.numberOfSources = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 10:
                if ftype == TType.I64:
                    self.numberOfRunningJobs = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 11:
                if ftype == TType.I64:
                    self.numberOfApps = iprot.readI64()
                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('TUsageMetricsReport')
        if self.past24Hours is not None:
            oprot.writeFieldBegin('past24Hours', TType.MAP, 1)
            oprot.writeMapBegin(TType.I32, TType.I64, len(self.past24Hours))
            for kiter132, viter133 in self.past24Hours.items():
                oprot.writeI32(kiter132)
                oprot.writeI64(viter133)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.past7Days is not None:
            oprot.writeFieldBegin('past7Days', TType.MAP, 4)
            oprot.writeMapBegin(TType.I32, TType.I64, len(self.past7Days))
            for kiter134, viter135 in self.past7Days.items():
                oprot.writeI32(kiter134)
                oprot.writeI64(viter135)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.past30Days is not None:
            oprot.writeFieldBegin('past30Days', TType.MAP, 5)
            oprot.writeMapBegin(TType.I32, TType.I64, len(self.past30Days))
            for kiter136, viter137 in self.past30Days.items():
                oprot.writeI32(kiter136)
                oprot.writeI64(viter137)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.allTime is not None:
            oprot.writeFieldBegin('allTime', TType.MAP, 6)
            oprot.writeMapBegin(TType.I32, TType.I64, len(self.allTime))
            for kiter138, viter139 in self.allTime.items():
                oprot.writeI32(kiter138)
                oprot.writeI64(viter139)
            oprot.writeMapEnd()
            oprot.writeFieldEnd()
        if self.numberOfCollections is not None:
            oprot.writeFieldBegin('numberOfCollections', TType.I64, 7)
            oprot.writeI64(self.numberOfCollections)
            oprot.writeFieldEnd()
        if self.numberOfGroups is not None:
            oprot.writeFieldBegin('numberOfGroups', TType.I64, 8)
            oprot.writeI64(self.numberOfGroups)
            oprot.writeFieldEnd()
        if self.numberOfSources is not None:
            oprot.writeFieldBegin('numberOfSources', TType.I64, 9)
            oprot.writeI64(self.numberOfSources)
            oprot.writeFieldEnd()
        if self.numberOfRunningJobs is not None:
            oprot.writeFieldBegin('numberOfRunningJobs', TType.I64, 10)
            oprot.writeI64(self.numberOfRunningJobs)
            oprot.writeFieldEnd()
        if self.numberOfApps is not None:
            oprot.writeFieldBegin('numberOfApps', TType.I64, 11)
            oprot.writeI64(self.numberOfApps)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        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 TSystemVersionInfo(object):
    """
    Attributes:
     - version
     - revision
    """


    def __init__(self, version=None, revision=None,):
        self.version = version
        self.revision = revision

    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.version = 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.revision = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                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('TSystemVersionInfo')
        if self.version is not None:
            oprot.writeFieldBegin('version', TType.STRING, 1)
            oprot.writeString(self.version.encode('utf-8') if sys.version_info[0] == 2 else self.version)
            oprot.writeFieldEnd()
        if self.revision is not None:
            oprot.writeFieldBegin('revision', TType.STRING, 2)
            oprot.writeString(self.revision.encode('utf-8') if sys.version_info[0] == 2 else self.revision)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        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)
all_structs.append(TSystemSettings)
TSystemSettings.thrift_spec = (
    None,  # 0
    (1, TType.I32, 'settingsId', None, None, ),  # 1
    (2, TType.STRING, 'koverseBaseURL', 'UTF8', None, ),  # 2
    (3, TType.STRING, 'smtpServerHostName', 'UTF8', None, ),  # 3
    (4, TType.I32, 'smtpServerPort', None, None, ),  # 4
    (5, TType.STRING, 'smtpUsername', 'UTF8', None, ),  # 5
    (6, TType.STRING, 'smtpPassword', 'UTF8', None, ),  # 6
    (7, TType.STRING, 'smtpFromEmailAddress', 'UTF8', None, ),  # 7
    (8, TType.STRING, 'smtpConnectionType', 'UTF8', None, ),  # 8
    (9, TType.STRING, 'ldapServerHostName', 'UTF8', None, ),  # 9
    (10, TType.I32, 'ldapServerPort', None, None, ),  # 10
    (11, TType.STRING, 'ldapBaseDN', 'UTF8', None, ),  # 11
    (12, TType.STRING, 'hadoopNameNodeHostname', 'UTF8', None, ),  # 12
    (13, TType.I32, 'hadoopNameNodePort', None, None, ),  # 13
    (14, TType.STRING, 'hadoopJobTrackerHostname', 'UTF8', None, ),  # 14
    (15, TType.I32, 'hadoopJobTrackerPort', None, None, ),  # 15
    (16, TType.STRING, 'dataStoreType', 'UTF8', None, ),  # 16
    (17, TType.STRING, 'authenticatorsEnabled', 'UTF8', None, ),  # 17
    (18, TType.MAP, 'authenticatorSettings', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), None, ),  # 18
    (19, TType.STRING, 'authorizersEnabled', 'UTF8', None, ),  # 19
    (20, TType.MAP, 'authorizerSettings', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), None, ),  # 20
    (21, TType.MAP, 'dataStoreSettings', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 21
    (22, TType.BOOL, 'settingsSavedOnce', None, None, ),  # 22
    (23, TType.BOOL, 'logoffDisabled', None, None, ),  # 23
    (24, TType.BOOL, 'usersCanChangePassword', None, None, ),  # 24
    (25, TType.BOOL, 'usersCanEditAccountDetails', None, None, ),  # 25
    (26, TType.STRING, 'resetToken', 'UTF8', None, ),  # 26
    (27, TType.STRING, 'hdfsResourceDirectory', 'UTF8', None, ),  # 27
    (28, TType.MAP, 'hadoopJobSettings', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 28
    (29, TType.I32, 'serializationMaxBufferSize', None, None, ),  # 29
    (30, TType.STRING, 'temporaryWorkingDirectory', 'UTF8', None, ),  # 30
    (31, TType.BOOL, 'accountMenuDisabled', None, None, ),  # 31
    (32, TType.BOOL, 'autoRunTransformsDisabled', None, None, ),  # 32
    (33, TType.STRING, 'instancePrefix', 'UTF8', None, ),  # 33
    (34, TType.STRING, 'hadoopJobHistoryHostname', 'UTF8', None, ),  # 34
    (35, TType.I32, 'hadoopJobHistoryPort', None, None, ),  # 35
    (36, TType.STRING, 'hadoopSecurityAuthentication', 'UTF8', None, ),  # 36
)
all_structs.append(TNodeInfo)
TNodeInfo.thrift_spec = (
    None,  # 0
    (1, TType.MAP, 'info', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), None, ),  # 1
)
all_structs.append(THeapMemoryUsage)
THeapMemoryUsage.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
)
all_structs.append(TJobInfo)
TJobInfo.thrift_spec = (
    None,  # 0
    (1, TType.STRING, 'jobId', 'UTF8', None, ),  # 1
    (2, TType.STRING, 'failureInfo', 'UTF8', None, ),  # 2
    (3, TType.STRING, 'userName', 'UTF8', 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', 'UTF8', 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', 'UTF8', None, ),  # 12
    (13, TType.STRING, 'name', 'UTF8', None, ),  # 13
    (14, TType.LIST, 'colletionIds', (TType.STRING, 'UTF8', False), None, ),  # 14
)
all_structs.append(THdfsInfo)
THdfsInfo.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, None], 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', 'UTF8', None, ),  # 11
    (12, TType.STRUCT, 'nameNodeHeapMemoryUsage', [THeapMemoryUsage, None], None, ),  # 12
)
all_structs.append(TMapReduceInfo)
TMapReduceInfo.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, None], False), None, ),  # 10
    (11, TType.STRUCT, 'nodeInfo', [TNodeInfo, None], None, ),  # 11
    (12, TType.STRING, 'jobTrackerState', 'UTF8', None, ),  # 12
)
all_structs.append(TDataStoreInfo)
TDataStoreInfo.thrift_spec = (
    None,  # 0
    (1, TType.MAP, 'dataStats', (TType.STRING, 'UTF8', TType.DOUBLE, None, False), None, ),  # 1
    (2, TType.STRUCT, 'nodeInfo', [TNodeInfo, None], None, ),  # 2
    (3, TType.MAP, 'instanceInfo', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ),  # 3
)
all_structs.append(TSecurityLabelParserDescription)
TSecurityLabelParserDescription.thrift_spec = (
    None,  # 0
    (1, TType.I64, 'id', None, None, ),  # 1
    (2, TType.STRING, 'displayName', 'UTF8', None, ),  # 2
    (3, TType.STRING, 'description', 'UTF8', None, ),  # 3
    (4, TType.STRING, 'typeId', 'UTF8', None, ),  # 4
    (5, TType.STRING, 'implementationClassName', 'UTF8', None, ),  # 5
    (6, TType.STRING, 'version', 'UTF8', None, ),  # 6
    (7, TType.BOOL, 'disabled', None, None, ),  # 7
    (8, TType.I64, 'addonId', None, None, ),  # 8
)
all_structs.append(TUsageMetricsReport)
TUsageMetricsReport.thrift_spec = (
    None,  # 0
    (1, TType.MAP, 'past24Hours', (TType.I32, None, TType.I64, None, False), None, ),  # 1
    None,  # 2
    None,  # 3
    (4, TType.MAP, 'past7Days', (TType.I32, None, TType.I64, None, False), None, ),  # 4
    (5, TType.MAP, 'past30Days', (TType.I32, None, TType.I64, None, False), None, ),  # 5
    (6, TType.MAP, 'allTime', (TType.I32, None, TType.I64, None, False), None, ),  # 6
    (7, TType.I64, 'numberOfCollections', None, None, ),  # 7
    (8, TType.I64, 'numberOfGroups', None, None, ),  # 8
    (9, TType.I64, 'numberOfSources', None, None, ),  # 9
    (10, TType.I64, 'numberOfRunningJobs', None, None, ),  # 10
    (11, TType.I64, 'numberOfApps', None, None, ),  # 11
)
all_structs.append(TSystemVersionInfo)
TSystemVersionInfo.thrift_spec = (
    None,  # 0
    (1, TType.STRING, 'version', 'UTF8', None, ),  # 1
    (2, TType.STRING, 'revision', 'UTF8', None, ),  # 2
)
fix_spec(all_structs)
del all_structs
