text:
using CxxWrap: ConstCxxRef
using CxxWrap.StdLib: StdString, SharedPtr, UniquePtr, WeakPtr
using CxxWrap.CxxWrapCore:
    CxxBool,
    CxxChar,
    CxxWchar,
    CxxSignedChar,
    CxxUChar,
    CxxShort,
    CxxUShort,
    CxxInt,
    CxxUInt,
    CxxLong,
    CxxULong,
    CxxLongLong,
    CxxULongLong,
    SmartPointer

function Base.getproperty(x::Union{ComboLeg, SmartPointer{ComboLeg}}, name::Symbol)
    Base.@_inline_meta
    return if name === :conId
            ComboLeg_get_conId(x)
        elseif name === :exemptCode
            ComboLeg_get_exemptCode(x)
        elseif name === :designatedLocation
            CxxWrap.CxxWrapCore.dereference_argument(ComboLeg_get_designatedLocation(x))
        elseif name === :shortSaleSlot
            ComboLeg_get_shortSaleSlot(x)
        elseif name === :openClose
            ComboLeg_get_openClose(x)
        elseif name === :exchange
            CxxWrap.CxxWrapCore.dereference_argument(ComboLeg_get_exchange(x))
        elseif name === :action
            CxxWrap.CxxWrapCore.dereference_argument(ComboLeg_get_action(x))
        elseif name === :ratio
            ComboLeg_get_ratio(x)
        else
            (Base).getfield(x, name)
        end
end
function Base.setproperty!(x::Union{ComboLeg, SmartPointer{ComboLeg}}, name::Symbol, value)
    Base.@_inline_meta
    if name === :conId
        ComboLeg_set_conId(x, value)
    elseif name === :exemptCode
        ComboLeg_set_exemptCode(x, value)
    elseif name === :designatedLocation
        ComboLeg_set_designatedLocation(x, value)
    elseif name === :shortSaleSlot
        ComboLeg_set_shortSaleSlot(x, value)
    elseif name === :openClose
        ComboLeg_set_openClose(x, value)
    elseif name === :exchange
        ComboLeg_set_exchange(x, value)
    elseif name === :action
        ComboLeg_set_action(x, value)
    elseif name === :ratio
        ComboLeg_set_ratio(x, value)
    else
        (Base).setfield!(x, name, value)
    end
    return x
end
function Base.propertynames(x::Union{ComboLeg, SmartPointer{ComboLeg}})
    Base.@_inline_meta
    return (:conId, :ratio, :action, :exchange, :openClose, :shortSaleSlot, :designatedLocation, :exemptCode)
end


text:
#NOTE FILE TO BE DELETED

SRC_DIR = joinpath(Base.source_dir(), "..", "src")
AUX_DIR = joinpath(SRC_DIR, "auxiliary")
OUT_DIR = joinpath(Base.source_dir(), "..", "output")
mkpath(OUT_DIR)

#include(joinpath(SRC_DIR, "BridgeSDEInference.jl"))
#using Main.BridgeSDEInference
include(joinpath(SRC_DIR, "fitzHughNagumo.jl"))
include(joinpath(SRC_DIR, "conjugateUpdt.jl"))

include(joinpath(SRC_DIR, "types.jl"))
include(joinpath(SRC_DIR, "vern7.jl"))
include(joinpath(SRC_DIR, "tsit5.jl"))
include(joinpath(SRC_DIR, "rk4.jl"))
include(joinpath(SRC_DIR, "ralston3.jl"))
include(joinpath(SRC_DIR, "priors.jl"))
include(joinpath(SRC_DIR, "guid_prop_bridge.jl"))

include(joinpath(SRC_DIR, "bounded_diffusion_domain.jl"))
include(joinpath(SRC_DIR, "euler_maruyama_dom_restr.jl"))
include(joinpath(SRC_DIR, "lorenz_system.jl"))
include(joinpath(SRC_DIR, "lorenz_system_const_vola.jl"))

include(joinpath(SRC_DIR, "random_walk.jl"))
include(joinpath(SRC_DIR, "blocking_schedule.jl"))
include(joinpath(SRC_DIR, "starting_pt.jl"))
include(joinpath(SRC_DIR, "mcmc.jl"))
include(joinpath(SRC_DIR, "path_to_wiener.jl"))
include(joinpath(SRC_DIR, "metropolis_adjusted_langevin_kernel.jl"))

using Distributions # to define priors
using Random        # to seed the random number generator

param = :complexConjug
# Initial parameter guess.
θ₀ = [10.0, -8.0, 15.0, 0.0, 3.0]
# Target law
P˟ = FitzhughDiffusion(param, θ₀...)
# Auxiliary law
P̃ = FitzhughDiffusionAux(param, θ₀..., 0.0, ℝ(0.0), 2.0, ℝ(0.5))

L = @SMatrix [1. 0.]
Σdiagel = 10^(-4)
Σ = @SMatrix [Σdiagel]

using ForwardDiff
import ForwardDiff: Dual, Tag
tt = 0.0:0.01:2.0
Wnr = Wiener{Float64}()
W = Bridge.samplepath(tt, zero(Float64))
sample!(W, Wnr)
y = ℝ(0.0, 0.0)
CT = Tag{Val{:custom_tag}, Float64}
y_dual = ℝ(Dual{CT}(0.0,0.0), Dual{CT}(0.0,0.0))
X = SamplePath(tt, zeros(typeof(y_dual), length(tt)))
# compute log likelihood for a given wiener path and parameter vector
function ll(θ)
    for t in θ
        print(t, "\n\n")
    end
    P˟ = FitzhughDiffusion(param, θ...)
    P̃ = FitzhughDiffusionAux(param, θ..., 0.0, ℝ(Dual{CT}(0.0,0.0)),
                                          2.0, ℝ(Dual{CT}(0.5,0.0)))
    L = @SMatrix [Dual{CT}(1.0,0.0) Dual{CT}(0.0,0.0)]
    Σ = @SMatrix [Dual{CT}(10^(-4),0.0)]
    P = GuidPropBridge(Dual{CT,Float64,1}, tt, P˟, P̃, L, ℝ(Dual{CT}(0.5,0.0)), Σ;
                       changePt=NoChangePt(), solver=Vern7())
    solve!(Euler(), X, y_dual, W, P)
    loglik = llikelihood(LeftRule(), X, P)
    loglik
end

chunkSize = 1
result = DiffResults.GradientResult(θ₀)
cfg = ForwardDiff.GradientConfig(ll, θ₀, ForwardDiff.Chunk{chunkSize}(), CT())
@time ForwardDiff.gradient!(result, ll, θ₀, cfg, Val{false}()) # turn off tag checking..., this needs to be solved somehow in the future

result.value
result.derivs

Dual{CT}.(L, 0.0)

using Interpolations
using StaticArrays
itp = LinearInterpolation([0.0, 1.0, 3.0], [ℝ(1.0, 2.0), ℝ(3.0,-2.0), ℝ(2.0,0.0)])

itp = LinearInterpolation([0.0, 1.0], [ℝ(0.0), ℝ(0.0)], extrapolation_bc = Line())
itp(2.0)

using Plots
tt = collect(0.0:0.01:3.0)
xx₁ = [x[1] for x in itp(tt)]
xx₂ = [x[2] for x in itp(tt)]
plot(tt, xx₁)
plot!(tt, xx₂)

LinearInterpolation([0.0, 1.0, 3.0], [ℝ(1.0, 2.0), ℝ(3.0,-2.0), ℝ(2.0,0.0)])

ext: jl


text:
# Automatically generated using Clang.jl wrap_c, version 0.0.0

const SYSTEM_DIMENSIONS = 1
const HIGHEST_DIMENSIONS = 5
const HAVE_SYS_SOCKET_H = 1
const DEFAULT_WAIT_ALL_NODES = 0

# Skipping MacroDefinition: slurm_seterrno_ret ( errnum ) do { slurm_seterrno ( errnum ) ; return ( errnum ? - 1 : 0 ) ; } while ( 0 )

const SLURM_SUCCESS = 0
const SLURM_ERROR = -1
const SLURM_FAILURE = -1
const SLURM_SOCKET_ERROR = -1
const SLURM_PROTOCOL_SUCCESS = 0
const SLURM_PROTOCOL_ERROR = -1
const PRIu64 = "llu"
const SLURM_VERSION_NUMBER = 0x00100503

# Skipping MacroDefinition: SLURM_VERSION_NUM ( a , b , c ) ( ( ( a ) << 16 ) + ( ( b ) << 8 ) + ( c ) )
# Skipping MacroDefinition: SLURM_VERSION_MAJOR ( a ) ( ( ( a ) >> 16 ) & 0xff )
# Skipping MacroDefinition: SLURM_VERSION_MINOR ( a ) ( ( ( a ) >> 8 ) & 0xff )
# Skipping MacroDefinition: SLURM_VERSION_MICRO ( a ) ( ( a ) & 0xff )

const INFINITE = Float32(0x0fffffff)
const INFINITE64 = Float32(0x0fffffffffffffff)
const NO_VAL = 0xfffffffe
const NO_VAL64 = 0xfffffffffffffffe
const MAX_TASKS_PER_NODE = 512
const SLURM_PENDING_STEP = 0xfffffffd
const SLURM_BATCH_SCRIPT = 0xfffffffe
const SLURM_EXTERN_CONT = Float32(0x0fffffff)
const DEFAULT_EIO_SHUTDOWN_WAIT = 60
const SLURM_ID_HASH_NUM = 10000000000

# Skipping MacroDefinition: SLURM_ID_HASH ( _jobid , _stepid ) ( uint64_t ) ( ( uint64_t ) _stepid * SLURM_ID_HASH_NUM + _jobid )
# Skipping MacroDefinition: SLURM_ID_HASH_JOB_ID ( hash_id ) ( uint32_t ) ( hash_id % SLURM_ID_HASH_NUM )
# Skipping MacroDefinition: SLURM_ID_HASH_STEP_ID ( hash_id ) ( uint32_t ) ( hash_id / SLURM_ID_HASH_NUM )

const JOB_STATE_BASE = Float32(0x0000000f)
const JOB_STATE_FLAGS = 0xffffff00
const JOB_LAUNCH_FAILED = 0x00000100
const JOB_UPDATE_DB = 0x00000200
const JOB_REQUEUE = 0x00000400
const JOB_REQUEUE_HOLD = 0x00000800
const JOB_SPECIAL_EXIT = 0x00001000
const JOB_RESIZING = 0x00002000
const JOB_CONFIGURING = 0x00004000
const JOB_COMPLETING = 0x00008000
const JOB_STOPPED = 0x00010000
const READY_JOB_FATAL = -2
const READY_JOB_ERROR = -1
const READY_NODE_STATE = 0x01
const READY_JOB_STATE = 0x02
const MAIL_JOB_BEGIN = 0x0001
const MAIL_JOB_END = 0x0002
const MAIL_JOB_FAIL = 0x0004
const MAIL_JOB_REQUEUE = 0x0008
const MAIL_JOB_TIME100 = 0x0010
const MAIL_JOB_TIME90 = 0x0020
const MAIL_JOB_TIME80 = 0x0040
const MAIL_JOB_TIME50 = 0x0080
const MAIL_JOB_STAGE_OUT = 0x0100
const MAIL_ARRAY_TASKS = 0x0200
const NICE_OFFSET = 0x80000000
const PARTITION_SUBMIT = 0x01
const PARTITION_SCHED = 0x02
const PARTITION_DOWN = PARTITION_SUBMIT
const PARTITION_UP = PARTITION_SUBMIT | PARTITION_SCHED
const PARTITION_DRAIN = PARTITION_SCHED
const PARTITION_INACTIVE = 0x00
const PARTITION_ENFORCE_NONE = 0
const PARTITION_ENFORCE_ALL = 1
const PARTITION_ENFORCE_ANY = 2
const ACCT_GATHER_PROFILE_NOT_SET = 0x00000000
const ACCT_GATHER_PROFILE_NONE = 0x00000001
const ACCT_GATHER_PROFILE_ENERGY = 0x00000002
const ACCT_GATHER_PROFILE_TASK = 0x00000004
const ACCT_GATHER_PROFILE_LUSTRE = 0x00000008
const ACCT_GATHER_PROFILE_NETWORK = 0x00000010
const ACCT_GATHER_PROFILE_ALL = Float32(0x0fffffff)
const SLURM_DIST_STATE_BASE = Float32(0x00000fff)
const SLURM_DIST_STATE_FLAGS = 0x00ff0000
const SLURM_DIST_PACK_NODES = 0x00800000
const SLURM_DIST_NO_PACK_NODES = 0x00400000
const SLURM_DIST_NODEMASK = Float32(0x0f00)
const SLURM_DIST_SOCKMASK = 0xf0f0
const SLURM_DIST_COREMASK = 0xff00
const SLURM_DIST_NODESOCKMASK = Float32(0x0f0f)
const OPEN_MODE_APPEND = 1
const OPEN_MODE_TRUNCATE = 2
const CPU_FREQ_RANGE_FLAG = 0x80000000
const CPU_FREQ_LOW = 0x80000001
const CPU_FREQ_MEDIUM = 0x80000002
const CPU_FREQ_HIGH = 0x80000003
const CPU_FREQ_HIGHM1 = 0x80000004
const CPU_FREQ_CONSERVATIVE = 0x88000000
const CPU_FREQ_ONDEMAND = 0x84000000
const CPU_FREQ_PERFORMANCE = 0x82000000
const CPU_FREQ_POWERSAVE = 0x81000000
const CPU_FREQ_USERSPACE = 0x80800000
const CPU_FREQ_GOV_MASK = 0x8ff00000
const CPU_FREQ_PERFORMANCE_OLD = 0x80000005
const CPU_FREQ_POWERSAVE_OLD = 0x80000006
const CPU_FREQ_USERSPACE_OLD = 0x80000007
const CPU_FREQ_ONDEMAND_OLD = 0x80000008
const CPU_FREQ_CONSERVATIVE_OLD = 0x80000009
const NODE_STATE_BASE = Float32(0x0000)
const NODE_STATE_FLAGS = 0xfff0
const NODE_STATE_NET = 0x0010
const NODE_STATE_RES = 0x0020
const NODE_STATE_UNDRAIN = 0x0040
const NODE_STATE_CLOUD = 0x0080
const NODE_RESUME = 0x0100
const NODE_STATE_DRAIN = 0x0200
const NODE_STATE_COMPLETING = 0x0400
const NODE_STATE_NO_RESPOND = 0x0800
const NODE_STATE_POWER_SAVE = 0x1000
const NODE_STATE_FAIL = 0x2000
const NODE_STATE_POWER_UP = 0x4000
const NODE_STATE_MAINT = 0x8000
const SLURM_SSL_SIGNATURE_LENGTH = 128
const SHOW_ALL = 0x0001
const SHOW_DETAIL = 0x0002
const SHOW_DETAIL2 = 0x0004
const SHOW_MIXED = 0x0008
const CR_CPU = 0x0001
const CR_SOCKET = 0x0002
const CR_CORE = 0x0004
const CR_BOARD = 0x0008
const CR_MEMORY = 0x0010
const CR_OTHER_CONS_RES = 0x0020
const CR_NHC_STEP_NO = 0x0040
const CR_NHC_NO = 0x0080
const CR_ONE_TASK_PER_CORE = 0x0100
const CR_PACK_NODES = 0x0200
const CR_CORE_DEFAULT_DIST_BLOCK = 0x1000
const CR_LLN = 0x4000
const MEM_PER_CPU = 0x80000000
const SHARED_FORCE = 0x8000
const PRIVATE_DATA_JOBS = 0x0001
const PRIVATE_DATA_NODES = 0x0002
const PRIVATE_DATA_PARTITIONS = 0x0004
const PRIVATE_DATA_USAGE = 0x0008
const PRIVATE_DATA_USERS = 0x0010
const PRIVATE_DATA_ACCOUNTS = 0x0020
const PRIVATE_DATA_RESERVATIONS = 0x0040
const PRIVATE_CLOUD_NODES = 0x0080
const PRIORITY_RESET_NONE = 0x0000
const PRIORITY_RESET_NOW = 0x0001
const PRIORITY_RESET_DAILY = 0x0002
const PRIORITY_RESET_WEEKLY = 0x0003
const PRIORITY_RESET_MONTHLY = 0x0004
const PRIORITY_RESET_QUARTERLY = 0x0005
const PRIORITY_RESET_YEARLY = 0x0006
const PROP_PRIO_OFF = 0x0000
const PROP_PRIO_ON = 0x0001
const PROP_PRIO_NICER = 0x0002
const PRIORITY_FLAGS_ACCRUE_ALWAYS = 0x0001
const PRIORITY_FLAGS_MAX_TRES = 0x0002
const PRIORITY_FLAGS_SIZE_RELATIVE = 0x0004
const PRIORITY_FLAGS_DEPTH_OBLIVIOUS = 0x0008
const PRIORITY_FLAGS_CALCULATE_RUNNING = 0x0010
const PRIORITY_FLAGS_FAIR_TREE = 0x0020
const KILL_INV_DEP = 0x00000001
const NO_KILL_INV_DEP = 0x00000002
const HAS_STATE_DIR = 0x00000004
const BACKFILL_TEST = 0x00000008
const GRES_ENFORCE_BIND = 0x00000010
const TEST_NOW_ONLY = 0x00000020
const NODE_MEM_CALC = 0x00000040
const NODE_REBOOT = 0x00000080
const BITSTR_SHIFT_WORD8 = 3
const BITSTR_SHIFT_WORD32 = 5
const BITSTR_SHIFT_WORD64 = 6
const BITSTR_SHIFT = BITSTR_SHIFT_WORD32
const ALLOC_SID_ADMIN_HOLD = 0x00000001
const ALLOC_SID_USER_HOLD = 0x00000002
const JOB_SHARED_NONE = 0x0000
const JOB_SHARED_OK = 0x0001
const JOB_SHARED_USER = 0x0002
const JOB_SHARED_MCS = 0x0003
const SLURM_POWER_FLAGS_LEVEL = 0x0001
const CORE_SPEC_THREAD = 0x8000

# Skipping MacroDefinition: SLURM_STEP_IO_FDS_INITIALIZER { { 0 , ( uint32_t ) - 1 , ( uint32_t ) - 1 } , { 1 , ( uint32_t ) - 1 , ( uint32_t ) - 1 } , { 2 , ( uint32_t ) - 1 , ( uint32_t ) - 1 } }

const PART_FLAG_DEFAULT = 0x0001
const PART_FLAG_HIDDEN = 0x0002
const PART_FLAG_NO_ROOT = 0x0004
const PART_FLAG_ROOT_ONLY = 0x0008
const PART_FLAG_REQ_RESV = 0x0010
const PART_FLAG_LLN = 0x0020
const PART_FLAG_EXCLUSIVE_USER = 0x0040
const PART_FLAG_DEFAULT_CLR = 0x0100
const PART_FLAG_HIDDEN_CLR = 0x0200
const PART_FLAG_NO_ROOT_CLR = 0x0400
const PART_FLAG_ROOT_ONLY_CLR = 0x0800
const PART_FLAG_REQ_RESV_CLR = 0x1000
const PART_FLAG_LLN_CLR = 0x2000
const PART_FLAG_EXC_USER_CLR = 0x4000
const RESERVE_FLAG_MAINT = 0x00000001
const RESERVE_FLAG_NO_MAINT = 0x00000002
const RESERVE_FLAG_DAILY = 0x00000004
const RESERVE_FLAG_NO_DAILY = 0x00000008
const RESERVE_FLAG_WEEKLY = 0x00000010
const RESERVE_FLAG_NO_WEEKLY = 0x00000020
const RESERVE_FLAG_IGN_JOBS = 0x00000040
const RESERVE_FLAG_NO_IGN_JOB = 0x00000080
const RESERVE_FLAG_ANY_NODES = 0x00000100
const RESERVE_FLAG_NO_ANY_NODES = 0x00000200
const RESERVE_FLAG_STATIC = 0x00000400
const RESERVE_FLAG_NO_STATIC = 0x00000800
const RESERVE_FLAG_PART_NODES = 0x00001000
const RESERVE_FLAG_NO_PART_NODES = 0x00002000
const RESERVE_FLAG_OVERLAP = 0x00004000
const RESERVE_FLAG_SPEC_NODES = 0x00008000
const RESERVE_FLAG_FIRST_CORES = 0x00010000
const RESERVE_FLAG_TIME_FLOAT = 0x00020000
const RESERVE_FLAG_REPLACE = 0x00040000
const RESERVE_FLAG_ALL_NODES = 0x00080000
const RESERVE_FLAG_PURGE_COMP = 0x00100000
const DEBUG_FLAG_SELECT_TYPE = 0x0000000000000001
const DEBUG_FLAG_STEPS = 0x0000000000000002
const DEBUG_FLAG_TRIGGERS = 0x0000000000000004
const DEBUG_FLAG_CPU_BIND = 0x0000000000000008
const DEBUG_FLAG_WIKI = 0x0000000000000010
const DEBUG_FLAG_NO_CONF_HASH = 0x0000000000000020
const DEBUG_FLAG_GRES = 0x0000000000000040
const DEBUG_FLAG_BG_PICK = 0x0000000000000080
const DEBUG_FLAG_BG_WIRES = 0x0000000000000100
const DEBUG_FLAG_BG_ALGO = 0x0000000000000200
const DEBUG_FLAG_BG_ALGO_DEEP = 0x0000000000000400
const DEBUG_FLAG_PRIO = 0x0000000000000800
const DEBUG_FLAG_BACKFILL = 0x0000000000001000
const DEBUG_FLAG_GANG = 0x0000000000002000
const DEBUG_FLAG_RESERVATION = 0x0000000000004000
const DEBUG_FLAG_FRONT_END = 0x0000000000008000
const DEBUG_FLAG_NO_REALTIME = 0x0000000000010000
const DEBUG_FLAG_SWITCH = 0x0000000000020000
const DEBUG_FLAG_ENERGY = 0x0000000000040000
const DEBUG_FLAG_EXT_SENSORS = 0x0000000000080000
const DEBUG_FLAG_LICENSE = 0x0000000000100000
const DEBUG_FLAG_PROFILE = 0x0000000000200000
const DEBUG_FLAG_INFINIBAND = 0x0000000000400000
const DEBUG_FLAG_FILESYSTEM = 0x0000000000800000
const DEBUG_FLAG_JOB_CONT = 0x0000000001000000
const DEBUG_FLAG_TASK = 0x0000000002000000
const DEBUG_FLAG_PROTOCOL = 0x0000000004000000
const DEBUG_FLAG_BACKFILL_MAP = 0x0000000008000000
const DEBUG_FLAG_TRACE_JOBS = 0x0000000010000000
const DEBUG_FLAG_ROUTE = 0x0000000020000000
const DEBUG_FLAG_DB_ASSOC = 0x0000000040000000
const DEBUG_FLAG_DB_EVENT = 0x0000000080000000
const DEBUG_FLAG_DB_JOB = 0x0000000100000000
const DEBUG_FLAG_DB_QOS = 0x0000000200000000
const DEBUG_FLAG_DB_QUERY = 0x0000000400000000
const DEBUG_FLAG_DB_RESV = 0x0000000800000000
const DEBUG_FLAG_DB_RES = 0x0000001000000000
const DEBUG_FLAG_DB_STEP = 0x0000002000000000
const DEBUG_FLAG_DB_USAGE = 0x0000004000000000
const DEBUG_FLAG_DB_WCKEY = 0x0000008000000000
const DEBUG_FLAG_BURST_BUF = 0x0000010000000000
const DEBUG_FLAG_CPU_FREQ = 0x0000020000000000
const DEBUG_FLAG_POWER = 0x0000040000000000
const DEBUG_FLAG_TIME_CRAY = 0x0000080000000000
const DEBUG_FLAG_DB_ARCHIVE = 0x0000100000000000
const DEBUG_FLAG_DB_TRES = 0x0000200000000000
const DEBUG_FLAG_ESEARCH = 0x0000400000000000
const DEBUG_FLAG_NODE_FEATURES = 0x0000800000000000
const GROUP_FORCE = 0x8000
const GROUP_CACHE = 0x4000
const GROUP_TIME_MASK = Float32(0x00ff)
const PREEMPT_MODE_OFF = 0x0000
const PREEMPT_MODE_SUSPEND = 0x0001
const PREEMPT_MODE_REQUEUE = 0x0002
const PREEMPT_MODE_CHECKPOINT = 0x0004
const PREEMPT_MODE_CANCEL = 0x0008
const PREEMPT_MODE_GANG = 0x8000
const RECONFIG_KEEP_PART_INFO = 0x0001
const RECONFIG_KEEP_PART_STAT = 0x0002
const HEALTH_CHECK_NODE_IDLE = 0x0001
const HEALTH_CHECK_NODE_ALLOC = 0x0002
const HEALTH_CHECK_NODE_MIXED = 0x0004
const HEALTH_CHECK_CYCLE = 0x8000
const HEALTH_CHECK_NODE_ANY = Float32(0x0000)
const PROLOG_FLAG_ALLOC = 0x0001
const PROLOG_FLAG_NOHOLD = 0x0002
const PROLOG_FLAG_CONTAIN = 0x0004
const LOG_FMT_ISO8601_MS = 0
const LOG_FMT_ISO8601 = 1
const LOG_FMT_RFC5424_MS = 2
const LOG_FMT_RFC5424 = 3
const LOG_FMT_CLOCK = 4
const LOG_FMT_SHORT = 5
const LOG_FMT_THREAD_ID = 6
const STAT_COMMAND_RESET = 0x0000
const STAT_COMMAND_GET = 0x0001
const TRIGGER_FLAG_PERM = 0x0001
const TRIGGER_RES_TYPE_JOB = 0x0001
const TRIGGER_RES_TYPE_NODE = 0x0002
const TRIGGER_RES_TYPE_SLURMCTLD = 0x0003
const TRIGGER_RES_TYPE_SLURMDBD = 0x0004
const TRIGGER_RES_TYPE_DATABASE = 0x0005
const TRIGGER_RES_TYPE_FRONT_END = 0x0006
const TRIGGER_TYPE_UP = 0x00000001
const TRIGGER_TYPE_DOWN = 0x00000002
const TRIGGER_TYPE_FAIL = 0x00000004
const TRIGGER_TYPE_TIME = 0x00000008
const TRIGGER_TYPE_FINI = 0x00000010
const TRIGGER_TYPE_RECONFIG = 0x00000020
const TRIGGER_TYPE_BLOCK_ERR = 0x00000040
const TRIGGER_TYPE_IDLE = 0x00000080
const TRIGGER_TYPE_DRAINED = 0x00000100
const TRIGGER_TYPE_PRI_CTLD_FAIL = 0x00000200
const TRIGGER_TYPE_PRI_CTLD_RES_OP = 0x00000400
const TRIGGER_TYPE_PRI_CTLD_RES_CTRL = 0x00000800
const TRIGGER_TYPE_PRI_CTLD_ACCT_FULL = 0x00001000
const TRIGGER_TYPE_BU_CTLD_FAIL = 0x00002000
const TRIGGER_TYPE_BU_CTLD_RES_OP = 0x00004000
const TRIGGER_TYPE_BU_CTLD_AS_CTRL = 0x00008000
const TRIGGER_TYPE_PRI_DBD_FAIL = 0x00010000
const TRIGGER_TYPE_PRI_DBD_RES_OP = 0x00020000
const TRIGGER_TYPE_PRI_DB_FAIL = 0x00040000
const TRIGGER_TYPE_PRI_DB_RES_OP = 0x00080000
const ASSOC_MGR_INFO_FLAG_ASSOC = 0x00000001
const ASSOC_MGR_INFO_FLAG_USERS = 0x00000002
const ASSOC_MGR_INFO_FLAG_QOS = 0x00000004
const KILL_JOB_BATCH = 0x0001
const KILL_JOB_ARRAY = 0x0002
const KILL_STEPS_ONLY = 0x0004
const KILL_FULL_JOB = 0x0008
const WARN_SENT = 0x8000
const BB_FLAG_DISABLE_PERSISTENT = 0x0001
const BB_FLAG_ENABLE_PERSISTENT = 0x0002
const BB_FLAG_EMULATE_CRAY = 0x0004
const BB_FLAG_PRIVATE_DATA = 0x0008
const BB_FLAG_TEARDOWN_FAILURE = 0x0010
const BB_SIZE_IN_NODES = 0x8000000000000000
const BB_STATE_PENDING = 0x0000
const BB_STATE_ALLOCATING = 0x0001
const BB_STATE_ALLOCATED = 0x0002
const BB_STATE_DELETING = 0x0005
const BB_STATE_DELETED = 0x0006
const BB_STATE_STAGING_IN = 0x0011
const BB_STATE_STAGED_IN = 0x0012
const BB_STATE_RUNNING = 0x0021
const BB_STATE_SUSPEND = 0x0022
const BB_STATE_POST_RUN = 0x0029
const BB_STATE_STAGING_OUT = 0x0031
const BB_STATE_STAGED_OUT = 0x0032
const BB_STATE_TEARDOWN = 0x0041
const BB_STATE_COMPLETE = 0x0042

# begin enum ANONYMOUS_1
typealias ANONYMOUS_1 UInt32
const SLURM_UNEXPECTED_MSG_ERROR = (UInt32)(1000)
const SLURM_COMMUNICATIONS_CONNECTION_ERROR = (UInt32)(1001)
const SLURM_COMMUNICATIONS_SEND_ERROR = (UInt32)(1002)
const SLURM_COMMUNICATIONS_RECEIVE_ERROR = (UInt32)(1003)
const SLURM_COMMUNICATIONS_SHUTDOWN_ERROR = (UInt32)(1004)
const SLURM_PROTOCOL_VERSION_ERROR = (UInt32)(1005)
const SLURM_PROTOCOL_IO_STREAM_VERSION_ERROR = (UInt32)(1006)
const SLURM_PROTOCOL_AUTHENTICATION_ERROR = (UInt32)(1007)
const SLURM_PROTOCOL_INSANE_MSG_LENGTH = (UInt32)(1008)
const SLURM_MPI_PLUGIN_NAME_INVALID = (UInt32)(1009)
const SLURM_MPI_PLUGIN_PRELAUNCH_SETUP_FAILED = (UInt32)(1010)
const SLURM_PLUGIN_NAME_INVALID = (UInt32)(1011)
const SLURM_UNKNOWN_FORWARD_ADDR = (UInt32)(1012)
const SLURMCTLD_COMMUNICATIONS_CONNECTION_ERROR = (UInt32)(1800)
const SLURMCTLD_COMMUNICATIONS_SEND_ERROR = (UInt32)(1801)
const SLURMCTLD_COMMUNICATIONS_RECEIVE_ERROR = (UInt32)(1802)
const SLURMCTLD_COMMUNICATIONS_SHUTDOWN_ERROR = (UInt32)(1803)
const SLURM_NO_CHANGE_IN_DATA = (UInt32)(1900)
const ESLURM_INVALID_PARTITION_NAME = (UInt32)(2000)
const ESLURM_DEFAULT_PARTITION_NOT_SET = (UInt32)(2001)
const ESLURM_ACCESS_DENIED = (UInt32)(2002)
const ESLURM_JOB_MISSING_REQUIRED_PARTITION_GROUP = (UInt32)(2003)
const ESLURM_REQUESTED_NODES_NOT_IN_PARTITION = (UInt32)(2004)
const ESLURM_TOO_MANY_REQUESTED_CPUS = (UInt32)(2005)
const ESLURM_INVALID_NODE_COUNT = (UInt32)(2006)
const ESLURM_ERROR_ON_DESC_TO_RECORD_COPY = (UInt32)(2007)
const ESLURM_JOB_MISSING_SIZE_SPECIFICATION = (UInt32)(2008)
const ESLURM_JOB_SCRIPT_MISSING = (UInt32)(2009)
const ESLURM_USER_ID_MISSING = (UInt32)(2010)
const ESLURM_DUPLICATE_JOB_ID = (UInt32)(2011)
const ESLURM_PATHNAME_TOO_LONG = (UInt32)(2012)
const ESLURM_NOT_TOP_PRIORITY = (UInt32)(2013)
const ESLURM_REQUESTED_NODE_CONFIG_UNAVAILABLE = (UInt32)(2014)
const ESLURM_REQUESTED_PART_CONFIG_UNAVAILABLE = (UInt32)(2015)
const ESLURM_NODES_BUSY = (UInt32)(2016)
const ESLURM_INVALID_JOB_ID = (UInt32)(2017)
const ESLURM_INVALID_NODE_NAME = (UInt32)(2018)
const ESLURM_WRITING_TO_FILE = (UInt32)(2019)
const ESLURM_TRANSITION_STATE_NO_UPDATE = (UInt32)(2020)
const ESLURM_ALREADY_DONE = (UInt32)(2021)
const ESLURM_INTERCONNECT_FAILURE = (UInt32)(2022)
const ESLURM_BAD_DIST = (UInt32)(2023)
const ESLURM_JOB_PENDING = (UInt32)(2024)
const ESLURM_BAD_TASK_COUNT = (UInt32)(2025)
const ESLURM_INVALID_JOB_CREDENTIAL = (UInt32)(2026)
const ESLURM_IN_STANDBY_MODE = (UInt32)(2027)
const ESLURM_INVALID_NODE_STATE = (UInt32)(2028)
const ESLURM_INVALID_FEATURE = (UInt32)(2029)
const ESLURM_INVALID_AUTHTYPE_CHANGE = (UInt32)(2030)
const ESLURM_INVALID_CHECKPOINT_TYPE_CHANGE = (UInt32)(2031)
const ESLURM_INVALID_SCHEDTYPE_CHANGE = (UInt32)(2032)
const ESLURM_INVALID_SELECTTYPE_CHANGE = (UInt32)(2033)
const ESLURM_INVALID_SWITCHTYPE_CHANGE = (UInt32)(2034)
const ESLURM_FRAGMENTATION = (UInt32)(2035)
const ESLURM_NOT_SUPPORTED = (UInt32)(2036)
const ESLURM_DISABLED = (UInt32)(2037)
const ESLURM_DEPENDENCY = (UInt32)(2038)
const ESLURM_BATCH_ONLY = (UInt32)(2039)
const ESLURM_TASKDIST_ARBITRARY_UNSUPPORTED = (UInt32)(2040)
const ESLURM_TASKDIST_REQUIRES_OVERCOMMIT = (UInt32)(2041)
const ESLURM_JOB_HELD = (UInt32)(2042)
const ESLURM_INVALID_CRYPTO_TYPE_CHANGE = (UInt32)(2043)
const ESLURM_INVALID_TASK_MEMORY = (UInt32)(2044)
const ESLURM_INVALID_ACCOUNT = (UInt32)(2045)
const ESLURM_INVALID_PARENT_ACCOUNT = (UInt32)(2046)
const ESLURM_SAME_PARENT_ACCOUNT = (UInt32)(2047)
const ESLURM_INVALID_LICENSES = (UInt32)(2048)
const ESLURM_NEED_RESTART = (UInt32)(2049)
const ESLURM_ACCOUNTING_POLICY = (UInt32)(2050)
const ESLURM_INVALID_TIME_LIMIT = (UInt32)(2051)
const ESLURM_RESERVATION_ACCESS = (UInt32)(2052)
const ESLURM_RESERVATION_INVALID = (UInt32)(2053)
const ESLURM_INVALID_TIME_VALUE = (UInt32)(2054)
const ESLURM_RESERVATION_BUSY = (UInt32)(2055)
const ESLURM_RESERVATION_NOT_USABLE = (UInt32)(2056)
const ESLURM_INVALID_WCKEY = (UInt32)(2057)
const ESLURM_RESERVATION_OVERLAP = (UInt32)(2058)
const ESLURM_PORTS_BUSY = (UInt32)(2059)
const ESLURM_PORTS_INVALID = (UInt32)(2060)
const ESLURM_PROLOG_RUNNING = (UInt32)(2061)
const ESLURM_NO_STEPS = (UInt32)(2062)
const ESLURM_INVALID_BLOCK_STATE = (UInt32)(2063)
const ESLURM_INVALID_BLOCK_LAYOUT = (UInt32)(2064)
const ESLURM_INVALID_BLOCK_NAME = (UInt32)(2065)
const ESLURM_INVALID_QOS = (UInt32)(2066)
const ESLURM_QOS_PREEMPTION_LOOP = (UInt32)(2067)
const ESLURM_NODE_NOT_AVAIL = (UInt32)(2068)
const ESLURM_INVALID_CPU_COUNT = (UInt32)(2069)
const ESLURM_PARTITION_NOT_AVAIL = (UInt32)(2070)
const ESLURM_CIRCULAR_DEPENDENCY = (UInt32)(2071)
const ESLURM_INVALID_GRES = (UInt32)(2072)
const ESLURM_JOB_NOT_PENDING = (UInt32)(2073)
const ESLURM_QOS_THRES = (UInt32)(2074)
const ESLURM_PARTITION_IN_USE = (UInt32)(2075)
const ESLURM_STEP_LIMIT = (UInt32)(2076)
const ESLURM_JOB_SUSPENDED = (UInt32)(2077)
const ESLURM_CAN_NOT_START_IMMEDIATELY = (UInt32)(2078)
const ESLURM_INTERCONNECT_BUSY = (UInt32)(2079)
const ESLURM_RESERVATION_EMPTY = (UInt32)(2080)
const ESLURM_INVALID_ARRAY = (UInt32)(2081)
const ESLURM_RESERVATION_NAME_DUP = (UInt32)(2082)
const ESLURM_JOB_STARTED = (UInt32)(2083)
const ESLURM_JOB_FINISHED = (UInt32)(2084)
const ESLURM_JOB_NOT_RUNNING = (UInt32)(2085)
const ESLURM_JOB_NOT_PENDING_NOR_RUNNING = (UInt32)(2086)
const ESLURM_JOB_NOT_SUSPENDED = (UInt32)(2087)
const ESLURM_JOB_NOT_FINISHED = (UInt32)(2088)
const ESLURM_TRIGGER_DUP = (UInt32)(2089)
const ESLURM_INTERNAL = (UInt32)(2090)
const ESLURM_INVALID_BURST_BUFFER_CHANGE = (UInt32)(2091)
const ESLURM_BURST_BUFFER_PERMISSION = (UInt32)(2092)
const ESLURM_BURST_BUFFER_LIMIT = (UInt32)(2093)
const ESLURM_INVALID_BURST_BUFFER_REQUEST = (UInt32)(2094)
const ESLURM_PRIO_RESET_FAIL = (UInt32)(2095)
const ESLURM_POWER_NOT_AVAIL = (UInt32)(2096)
const ESLURM_POWER_RESERVED = (UInt32)(2097)
const ESLURM_INVALID_POWERCAP = (UInt32)(2098)
const ESLURM_INVALID_MCS_LABEL = (UInt32)(2099)
const ESLURM_BURST_BUFFER_WAIT = (UInt32)(2100)
const ESLURM_SWITCH_MIN = (UInt32)(3000)
const ESLURM_SWITCH_MAX = (UInt32)(3099)
const ESLURM_JOBCOMP_MIN = (UInt32)(3100)
const ESLURM_JOBCOMP_MAX = (UInt32)(3199)
const ESLURM_SCHED_MIN = (UInt32)(3200)
const ESLURM_SCHED_MAX = (UInt32)(3299)
const ESLRUMD_PIPE_ERROR_ON_TASK_SPAWN = (UInt32)(4000)
const ESLURMD_KILL_TASK_FAILED = (UInt32)(4001)
const ESLURMD_KILL_JOB_ALREADY_COMPLETE = (UInt32)(4002)
const ESLURMD_INVALID_ACCT_FREQ = (UInt32)(4003)
const ESLURMD_INVALID_JOB_CREDENTIAL = (UInt32)(4004)
const ESLURMD_UID_NOT_FOUND = (UInt32)(4005)
const ESLURMD_GID_NOT_FOUND = (UInt32)(4006)
const ESLURMD_CREDENTIAL_EXPIRED = (UInt32)(4007)
const ESLURMD_CREDENTIAL_REVOKED = (UInt32)(4008)
const ESLURMD_CREDENTIAL_REPLAYED = (UInt32)(4009)
const ESLURMD_CREATE_BATCH_DIR_ERROR = (UInt32)(4010)
const ESLURMD_MODIFY_BATCH_DIR_ERROR = (UInt32)(4011)
const ESLURMD_CREATE_BATCH_SCRIPT_ERROR = (UInt32)(4012)
const ESLURMD_MODIFY_BATCH_SCRIPT_ERROR = (UInt32)(4013)
const ESLURMD_SETUP_ENVIRONMENT_ERROR = (UInt32)(4014)
const ESLURMD_SHARED_MEMORY_ERROR = (UInt32)(4015)
const ESLURMD_SET_UID_OR_GID_ERROR = (UInt32)(4016)
const ESLURMD_SET_SID_ERROR = (UInt32)(4017)
const ESLURMD_CANNOT_SPAWN_IO_THREAD = (UInt32)(4018)
const ESLURMD_FORK_FAILED = (UInt32)(4019)
const ESLURMD_EXECVE_FAILED = (UInt32)(4020)
const ESLURMD_IO_ERROR = (UInt32)(4021)
const ESLURMD_PROLOG_FAILED = (UInt32)(4022)
const ESLURMD_EPILOG_FAILED = (UInt32)(4023)
const ESLURMD_SESSION_KILLED = (UInt32)(4024)
const ESLURMD_TOOMANYSTEPS = (UInt32)(4025)
const ESLURMD_STEP_EXISTS = (UInt32)(4026)
const ESLURMD_JOB_NOTRUNNING = (UInt32)(4027)
const ESLURMD_STEP_SUSPENDED = (UInt32)(4028)
const ESLURMD_STEP_NOTSUSPENDED = (UInt32)(4029)
const ESCRIPT_CHDIR_FAILED = (UInt32)(4100)
const ESCRIPT_OPEN_OUTPUT_FAILED = (UInt32)(4101)
const ESCRIPT_NON_ZERO_RETURN = (UInt32)(4102)
const SLURM_PROTOCOL_SOCKET_IMPL_ZERO_RECV_LENGTH = (UInt32)(5000)
const SLURM_PROTOCOL_SOCKET_IMPL_NEGATIVE_RECV_LENGTH = (UInt32)(5001)
const SLURM_PROTOCOL_SOCKET_IMPL_NOT_ALL_DATA_SENT = (UInt32)(5002)
const ESLURM_PROTOCOL_INCOMPLETE_PACKET = (UInt32)(5003)
const SLURM_PROTOCOL_SOCKET_IMPL_TIMEOUT = (UInt32)(5004)
const SLURM_PROTOCOL_SOCKET_ZERO_BYTES_SENT = (UInt32)(5005)
const ESLURM_AUTH_CRED_INVALID = (UInt32)(6000)
const ESLURM_AUTH_FOPEN_ERROR = (UInt32)(6001)
const ESLURM_AUTH_NET_ERROR = (UInt32)(6002)
const ESLURM_AUTH_UNABLE_TO_SIGN = (UInt32)(6003)
const ESLURM_DB_CONNECTION = (UInt32)(7000)
const ESLURM_JOBS_RUNNING_ON_ASSOC = (UInt32)(7001)
const ESLURM_CLUSTER_DELETED = (UInt32)(7002)
const ESLURM_ONE_CHANGE = (UInt32)(7003)
const ESLURM_BAD_NAME = (UInt32)(7004)
const ESLURM_OVER_ALLOCATE = (UInt32)(7005)
const ESLURM_MISSING_TIME_LIMIT = (UInt32)(8000)
const ESLURM_INVALID_KNL = (UInt32)(8001)
# end enum ANONYMOUS_1

typealias slurm_addr_t Void #sockaddr_in

immutable slurm_job_credential
end

typealias slurm_cred_t Void

immutable switch_jobinfo
end

typealias switch_jobinfo_t Void

immutable job_resources
end

typealias job_resources_t Void

immutable select_jobinfo
end

typealias select_jobinfo_t Void

immutable select_nodeinfo
end

typealias select_nodeinfo_t Void

immutable jobacctinfo
end

typealias jobacctinfo_t Void

immutable allocation_msg_thread
end

typealias allocation_msg_thread_t Void

immutable sbcast_cred
end

typealias sbcast_cred_t Void

# begin enum job_states
typealias job_states UInt32
const JOB_PENDING = (UInt32)(0)
const JOB_RUNNING = (UInt32)(1)
const JOB_SUSPENDED = (UInt32)(2)
const JOB_COMPLETE = (UInt32)(3)
const JOB_CANCELLED = (UInt32)(4)
const JOB_FAILED = (UInt32)(5)
const JOB_TIMEOUT = (UInt32)(6)
const JOB_NODE_FAIL = (UInt32)(7)
const JOB_PREEMPTED = (UInt32)(8)
const JOB_BOOT_FAIL = (UInt32)(9)
const JOB_DEADLINE = (UInt32)(10)
const JOB_END = (UInt32)(11)
# end enum job_states

# begin enum job_state_reason
typealias job_state_reason UInt32
const WAIT_NO_REASON = (UInt32)(0)
const WAIT_PRIORITY = (UInt32)(1)
const WAIT_DEPENDENCY = (UInt32)(2)
const WAIT_RESOURCES = (UInt32)(3)
const WAIT_PART_NODE_LIMIT = (UInt32)(4)
const WAIT_PART_TIME_LIMIT = (UInt32)(5)
const WAIT_PART_DOWN = (UInt32)(6)
const WAIT_PART_INACTIVE = (UInt32)(7)
const WAIT_HELD = (UInt32)(8)
const WAIT_TIME = (UInt32)(9)
const WAIT_LICENSES = (UInt32)(10)
const WAIT_ASSOC_JOB_LIMIT = (UInt32)(11)
const WAIT_ASSOC_RESOURCE_LIMIT = (UInt32)(12)
const WAIT_ASSOC_TIME_LIMIT = (UInt32)(13)
const WAIT_RESERVATION = (UInt32)(14)
const WAIT_NODE_NOT_AVAIL = (UInt32)(15)
const WAIT_HELD_USER = (UInt32)(16)
const WAIT_FRONT_END = (UInt32)(17)
const FAIL_DOWN_PARTITION = (UInt32)(18)
const FAIL_DOWN_NODE = (UInt32)(19)
const FAIL_BAD_CONSTRAINTS = (UInt32)(20)
const FAIL_SYSTEM = (UInt32)(21)
const FAIL_LAUNCH = (UInt32)(22)
const FAIL_EXIT_CODE = (UInt32)(23)
const FAIL_TIMEOUT = (UInt32)(24)
const FAIL_INACTIVE_LIMIT = (UInt32)(25)
const FAIL_ACCOUNT = (UInt32)(26)
const FAIL_QOS = (UInt32)(27)
const WAIT_QOS_THRES = (UInt32)(28)
const WAIT_QOS_JOB_LIMIT = (UInt32)(29)
const WAIT_QOS_RESOURCE_LIMIT = (UInt32)(30)
const WAIT_QOS_TIME_LIMIT = (UInt32)(31)
const WAIT_BLOCK_MAX_ERR = (UInt32)(32)
const WAIT_BLOCK_D_ACTION = (UInt32)(33)
const WAIT_CLEANING = (UInt32)(34)
const WAIT_PROLOG = (UInt32)(35)
const WAIT_QOS = (UInt32)(36)
const WAIT_ACCOUNT = (UInt32)(37)
const WAIT_DEP_INVALID = (UInt32)(38)
const WAIT_QOS_GRP_CPU = (UInt32)(39)
const WAIT_QOS_GRP_CPU_MIN = (UInt32)(40)
const WAIT_QOS_GRP_CPU_RUN_MIN = (UInt32)(41)
const WAIT_QOS_GRP_JOB = (UInt32)(42)
const WAIT_QOS_GRP_MEM = (UInt32)(43)
const WAIT_QOS_GRP_NODE = (UInt32)(44)
const WAIT_QOS_GRP_SUB_JOB = (UInt32)(45)
const WAIT_QOS_GRP_WALL = (UInt32)(46)
const WAIT_QOS_MAX_CPU_PER_JOB = (UInt32)(47)
const WAIT_QOS_MAX_CPU_MINS_PER_JOB = (UInt32)(48)
const WAIT_QOS_MAX_NODE_PER_JOB = (UInt32)(49)
const WAIT_QOS_MAX_WALL_PER_JOB = (UInt32)(50)
const WAIT_QOS_MAX_CPU_PER_USER = (UInt32)(51)
const WAIT_QOS_MAX_JOB_PER_USER = (UInt32)(52)
const WAIT_QOS_MAX_NODE_PER_USER = (UInt32)(53)
const WAIT_QOS_MAX_SUB_JOB = (UInt32)(54)
const WAIT_QOS_MIN_CPU = (UInt32)(55)
const WAIT_ASSOC_GRP_CPU = (UInt32)(56)
const WAIT_ASSOC_GRP_CPU_MIN = (UInt32)(57)
const WAIT_ASSOC_GRP_CPU_RUN_MIN = (UInt32)(58)
const WAIT_ASSOC_GRP_JOB = (UInt32)(59)
const WAIT_ASSOC_GRP_MEM = (UInt32)(60)
const WAIT_ASSOC_GRP_NODE = (UInt32)(61)
const WAIT_ASSOC_GRP_SUB_JOB = (UInt32)(62)
const WAIT_ASSOC_GRP_WALL = (UInt32)(63)
const WAIT_ASSOC_MAX_JOBS = (UInt32)(64)
const WAIT_ASSOC_MAX_CPU_PER_JOB = (UInt32)(65)
const WAIT_ASSOC_MAX_CPU_MINS_PER_JOB = (UInt32)(66)
const WAIT_ASSOC_MAX_NODE_PER_JOB = (UInt32)(67)
const WAIT_ASSOC_MAX_WALL_PER_JOB = (UInt32)(68)
const WAIT_ASSOC_MAX_SUB_JOB = (UInt32)(69)
const WAIT_MAX_REQUEUE = (UInt32)(70)
const WAIT_ARRAY_TASK_LIMIT = (UInt32)(71)
const WAIT_BURST_BUFFER_RESOURCE = (UInt32)(72)
const WAIT_BURST_BUFFER_STAGING = (UInt32)(73)
const FAIL_BURST_BUFFER_OP = (UInt32)(74)
const WAIT_POWER_NOT_AVAIL = (UInt32)(75)
const WAIT_POWER_RESERVED = (UInt32)(76)
const WAIT_ASSOC_GRP_UNK = (UInt32)(77)
const WAIT_ASSOC_GRP_UNK_MIN = (UInt32)(78)
const WAIT_ASSOC_GRP_UNK_RUN_MIN = (UInt32)(79)
const WAIT_ASSOC_MAX_UNK_PER_JOB = (UInt32)(80)
const WAIT_ASSOC_MAX_UNK_PER_NODE = (UInt32)(81)
const WAIT_ASSOC_MAX_UNK_MINS_PER_JOB = (UInt32)(82)
const WAIT_ASSOC_MAX_CPU_PER_NODE = (UInt32)(83)
const WAIT_ASSOC_GRP_MEM_MIN = (UInt32)(84)
const WAIT_ASSOC_GRP_MEM_RUN_MIN = (UInt32)(85)
const WAIT_ASSOC_MAX_MEM_PER_JOB = (UInt32)(86)
const WAIT_ASSOC_MAX_MEM_PER_NODE = (UInt32)(87)
const WAIT_ASSOC_MAX_MEM_MINS_PER_JOB = (UInt32)(88)
const WAIT_ASSOC_GRP_NODE_MIN = (UInt32)(89)
const WAIT_ASSOC_GRP_NODE_RUN_MIN = (UInt32)(90)
const WAIT_ASSOC_MAX_NODE_MINS_PER_JOB = (UInt32)(91)
const WAIT_ASSOC_GRP_ENERGY = (UInt32)(92)
const WAIT_ASSOC_GRP_ENERGY_MIN = (UInt32)(93)
const WAIT_ASSOC_GRP_ENERGY_RUN_MIN = (UInt32)(94)
const WAIT_ASSOC_MAX_ENERGY_PER_JOB = (UInt32)(95)
const WAIT_ASSOC_MAX_ENERGY_PER_NODE = (UInt32)(96)
const WAIT_ASSOC_MAX_ENERGY_MINS_PER_JOB = (UInt32)(97)
const WAIT_ASSOC_GRP_GRES = (UInt32)(98)
const WAIT_ASSOC_GRP_GRES_MIN = (UInt32)(99)
const WAIT_ASSOC_GRP_GRES_RUN_MIN = (UInt32)(100)
const WAIT_ASSOC_MAX_GRES_PER_JOB = (UInt32)(101)
const WAIT_ASSOC_MAX_GRES_PER_NODE = (UInt32)(102)
const WAIT_ASSOC_MAX_GRES_MINS_PER_JOB = (UInt32)(103)
const WAIT_ASSOC_GRP_LIC = (UInt32)(104)
const WAIT_ASSOC_GRP_LIC_MIN = (UInt32)(105)
const WAIT_ASSOC_GRP_LIC_RUN_MIN = (UInt32)(106)
const WAIT_ASSOC_MAX_LIC_PER_JOB = (UInt32)(107)
const WAIT_ASSOC_MAX_LIC_MINS_PER_JOB = (UInt32)(108)
const WAIT_ASSOC_GRP_BB = (UInt32)(109)
const WAIT_ASSOC_GRP_BB_MIN = (UInt32)(110)
const WAIT_ASSOC_GRP_BB_RUN_MIN = (UInt32)(111)
const WAIT_ASSOC_MAX_BB_PER_JOB = (UInt32)(112)
const WAIT_ASSOC_MAX_BB_PER_NODE = (UInt32)(113)
const WAIT_ASSOC_MAX_BB_MINS_PER_JOB = (UInt32)(114)
const WAIT_QOS_GRP_UNK = (UInt32)(115)
const WAIT_QOS_GRP_UNK_MIN = (UInt32)(116)
const WAIT_QOS_GRP_UNK_RUN_MIN = (UInt32)(117)
const WAIT_QOS_MAX_UNK_PER_JOB = (UInt32)(118)
const WAIT_QOS_MAX_UNK_PER_NODE = (UInt32)(119)
const WAIT_QOS_MAX_UNK_PER_USER = (UInt32)(120)
const WAIT_QOS_MAX_UNK_MINS_PER_JOB = (UInt32)(121)
const WAIT_QOS_MIN_UNK = (UInt32)(122)
const WAIT_QOS_MAX_CPU_PER_NODE = (UInt32)(123)
const WAIT_QOS_GRP_MEM_MIN = (UInt32)(124)
const WAIT_QOS_GRP_MEM_RUN_MIN = (UInt32)(125)
const WAIT_QOS_MAX_MEM_MINS_PER_JOB = (UInt32)(126)
const WAIT_QOS_MAX_MEM_PER_JOB = (UInt32)(127)
const WAIT_QOS_MAX_MEM_PER_NODE = (UInt32)(128)
const WAIT_QOS_MAX_MEM_PER_USER = (UInt32)(129)
const WAIT_QOS_MIN_MEM = (UInt32)(130)
const WAIT_QOS_GRP_ENERGY = (UInt32)(131)
const WAIT_QOS_GRP_ENERGY_MIN = (UInt32)(132)
const WAIT_QOS_GRP_ENERGY_RUN_MIN = (UInt32)(133)
const WAIT_QOS_MAX_ENERGY_PER_JOB = (UInt32)(134)
const WAIT_QOS_MAX_ENERGY_PER_NODE = (UInt32)(135)
const WAIT_QOS_MAX_ENERGY_PER_USER = (UInt32)(136)
const WAIT_QOS_MAX_ENERGY_MINS_PER_JOB = (UInt32)(137)
const WAIT_QOS_MIN_ENERGY = (UInt32)(138)
const WAIT_QOS_GRP_NODE_MIN = (UInt32)(139)
const WAIT_QOS_GRP_NODE_RUN_MIN = (UInt32)(140)
const WAIT_QOS_MAX_NODE_MINS_PER_JOB = (UInt32)(141)
const WAIT_QOS_MIN_NODE = (UInt32)(142)
const WAIT_QOS_GRP_GRES = (UInt32)(143)
const WAIT_QOS_GRP_GRES_MIN = (UInt32)(144)
const WAIT_QOS_GRP_GRES_RUN_MIN = (UInt32)(145)
const WAIT_QOS_MAX_GRES_PER_JOB = (UInt32)(146)
const WAIT_QOS_MAX_GRES_PER_NODE = (UInt32)(147)
const WAIT_QOS_MAX_GRES_PER_USER = (UInt32)(148)
const WAIT_QOS_MAX_GRES_MINS_PER_JOB = (UInt32)(149)
const WAIT_QOS_MIN_GRES = (UInt32)(150)
const WAIT_QOS_GRP_LIC = (UInt32)(151)
const WAIT_QOS_GRP_LIC_MIN = (UInt32)(152)
const WAIT_QOS_GRP_LIC_RUN_MIN = (UInt32)(153)
const WAIT_QOS_MAX_LIC_PER_JOB = (UInt32)(154)
const WAIT_QOS_MAX_LIC_PER_USER = (UInt32)(155)
const WAIT_QOS_MAX_LIC_MINS_PER_JOB = (UInt32)(156)
const WAIT_QOS_MIN_LIC = (UInt32)(157)
const WAIT_QOS_GRP_BB = (UInt32)(158)
const WAIT_QOS_GRP_BB_MIN = (UInt32)(159)
const WAIT_QOS_GRP_BB_RUN_MIN = (UInt32)(160)
const WAIT_QOS_MAX_BB_PER_JOB = (UInt32)(161)
const WAIT_QOS_MAX_BB_PER_NODE = (UInt32)(162)
const WAIT_QOS_MAX_BB_PER_USER = (UInt32)(163)
const WAIT_QOS_MAX_BB_MINS_PER_JOB = (UInt32)(164)
const WAIT_QOS_MIN_BB = (UInt32)(165)
const FAIL_DEADLINE = (UInt32)(166)
const WAIT_QOS_MAX_BB_PER_ACCT = (UInt32)(167)
const WAIT_QOS_MAX_CPU_PER_ACCT = (UInt32)(168)
const WAIT_QOS_MAX_ENERGY_PER_ACCT = (UInt32)(169)
const WAIT_QOS_MAX_GRES_PER_ACCT = (UInt32)(170)
const WAIT_QOS_MAX_NODE_PER_ACCT = (UInt32)(171)
const WAIT_QOS_MAX_LIC_PER_ACCT = (UInt32)(172)
const WAIT_QOS_MAX_MEM_PER_ACCT = (UInt32)(173)
const WAIT_QOS_MAX_UNK_PER_ACCT = (UInt32)(174)
const WAIT_QOS_MAX_JOB_PER_ACCT = (UInt32)(175)
const WAIT_QOS_MAX_SUB_JOB_PER_ACCT = (UInt32)(176)
# end enum job_state_reason

# begin enum job_acct_types
typealias job_acct_types UInt32
const JOB_START = (UInt32)(0)
const JOB_STEP = (UInt32)(1)
const JOB_SUSPEND = (UInt32)(2)
const JOB_TERMINATED = (UInt32)(3)
# end enum job_acct_types

# begin enum connection_type
typealias connection_type UInt32
const SELECT_MESH = (UInt32)(0)
const SELECT_TORUS = (UInt32)(1)
const SELECT_NAV = (UInt32)(2)
const SELECT_SMALL = (UInt32)(3)
const SELECT_HTC_S = (UInt32)(4)
const SELECT_HTC_D = (UInt32)(5)
const SELECT_HTC_V = (UInt32)(6)
const SELECT_HTC_L = (UInt32)(7)
# end enum connection_type

# begin enum node_use_type
typealias node_use_type UInt32
const SELECT_COPROCESSOR_MODE = (UInt32)(0)
const SELECT_VIRTUAL_NODE_MODE = (UInt32)(1)
const SELECT_NAV_MODE = (UInt32)(2)
# end enum node_use_type

# begin enum select_plugin_type
typealias select_plugin_type UInt32
const SELECT_PLUGIN_BLUEGENE = (UInt32)(100)
const SELECT_PLUGIN_CONS_RES = (UInt32)(101)
const SELECT_PLUGIN_LINEAR = (UInt32)(102)
const SELECT_PLUGIN_ALPS = (UInt32)(104)
const SELECT_PLUGIN_SERIAL = (UInt32)(106)
const SELECT_PLUGIN_CRAY_LINEAR = (UInt32)(107)
const SELECT_PLUGIN_CRAY_CONS_RES = (UInt32)(108)
# end enum select_plugin_type

# begin enum select_jobdata_type
typealias select_jobdata_type UInt32
const SELECT_JOBDATA_GEOMETRY = (UInt32)(0)
const SELECT_JOBDATA_ROTATE = (UInt32)(1)
const SELECT_JOBDATA_CONN_TYPE = (UInt32)(2)
const SELECT_JOBDATA_BLOCK_ID = (UInt32)(3)
const SELECT_JOBDATA_NODES = (UInt32)(4)
const SELECT_JOBDATA_IONODES = (UInt32)(5)
const SELECT_JOBDATA_NODE_CNT = (UInt32)(6)
const SELECT_JOBDATA_ALTERED = (UInt32)(7)
const SELECT_JOBDATA_BLRTS_IMAGE = (UInt32)(8)
const SELECT_JOBDATA_LINUX_IMAGE = (UInt32)(9)
const SELECT_JOBDATA_MLOADER_IMAGE = (UInt32)(10)
const SELECT_JOBDATA_RAMDISK_IMAGE = (UInt32)(11)
const SELECT_JOBDATA_REBOOT = (UInt32)(12)
const SELECT_JOBDATA_RESV_ID = (UInt32)(13)
const SELECT_JOBDATA_PAGG_ID = (UInt32)(14)
const SELECT_JOBDATA_PTR = (UInt32)(15)
const SELECT_JOBDATA_BLOCK_PTR = (UInt32)(16)
const SELECT_JOBDATA_DIM_CNT = (UInt32)(17)
const SELECT_JOBDATA_BLOCK_NODE_CNT = (UInt32)(18)
const SELECT_JOBDATA_START_LOC = (UInt32)(19)
const SELECT_JOBDATA_USER_NAME = (UInt32)(20)
const SELECT_JOBDATA_CONFIRMED = (UInt32)(21)
const SELECT_JOBDATA_CLEANING = (UInt32)(22)
const SELECT_JOBDATA_NETWORK = (UInt32)(23)
# end enum select_jobdata_type

# begin enum select_nodedata_type
typealias select_nodedata_type UInt32
const SELECT_NODEDATA_BITMAP_SIZE = (UInt32)(0)
const SELECT_NODEDATA_SUBGRP_SIZE = (UInt32)(1)
const SELECT_NODEDATA_SUBCNT = (UInt32)(2)
const SELECT_NODEDATA_BITMAP = (UInt32)(3)
const SELECT_NODEDATA_STR = (UInt32)(4)
const SELECT_NODEDATA_PTR = (UInt32)(5)
const SELECT_NODEDATA_EXTRA_INFO = (UInt32)(6)
const SELECT_NODEDATA_RACK_MP = (UInt32)(7)
const SELECT_NODEDATA_MEM_ALLOC = (UInt32)(8)
# end enum select_nodedata_type

# begin enum select_print_mode
typealias select_print_mode UInt32
const SELECT_PRINT_HEAD = (UInt32)(0)
const SELECT_PRINT_DATA = (UInt32)(1)
const SELECT_PRINT_MIXED = (UInt32)(2)
const SELECT_PRINT_MIXED_SHORT = (UInt32)(3)
const SELECT_PRINT_BG_ID = (UInt32)(4)
const SELECT_PRINT_NODES = (UInt32)(5)
const SELECT_PRINT_CONNECTION = (UInt32)(6)
const SELECT_PRINT_ROTATE = (UInt32)(7)
const SELECT_PRINT_GEOMETRY = (UInt32)(8)
const SELECT_PRINT_START = (UInt32)(9)
const SELECT_PRINT_BLRTS_IMAGE = (UInt32)(10)
const SELECT_PRINT_LINUX_IMAGE = (UInt32)(11)
const SELECT_PRINT_MLOADER_IMAGE = (UInt32)(12)
const SELECT_PRINT_RAMDISK_IMAGE = (UInt32)(13)
const SELECT_PRINT_REBOOT = (UInt32)(14)
const SELECT_PRINT_RESV_ID = (UInt32)(15)
const SELECT_PRINT_START_LOC = (UInt32)(16)
# end enum select_print_mode

# begin enum select_node_cnt
typealias select_node_cnt UInt32
const SELECT_GET_NODE_SCALING = (UInt32)(0)
const SELECT_GET_NODE_CPU_CNT = (UInt32)(1)
const SELECT_GET_MP_CPU_CNT = (UInt32)(2)
const SELECT_APPLY_NODE_MIN_OFFSET = (UInt32)(3)
const SELECT_APPLY_NODE_MAX_OFFSET = (UInt32)(4)
const SELECT_SET_NODE_CNT = (UInt32)(5)
const SELECT_SET_MP_CNT = (UInt32)(6)
# end enum select_node_cnt

# begin enum acct_gather_profile_info
typealias acct_gather_profile_info UInt32
const ACCT_GATHER_PROFILE_DIR = (UInt32)(0)
const ACCT_GATHER_PROFILE_DEFAULT = (UInt32)(1)
const ACCT_GATHER_PROFILE_RUNNING = (UInt32)(2)
# end enum acct_gather_profile_info

# begin enum jobacct_data_type
typealias jobacct_data_type UInt32
const JOBACCT_DATA_TOTAL = (UInt32)(0)
const JOBACCT_DATA_PIPE = (UInt32)(1)
const JOBACCT_DATA_RUSAGE = (UInt32)(2)
const JOBACCT_DATA_MAX_VSIZE = (UInt32)(3)
const JOBACCT_DATA_MAX_VSIZE_ID = (UInt32)(4)
const JOBACCT_DATA_TOT_VSIZE = (UInt32)(5)
const JOBACCT_DATA_MAX_RSS = (UInt32)(6)
const JOBACCT_DATA_MAX_RSS_ID = (UInt32)(7)
const JOBACCT_DATA_TOT_RSS = (UInt32)(8)
const JOBACCT_DATA_MAX_PAGES = (UInt32)(9)
const JOBACCT_DATA_MAX_PAGES_ID = (UInt32)(10)
const JOBACCT_DATA_TOT_PAGES = (UInt32)(11)
const JOBACCT_DATA_MIN_CPU = (UInt32)(12)
const JOBACCT_DATA_MIN_CPU_ID = (UInt32)(13)
const JOBACCT_DATA_TOT_CPU = (UInt32)(14)
const JOBACCT_DATA_ACT_CPUFREQ = (UInt32)(15)
const JOBACCT_DATA_CONSUMED_ENERGY = (UInt32)(16)
const JOBACCT_DATA_MAX_DISK_READ = (UInt32)(17)
const JOBACCT_DATA_MAX_DISK_READ_ID = (UInt32)(18)
const JOBACCT_DATA_TOT_DISK_READ = (UInt32)(19)
const JOBACCT_DATA_MAX_DISK_WRITE = (UInt32)(20)
const JOBACCT_DATA_MAX_DISK_WRITE_ID = (UInt32)(21)
const JOBACCT_DATA_TOT_DISK_WRITE = (UInt32)(22)
# end enum jobacct_data_type

# begin enum acct_energy_type
typealias acct_energy_type UInt32
const ENERGY_DATA_JOULES_TASK = (UInt32)(0)
const ENERGY_DATA_STRUCT = (UInt32)(1)
const ENERGY_DATA_RECONFIG = (UInt32)(2)
const ENERGY_DATA_PROFILE = (UInt32)(3)
const ENERGY_DATA_LAST_POLL = (UInt32)(4)
const ENERGY_DATA_SENSOR_CNT = (UInt32)(5)
const ENERGY_DATA_NODE_ENERGY = (UInt32)(6)
const ENERGY_DATA_NODE_ENERGY_UP = (UInt32)(7)
# end enum acct_energy_type

# begin enum task_dist_states
typealias task_dist_states UInt32
const SLURM_DIST_CYCLIC = (UInt32)(1)
const SLURM_DIST_BLOCK = (UInt32)(2)
const SLURM_DIST_ARBITRARY = (UInt32)(3)
const SLURM_DIST_PLANE = (UInt32)(4)
const SLURM_DIST_CYCLIC_CYCLIC = (UInt32)(17)
const SLURM_DIST_CYCLIC_BLOCK = (UInt32)(33)
const SLURM_DIST_CYCLIC_CFULL = (UInt32)(49)
const SLURM_DIST_BLOCK_CYCLIC = (UInt32)(18)
const SLURM_DIST_BLOCK_BLOCK = (UInt32)(34)
const SLURM_DIST_BLOCK_CFULL = (UInt32)(50)
const SLURM_DIST_CYCLIC_CYCLIC_CYCLIC = (UInt32)(273)
const SLURM_DIST_CYCLIC_CYCLIC_BLOCK = (UInt32)(529)
const SLURM_DIST_CYCLIC_CYCLIC_CFULL = (UInt32)(785)
const SLURM_DIST_CYCLIC_BLOCK_CYCLIC = (UInt32)(289)
const SLURM_DIST_CYCLIC_BLOCK_BLOCK = (UInt32)(545)
const SLURM_DIST_CYCLIC_BLOCK_CFULL = (UInt32)(801)
const SLURM_DIST_CYCLIC_CFULL_CYCLIC = (UInt32)(305)
const SLURM_DIST_CYCLIC_CFULL_BLOCK = (UInt32)(561)
const SLURM_DIST_CYCLIC_CFULL_CFULL = (UInt32)(817)
const SLURM_DIST_BLOCK_CYCLIC_CYCLIC = (UInt32)(274)
const SLURM_DIST_BLOCK_CYCLIC_BLOCK = (UInt32)(530)
const SLURM_DIST_BLOCK_CYCLIC_CFULL = (UInt32)(786)
const SLURM_DIST_BLOCK_BLOCK_CYCLIC = (UInt32)(290)
const SLURM_DIST_BLOCK_BLOCK_BLOCK = (UInt32)(546)
const SLURM_DIST_BLOCK_BLOCK_CFULL = (UInt32)(802)
const SLURM_DIST_BLOCK_CFULL_CYCLIC = (UInt32)(306)
const SLURM_DIST_BLOCK_CFULL_BLOCK = (UInt32)(562)
const SLURM_DIST_BLOCK_CFULL_CFULL = (UInt32)(818)
const SLURM_DIST_NODECYCLIC = (UInt32)(1)
const SLURM_DIST_NODEBLOCK = (UInt32)(2)
const SLURM_DIST_SOCKCYCLIC = (UInt32)(16)
const SLURM_DIST_SOCKBLOCK = (UInt32)(32)
const SLURM_DIST_SOCKCFULL = (UInt32)(48)
const SLURM_DIST_CORECYCLIC = (UInt32)(256)
const SLURM_DIST_COREBLOCK = (UInt32)(512)
const SLURM_DIST_CORECFULL = (UInt32)(768)
const SLURM_DIST_NO_LLLP = (UInt32)(4096)
const SLURM_DIST_UNKNOWN = (UInt32)(8192)
# end enum task_dist_states

# begin enum task_dist_states_t
typealias task_dist_states_t UInt32
const SLURM_DIST_CYCLIC = (UInt32)(1)
const SLURM_DIST_BLOCK = (UInt32)(2)
const SLURM_DIST_ARBITRARY = (UInt32)(3)
const SLURM_DIST_PLANE = (UInt32)(4)
const SLURM_DIST_CYCLIC_CYCLIC = (UInt32)(17)
const SLURM_DIST_CYCLIC_BLOCK = (UInt32)(33)
const SLURM_DIST_CYCLIC_CFULL = (UInt32)(49)
const SLURM_DIST_BLOCK_CYCLIC = (UInt32)(18)
const SLURM_DIST_BLOCK_BLOCK = (UInt32)(34)
const SLURM_DIST_BLOCK_CFULL = (UInt32)(50)
const SLURM_DIST_CYCLIC_CYCLIC_CYCLIC = (UInt32)(273)
const SLURM_DIST_CYCLIC_CYCLIC_BLOCK = (UInt32)(529)
const SLURM_DIST_CYCLIC_CYCLIC_CFULL = (UInt32)(785)
const SLURM_DIST_CYCLIC_BLOCK_CYCLIC = (UInt32)(289)
const SLURM_DIST_CYCLIC_BLOCK_BLOCK = (UInt32)(545)
const SLURM_DIST_CYCLIC_BLOCK_CFULL = (UInt32)(801)
const SLURM_DIST_CYCLIC_CFULL_CYCLIC = (UInt32)(305)
const SLURM_DIST_CYCLIC_CFULL_BLOCK = (UInt32)(561)
const SLURM_DIST_CYCLIC_CFULL_CFULL = (UInt32)(817)
const SLURM_DIST_BLOCK_CYCLIC_CYCLIC = (UInt32)(274)
const SLURM_DIST_BLOCK_CYCLIC_BLOCK = (UInt32)(530)
const SLURM_DIST_BLOCK_CYCLIC_CFULL = (UInt32)(786)
const SLURM_DIST_BLOCK_BLOCK_CYCLIC = (UInt32)(290)
const SLURM_DIST_BLOCK_BLOCK_BLOCK = (UInt32)(546)
const SLURM_DIST_BLOCK_BLOCK_CFULL = (UInt32)(802)
const SLURM_DIST_BLOCK_CFULL_CYCLIC = (UInt32)(306)
const SLURM_DIST_BLOCK_CFULL_BLOCK = (UInt32)(562)
const SLURM_DIST_BLOCK_CFULL_CFULL = (UInt32)(818)
const SLURM_DIST_NODECYCLIC = (UInt32)(1)
const SLURM_DIST_NODEBLOCK = (UInt32)(2)
const SLURM_DIST_SOCKCYCLIC = (UInt32)(16)
const SLURM_DIST_SOCKBLOCK = (UInt32)(32)
const SLURM_DIST_SOCKCFULL = (UInt32)(48)
const SLURM_DIST_CORECYCLIC = (UInt32)(256)
const SLURM_DIST_COREBLOCK = (UInt32)(512)
const SLURM_DIST_CORECFULL = (UInt32)(768)
const SLURM_DIST_NO_LLLP = (UInt32)(4096)
const SLURM_DIST_UNKNOWN = (UInt32)(8192)
# end enum task_dist_states_t

# begin enum cpu_bind_type
typealias cpu_bind_type UInt32
const CPU_BIND_VERBOSE = (UInt32)(1)
const CPU_BIND_TO_THREADS = (UInt32)(2)
const CPU_BIND_TO_CORES = (UInt32)(4)
const CPU_BIND_TO_SOCKETS = (UInt32)(8)
const CPU_BIND_TO_LDOMS = (UInt32)(16)
const CPU_BIND_TO_BOARDS = (UInt32)(4096)
const CPU_BIND_NONE = (UInt32)(32)
const CPU_BIND_RANK = (UInt32)(64)
const CPU_BIND_MAP = (UInt32)(128)
const CPU_BIND_MASK = (UInt32)(256)
const CPU_BIND_LDRANK = (UInt32)(512)
const CPU_BIND_LDMAP = (UInt32)(1024)
const CPU_BIND_LDMASK = (UInt32)(2048)
const CPU_BIND_ONE_THREAD_PER_CORE = (UInt32)(8192)
const CPU_BIND_CPUSETS = (UInt32)(32768)
const CPU_AUTO_BIND_TO_THREADS = (UInt32)(16384)
const CPU_AUTO_BIND_TO_CORES = (UInt32)(65536)
const CPU_AUTO_BIND_TO_SOCKETS = (UInt32)(131072)
# end enum cpu_bind_type

# begin enum cpu_bind_type_t
typealias cpu_bind_type_t UInt32
const CPU_BIND_VERBOSE = (UInt32)(1)
const CPU_BIND_TO_THREADS = (UInt32)(2)
const CPU_BIND_TO_CORES = (UInt32)(4)
const CPU_BIND_TO_SOCKETS = (UInt32)(8)
const CPU_BIND_TO_LDOMS = (UInt32)(16)
const CPU_BIND_TO_BOARDS = (UInt32)(4096)
const CPU_BIND_NONE = (UInt32)(32)
const CPU_BIND_RANK = (UInt32)(64)
const CPU_BIND_MAP = (UInt32)(128)
const CPU_BIND_MASK = (UInt32)(256)
const CPU_BIND_LDRANK = (UInt32)(512)
const CPU_BIND_LDMAP = (UInt32)(1024)
const CPU_BIND_LDMASK = (UInt32)(2048)
const CPU_BIND_ONE_THREAD_PER_CORE = (UInt32)(8192)
const CPU_BIND_CPUSETS = (UInt32)(32768)
const CPU_AUTO_BIND_TO_THREADS = (UInt32)(16384)
const CPU_AUTO_BIND_TO_CORES = (UInt32)(65536)
const CPU_AUTO_BIND_TO_SOCKETS = (UInt32)(131072)
# end enum cpu_bind_type_t

# begin enum mem_bind_type
typealias mem_bind_type UInt32
const MEM_BIND_VERBOSE = (UInt32)(1)
const MEM_BIND_NONE = (UInt32)(2)
const MEM_BIND_RANK = (UInt32)(4)
const MEM_BIND_MAP = (UInt32)(8)
const MEM_BIND_MASK = (UInt32)(16)
const MEM_BIND_LOCAL = (UInt32)(32)
# end enum mem_bind_type

# begin enum mem_bind_type_t
typealias mem_bind_type_t UInt32
const MEM_BIND_VERBOSE = (UInt32)(1)
const MEM_BIND_NONE = (UInt32)(2)
const MEM_BIND_RANK = (UInt32)(4)
const MEM_BIND_MAP = (UInt32)(8)
const MEM_BIND_MASK = (UInt32)(16)
const MEM_BIND_LOCAL = (UInt32)(32)
# end enum mem_bind_type_t

# begin enum accel_bind_type
typealias accel_bind_type UInt32
const ACCEL_BIND_VERBOSE = (UInt32)(1)
const ACCEL_BIND_CLOSEST_GPU = (UInt32)(2)
const ACCEL_BIND_CLOSEST_MIC = (UInt32)(4)
const ACCEL_BIND_CLOSEST_NIC = (UInt32)(8)
# end enum accel_bind_type

# begin enum accel_bind_type_t
typealias accel_bind_type_t UInt32
const ACCEL_BIND_VERBOSE = (UInt32)(1)
const ACCEL_BIND_CLOSEST_GPU = (UInt32)(2)
const ACCEL_BIND_CLOSEST_MIC = (UInt32)(4)
const ACCEL_BIND_CLOSEST_NIC = (UInt32)(8)
# end enum accel_bind_type_t

# begin enum node_states
typealias node_states UInt32
const NODE_STATE_UNKNOWN = (UInt32)(0)
const NODE_STATE_DOWN = (UInt32)(1)
const NODE_STATE_IDLE = (UInt32)(2)
const NODE_STATE_ALLOCATED = (UInt32)(3)
const NODE_STATE_ERROR = (UInt32)(4)
const NODE_STATE_MIXED = (UInt32)(5)
const NODE_STATE_FUTURE = (UInt32)(6)
const NODE_STATE_END = (UInt32)(7)
# end enum node_states

# begin enum ctx_keys
typealias ctx_keys UInt32
const SLURM_STEP_CTX_STEPID = (UInt32)(0)
const SLURM_STEP_CTX_TASKS = (UInt32)(1)
const SLURM_STEP_CTX_TID = (UInt32)(2)
const SLURM_STEP_CTX_RESP = (UInt32)(3)
const SLURM_STEP_CTX_CRED = (UInt32)(4)
const SLURM_STEP_CTX_SWITCH_JOB = (UInt32)(5)
const SLURM_STEP_CTX_NUM_HOSTS = (UInt32)(6)
const SLURM_STEP_CTX_HOST = (UInt32)(7)
const SLURM_STEP_CTX_JOBID = (UInt32)(8)
const SLURM_STEP_CTX_USER_MANAGED_SOCKETS = (UInt32)(9)
# end enum ctx_keys

immutable hostlist
end

typealias hostlist_t Ptr{hostlist}

immutable list
end

typealias List Ptr{list}

immutable listIterator
end

typealias ListIterator Ptr{listIterator}
typealias ListDelF Ptr{Void}
typealias ListCmpF Ptr{Void}
typealias ListFindF Ptr{Void}
typealias ListForF Ptr{Void}
typealias bitstr_t Int32
typealias bitoff_t bitstr_t

immutable dynamic_plugin_data
    data::Ptr{Void}
    plugin_id::UInt32
end

immutable dynamic_plugin_data_t
    data::Ptr{Void}
    plugin_id::UInt32
end

immutable acct_gather_energy
    base_consumed_energy::UInt64
    base_watts::UInt32
    consumed_energy::UInt64
    current_watts::UInt32
    previous_consumed_energy::UInt64
    poll_time::time_t
end

immutable acct_gather_energy_t
    base_consumed_energy::UInt64
    base_watts::UInt32
    consumed_energy::UInt64
    current_watts::UInt32
    previous_consumed_energy::UInt64
    poll_time::time_t
end

immutable ext_sensors_data
    consumed_energy::UInt64
    temperature::UInt32
    energy_update_time::time_t
    current_watts::UInt32
end

immutable ext_sensors_data_t
    consumed_energy::UInt64
    temperature::UInt32
    energy_update_time::time_t
    current_watts::UInt32
end

immutable power_mgmt_data
    cap_watts::UInt32
    current_watts::UInt32
    joule_counter::UInt64
    new_cap_watts::UInt32
    max_watts::UInt32
    min_watts::UInt32
    new_job_time::time_t
    state::UInt16
    time_usec::UInt64
end

immutable power_mgmt_data_t
    cap_watts::UInt32
    current_watts::UInt32
    joule_counter::UInt64
    new_cap_watts::UInt32
    max_watts::UInt32
    min_watts::UInt32
    new_job_time::time_t
    state::UInt16
    time_usec::UInt64
end

immutable job_descriptor
    account::Cstring
    acctg_freq::Cstring
    alloc_node::Cstring
    alloc_resp_port::UInt16
    alloc_sid::UInt32
    argc::UInt32
    argv::Ptr{Cstring}
    array_inx::Cstring
    array_bitmap::Ptr{Void}
    begin_time::time_t
    bitflags::UInt32
    burst_buffer::Cstring
    ckpt_interval::UInt16
    ckpt_dir::Cstring
    clusters::Cstring
    comment::Cstring
    contiguous::UInt16
    core_spec::UInt16
    cpu_bind::Cstring
    cpu_bind_type::UInt16
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    deadline::time_t
    dependency::Cstring
    end_time::time_t
    environment::Ptr{Cstring}
    env_size::UInt32
    exc_nodes::Cstring
    features::Cstring
    gres::Cstring
    group_id::UInt32
    immediate::UInt16
    job_id::UInt32
    job_id_str::Cstring
    kill_on_node_fail::UInt16
    licenses::Cstring
    mail_type::UInt16
    mail_user::Cstring
    mcs_label::Cstring
    mem_bind::Cstring
    mem_bind_type::UInt16
    name::Cstring
    network::Cstring
    nice::UInt32
    num_tasks::UInt32
    open_mode::UInt8
    other_port::UInt16
    overcommit::UInt8
    partition::Cstring
    plane_size::UInt16
    power_flags::UInt8
    priority::UInt32
    profile::UInt32
    qos::Cstring
    reboot::UInt16
    resp_host::Cstring
    req_nodes::Cstring
    requeue::UInt16
    reservation::Cstring
    script::Cstring
    shared::UInt16
    spank_job_env::Ptr{Cstring}
    spank_job_env_size::UInt32
    task_dist::UInt32
    time_limit::UInt32
    time_min::UInt32
    user_id::UInt32
    wait_all_nodes::UInt16
    warn_flags::UInt16
    warn_signal::UInt16
    warn_time::UInt16
    work_dir::Cstring
    cpus_per_task::UInt16
    min_cpus::UInt32
    max_cpus::UInt32
    min_nodes::UInt32
    max_nodes::UInt32
    boards_per_node::UInt16
    sockets_per_board::UInt16
    sockets_per_node::UInt16
    cores_per_socket::UInt16
    threads_per_core::UInt16
    ntasks_per_node::UInt16
    ntasks_per_socket::UInt16
    ntasks_per_core::UInt16
    ntasks_per_board::UInt16
    pn_min_cpus::UInt16
    pn_min_memory::UInt32
    pn_min_tmp_disk::UInt32
    geometry::NTuple{5,UInt16}
    conn_type::NTuple{5,UInt16}
    rotate::UInt16
    blrtsimage::Cstring
    linuximage::Cstring
    mloaderimage::Cstring
    ramdiskimage::Cstring
    req_switch::UInt32
    select_jobinfo::Ptr{dynamic_plugin_data_t}
    std_err::Cstring
    std_in::Cstring
    std_out::Cstring
    tres_req_cnt::Ptr{UInt64}
    wait4switch::UInt32
    wckey::Cstring
end

immutable job_desc_msg_t
    account::Cstring
    acctg_freq::Cstring
    alloc_node::Cstring
    alloc_resp_port::UInt16
    alloc_sid::UInt32
    argc::UInt32
    argv::Ptr{Cstring}
    array_inx::Cstring
    array_bitmap::Ptr{Void}
    begin_time::time_t
    bitflags::UInt32
    burst_buffer::Cstring
    ckpt_interval::UInt16
    ckpt_dir::Cstring
    clusters::Cstring
    comment::Cstring
    contiguous::UInt16
    core_spec::UInt16
    cpu_bind::Cstring
    cpu_bind_type::UInt16
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    deadline::time_t
    dependency::Cstring
    end_time::time_t
    environment::Ptr{Cstring}
    env_size::UInt32
    exc_nodes::Cstring
    features::Cstring
    gres::Cstring
    group_id::UInt32
    immediate::UInt16
    job_id::UInt32
    job_id_str::Cstring
    kill_on_node_fail::UInt16
    licenses::Cstring
    mail_type::UInt16
    mail_user::Cstring
    mcs_label::Cstring
    mem_bind::Cstring
    mem_bind_type::UInt16
    name::Cstring
    network::Cstring
    nice::UInt32
    num_tasks::UInt32
    open_mode::UInt8
    other_port::UInt16
    overcommit::UInt8
    partition::Cstring
    plane_size::UInt16
    power_flags::UInt8
    priority::UInt32
    profile::UInt32
    qos::Cstring
    reboot::UInt16
    resp_host::Cstring
    req_nodes::Cstring
    requeue::UInt16
    reservation::Cstring
    script::Cstring
    shared::UInt16
    spank_job_env::Ptr{Cstring}
    spank_job_env_size::UInt32
    task_dist::UInt32
    time_limit::UInt32
    time_min::UInt32
    user_id::UInt32
    wait_all_nodes::UInt16
    warn_flags::UInt16
    warn_signal::UInt16
    warn_time::UInt16
    work_dir::Cstring
    cpus_per_task::UInt16
    min_cpus::UInt32
    max_cpus::UInt32
    min_nodes::UInt32
    max_nodes::UInt32
    boards_per_node::UInt16
    sockets_per_board::UInt16
    sockets_per_node::UInt16
    cores_per_socket::UInt16
    threads_per_core::UInt16
    ntasks_per_node::UInt16
    ntasks_per_socket::UInt16
    ntasks_per_core::UInt16
    ntasks_per_board::UInt16
    pn_min_cpus::UInt16
    pn_min_memory::UInt32
    pn_min_tmp_disk::UInt32
    geometry::NTuple{5,UInt16}
    conn_type::NTuple{5,UInt16}
    rotate::UInt16
    blrtsimage::Cstring
    linuximage::Cstring
    mloaderimage::Cstring
    ramdiskimage::Cstring
    req_switch::UInt32
    select_jobinfo::Ptr{dynamic_plugin_data_t}
    std_err::Cstring
    std_in::Cstring
    std_out::Cstring
    tres_req_cnt::Ptr{UInt64}
    wait4switch::UInt32
    wckey::Cstring
end

immutable job_info
    account::Cstring
    alloc_node::Cstring
    alloc_sid::UInt32
    array_bitmap::Ptr{Void}
    array_job_id::UInt32
    array_task_id::UInt32
    array_max_tasks::UInt32
    array_task_str::Cstring
    assoc_id::UInt32
    batch_flag::UInt16
    batch_host::Cstring
    batch_script::Cstring
    bitflags::UInt32
    boards_per_node::UInt16
    burst_buffer::Cstring
    command::Cstring
    comment::Cstring
    contiguous::UInt16
    core_spec::UInt16
    cores_per_socket::UInt16
    billable_tres::Cdouble
    cpus_per_task::UInt16
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    deadline::time_t
    dependency::Cstring
    derived_ec::UInt32
    eligible_time::time_t
    end_time::time_t
    exc_nodes::Cstring
    exc_node_inx::Ptr{Int32}
    exit_code::UInt32
    features::Cstring
    gres::Cstring
    group_id::UInt32
    job_id::UInt32
    job_resrcs::Ptr{job_resources_t}
    job_state::UInt32
    licenses::Cstring
    max_cpus::UInt32
    max_nodes::UInt32
    mcs_label::Cstring
    name::Cstring
    network::Cstring
    nodes::Cstring
    nice::UInt32
    node_inx::Ptr{Int32}
    ntasks_per_core::UInt16
    ntasks_per_node::UInt16
    ntasks_per_socket::UInt16
    ntasks_per_board::UInt16
    num_cpus::UInt32
    num_nodes::UInt32
    num_tasks::UInt32
    partition::Cstring
    pn_min_memory::UInt32
    pn_min_cpus::UInt16
    pn_min_tmp_disk::UInt32
    power_flags::UInt8
    preempt_time::time_t
    pre_sus_time::time_t
    priority::UInt32
    profile::UInt32
    qos::Cstring
    reboot::UInt8
    req_nodes::Cstring
    req_node_inx::Ptr{Int32}
    req_switch::UInt32
    requeue::UInt16
    resize_time::time_t
    restart_cnt::UInt16
    resv_name::Cstring
    sched_nodes::Cstring
    select_jobinfo::Ptr{dynamic_plugin_data_t}
    shared::UInt16
    show_flags::UInt16
    sockets_per_board::UInt16
    sockets_per_node::UInt16
    start_time::time_t
    start_protocol_ver::UInt16
    state_desc::Cstring
    state_reason::UInt16
    std_err::Cstring
    std_in::Cstring
    std_out::Cstring
    submit_time::time_t
    suspend_time::time_t
    time_limit::UInt32
    time_min::UInt32
    threads_per_core::UInt16
    tres_req_str::Cstring
    tres_alloc_str::Cstring
    user_id::UInt32
    wait4switch::UInt32
    wckey::Cstring
    work_dir::Cstring
end

immutable slurm_job_info_t
    account::Cstring
    alloc_node::Cstring
    alloc_sid::UInt32
    array_bitmap::Ptr{Void}
    array_job_id::UInt32
    array_task_id::UInt32
    array_max_tasks::UInt32
    array_task_str::Cstring
    assoc_id::UInt32
    batch_flag::UInt16
    batch_host::Cstring
    batch_script::Cstring
    bitflags::UInt32
    boards_per_node::UInt16
    burst_buffer::Cstring
    command::Cstring
    comment::Cstring
    contiguous::UInt16
    core_spec::UInt16
    cores_per_socket::UInt16
    billable_tres::Cdouble
    cpus_per_task::UInt16
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    deadline::time_t
    dependency::Cstring
    derived_ec::UInt32
    eligible_time::time_t
    end_time::time_t
    exc_nodes::Cstring
    exc_node_inx::Ptr{Int32}
    exit_code::UInt32
    features::Cstring
    gres::Cstring
    group_id::UInt32
    job_id::UInt32
    job_resrcs::Ptr{job_resources_t}
    job_state::UInt32
    licenses::Cstring
    max_cpus::UInt32
    max_nodes::UInt32
    mcs_label::Cstring
    name::Cstring
    network::Cstring
    nodes::Cstring
    nice::UInt32
    node_inx::Ptr{Int32}
    ntasks_per_core::UInt16
    ntasks_per_node::UInt16
    ntasks_per_socket::UInt16
    ntasks_per_board::UInt16
    num_cpus::UInt32
    num_nodes::UInt32
    num_tasks::UInt32
    partition::Cstring
    pn_min_memory::UInt32
    pn_min_cpus::UInt16
    pn_min_tmp_disk::UInt32
    power_flags::UInt8
    preempt_time::time_t
    pre_sus_time::time_t
    priority::UInt32
    profile::UInt32
    qos::Cstring
    reboot::UInt8
    req_nodes::Cstring
    req_node_inx::Ptr{Int32}
    req_switch::UInt32
    requeue::UInt16
    resize_time::time_t
    restart_cnt::UInt16
    resv_name::Cstring
    sched_nodes::Cstring
    select_jobinfo::Ptr{dynamic_plugin_data_t}
    shared::UInt16
    show_flags::UInt16
    sockets_per_board::UInt16
    sockets_per_node::UInt16
    start_time::time_t
    start_protocol_ver::UInt16
    state_desc::Cstring
    state_reason::UInt16
    std_err::Cstring
    std_in::Cstring
    std_out::Cstring
    submit_time::time_t
    suspend_time::time_t
    time_limit::UInt32
    time_min::UInt32
    threads_per_core::UInt16
    tres_req_str::Cstring
    tres_alloc_str::Cstring
    user_id::UInt32
    wait4switch::UInt32
    wckey::Cstring
    work_dir::Cstring
end

typealias job_info_t slurm_job_info_t

immutable job_info_msg
    last_update::time_t
    record_count::UInt32
    job_array::Ptr{slurm_job_info_t}
end

immutable job_info_msg_t
    last_update::time_t
    record_count::UInt32
    job_array::Ptr{slurm_job_info_t}
end

immutable step_update_request_msg
    end_time::time_t
    exit_code::UInt32
    job_id::UInt32
    jobacct::Ptr{jobacctinfo_t}
    name::Cstring
    start_time::time_t
    step_id::UInt32
    time_limit::UInt32
end

immutable step_update_request_msg_t
    end_time::time_t
    exit_code::UInt32
    job_id::UInt32
    jobacct::Ptr{jobacctinfo_t}
    name::Cstring
    start_time::time_t
    step_id::UInt32
    time_limit::UInt32
end

immutable slurm_step_layout
    front_end::Cstring
    node_cnt::UInt32
    node_list::Cstring
    plane_size::UInt16
    start_protocol_ver::UInt16
    tasks::Ptr{UInt16}
    task_cnt::UInt32
    task_dist::UInt32
    tids::Ptr{Ptr{UInt32}}
end

immutable slurm_step_layout_t
    front_end::Cstring
    node_cnt::UInt32
    node_list::Cstring
    plane_size::UInt16
    start_protocol_ver::UInt16
    tasks::Ptr{UInt16}
    task_cnt::UInt32
    task_dist::UInt32
    tids::Ptr{Ptr{UInt32}}
end

immutable slurm_step_io_fds
    _in::Void
    out::Void
    err::Void
end

immutable slurm_step_io_fds_t
    _in::Void
    out::Void
    err::Void
end

immutable launch_tasks_response_msg
    return_code::UInt32
    node_name::Cstring
    srun_node_id::UInt32
    count_of_pids::UInt32
    local_pids::Ptr{UInt32}
    task_ids::Ptr{UInt32}
end

immutable launch_tasks_response_msg_t
    return_code::UInt32
    node_name::Cstring
    srun_node_id::UInt32
    count_of_pids::UInt32
    local_pids::Ptr{UInt32}
    task_ids::Ptr{UInt32}
end

immutable task_ext_msg
    num_tasks::UInt32
    task_id_list::Ptr{UInt32}
    return_code::UInt32
    job_id::UInt32
    step_id::UInt32
end

immutable task_exit_msg_t
    num_tasks::UInt32
    task_id_list::Ptr{UInt32}
    return_code::UInt32
    job_id::UInt32
    step_id::UInt32
end

immutable srun_ping_msg
    job_id::UInt32
    step_id::UInt32
end

immutable srun_ping_msg_t
    job_id::UInt32
    step_id::UInt32
end

immutable srun_job_complete_msg
    job_id::UInt32
    step_id::UInt32
end

immutable srun_job_complete_msg_t
    job_id::UInt32
    step_id::UInt32
end

immutable srun_timeout_msg
    job_id::UInt32
    step_id::UInt32
    timeout::time_t
end

immutable srun_timeout_msg_t
    job_id::UInt32
    step_id::UInt32
    timeout::time_t
end

immutable srun_user_msg
    job_id::UInt32
    msg::Cstring
end

immutable srun_user_msg_t
    job_id::UInt32
    msg::Cstring
end

immutable srun_node_fail_msg
    job_id::UInt32
    nodelist::Cstring
    step_id::UInt32
end

immutable srun_node_fail_msg_t
    job_id::UInt32
    nodelist::Cstring
    step_id::UInt32
end

immutable srun_step_missing_msg
    job_id::UInt32
    nodelist::Cstring
    step_id::UInt32
end

immutable srun_step_missing_msg_t
    job_id::UInt32
    nodelist::Cstring
    step_id::UInt32
end

# begin enum suspend_opts
typealias suspend_opts UInt32
const SUSPEND_JOB = (UInt32)(0)
const RESUME_JOB = (UInt32)(1)
# end enum suspend_opts

immutable suspend_msg
    op::UInt16
    job_id::UInt32
    job_id_str::Cstring
end

immutable suspend_msg_t
    op::UInt16
    job_id::UInt32
    job_id_str::Cstring
end

immutable top_job_msg
    op::UInt16
    job_id::UInt32
    job_id_str::Cstring
end

immutable top_job_msg_t
    op::UInt16
    job_id::UInt32
    job_id_str::Cstring
end

immutable slurm_step_ctx_params_t
    ckpt_interval::UInt16
    cpu_count::UInt32
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    exclusive::UInt16
    features::Cstring
    immediate::UInt16
    job_id::UInt32
    pn_min_memory::UInt32
    ckpt_dir::Cstring
    gres::Cstring
    name::Cstring
    network::Cstring
    profile::UInt32
    no_kill::UInt8
    min_nodes::UInt32
    max_nodes::UInt32
    node_list::Cstring
    overcommit::Cint
    plane_size::UInt16
    relative::UInt16
    resv_port_cnt::UInt16
    task_count::UInt32
    task_dist::UInt32
    time_limit::UInt32
    uid::uid_t
    verbose_level::UInt16
end

immutable slurm_step_launch_params_t
    alias_list::Cstring
    argc::UInt32
    argv::Ptr{Cstring}
    envc::UInt32
    env::Ptr{Cstring}
    cwd::Cstring
    user_managed_io::Cint
    msg_timeout::UInt32
    ntasks_per_board::UInt16
    ntasks_per_core::UInt16
    ntasks_per_socket::UInt16
    buffered_stdio::Cint
    labelio::Cint
    remote_output_filename::Cstring
    remote_error_filename::Cstring
    remote_input_filename::Cstring
    local_fds::slurm_step_io_fds_t
    gid::UInt32
    multi_prog::Cint
    slurmd_debug::UInt32
    parallel_debug::Cint
    profile::UInt32
    task_prolog::Cstring
    task_epilog::Cstring
    cpu_bind_type::UInt16
    cpu_bind::Cstring
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    mem_bind_type::UInt16
    mem_bind::Cstring
    accel_bind_type::UInt16
    max_sockets::UInt16
    max_cores::UInt16
    max_threads::UInt16
    cpus_per_task::UInt16
    task_dist::UInt32
    partition::Cstring
    preserve_env::Cint
    mpi_plugin_name::Cstring
    open_mode::UInt8
    acctg_freq::Cstring
    pty::Cint
    ckpt_dir::Cstring
    restart_dir::Cstring
    spank_job_env::Ptr{Cstring}
    spank_job_env_size::UInt32
end

immutable slurm_step_launch_callbacks_t
    step_complete::Ptr{Void}
    step_signal::Ptr{Void}
    step_timeout::Ptr{Void}
    task_start::Ptr{Void}
    task_finish::Ptr{Void}
end

immutable slurm_allocation_callbacks_t
    ping::Ptr{Void}
    job_complete::Ptr{Void}
    timeout::Ptr{Void}
    user_msg::Ptr{Void}
    node_fail::Ptr{Void}
    job_suspend::Ptr{Void}
end

immutable slurm_trigger_callbacks_t
    acct_full::Ptr{Void}
    dbd_fail::Ptr{Void}
    dbd_resumed::Ptr{Void}
    db_fail::Ptr{Void}
    db_resumed::Ptr{Void}
end

immutable job_step_info_t
    array_job_id::UInt32
    array_task_id::UInt32
    ckpt_dir::Cstring
    ckpt_interval::UInt16
    gres::Cstring
    job_id::UInt32
    name::Cstring
    network::Cstring
    nodes::Cstring
    node_inx::Ptr{Int32}
    num_cpus::UInt32
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    num_tasks::UInt32
    partition::Cstring
    resv_ports::Cstring
    run_time::time_t
    select_jobinfo::Ptr{dynamic_plugin_data_t}
    start_time::time_t
    start_protocol_ver::UInt16
    state::UInt32
    step_id::UInt32
    task_dist::UInt32
    time_limit::UInt32
    tres_alloc_str::Cstring
    user_id::UInt32
end

immutable job_step_info_response_msg
    last_update::time_t
    job_step_count::UInt32
    job_steps::Ptr{job_step_info_t}
end

immutable job_step_info_response_msg_t
    last_update::time_t
    job_step_count::UInt32
    job_steps::Ptr{job_step_info_t}
end

immutable job_step_pids_t
    node_name::Cstring
    pid::Ptr{UInt32}
    pid_cnt::UInt32
end

immutable job_step_pids_response_msg_t
    job_id::UInt32
    pid_list::List
    step_id::UInt32
end

immutable job_step_stat_t
    jobacct::Ptr{jobacctinfo_t}
    num_tasks::UInt32
    return_code::UInt32
    step_pids::Ptr{job_step_pids_t}
end

immutable job_step_stat_response_msg_t
    job_id::UInt32
    stats_list::List
    step_id::UInt32
end

immutable node_info
    arch::Cstring
    boards::UInt16
    boot_time::time_t
    cores::UInt16
    core_spec_cnt::UInt16
    cpu_load::UInt32
    free_mem::UInt32
    cpus::UInt16
    cpu_spec_list::Cstring
    energy::Ptr{acct_gather_energy_t}
    ext_sensors::Ptr{ext_sensors_data_t}
    power::Ptr{power_mgmt_data_t}
    features::Cstring
    features_act::Cstring
    gres::Cstring
    gres_drain::Cstring
    gres_used::Cstring
    mcs_label::Cstring
    mem_spec_limit::UInt32
    name::Cstring
    node_addr::Cstring
    node_hostname::Cstring
    node_state::UInt32
    os::Cstring
    owner::UInt32
    real_memory::UInt32
    reason::Cstring
    reason_time::time_t
    reason_uid::UInt32
    select_nodeinfo::Ptr{dynamic_plugin_data_t}
    slurmd_start_time::time_t
    sockets::UInt16
    threads::UInt16
    tmp_disk::UInt32
    weight::UInt32
    tres_fmt_str::Cstring
    version::Cstring
end

immutable node_info_t
    arch::Cstring
    boards::UInt16
    boot_time::time_t
    cores::UInt16
    core_spec_cnt::UInt16
    cpu_load::UInt32
    free_mem::UInt32
    cpus::UInt16
    cpu_spec_list::Cstring
    energy::Ptr{acct_gather_energy_t}
    ext_sensors::Ptr{ext_sensors_data_t}
    power::Ptr{power_mgmt_data_t}
    features::Cstring
    features_act::Cstring
    gres::Cstring
    gres_drain::Cstring
    gres_used::Cstring
    mcs_label::Cstring
    mem_spec_limit::UInt32
    name::Cstring
    node_addr::Cstring
    node_hostname::Cstring
    node_state::UInt32
    os::Cstring
    owner::UInt32
    real_memory::UInt32
    reason::Cstring
    reason_time::time_t
    reason_uid::UInt32
    select_nodeinfo::Ptr{dynamic_plugin_data_t}
    slurmd_start_time::time_t
    sockets::UInt16
    threads::UInt16
    tmp_disk::UInt32
    weight::UInt32
    tres_fmt_str::Cstring
    version::Cstring
end

immutable node_info_msg
    last_update::time_t
    node_scaling::UInt32
    record_count::UInt32
    node_array::Ptr{node_info_t}
end

immutable node_info_msg_t
    last_update::time_t
    node_scaling::UInt32
    record_count::UInt32
    node_array::Ptr{node_info_t}
end

immutable front_end_info
    allow_groups::Cstring
    allow_users::Cstring
    boot_time::time_t
    deny_groups::Cstring
    deny_users::Cstring
    name::Cstring
    node_state::UInt32
    reason::Cstring
    reason_time::time_t
    reason_uid::UInt32
    slurmd_start_time::time_t
    version::Cstring
end

immutable front_end_info_t
    allow_groups::Cstring
    allow_users::Cstring
    boot_time::time_t
    deny_groups::Cstring
    deny_users::Cstring
    name::Cstring
    node_state::UInt32
    reason::Cstring
    reason_time::time_t
    reason_uid::UInt32
    slurmd_start_time::time_t
    version::Cstring
end

immutable front_end_info_msg
    last_update::time_t
    record_count::UInt32
    front_end_array::Ptr{front_end_info_t}
end

immutable front_end_info_msg_t
    last_update::time_t
    record_count::UInt32
    front_end_array::Ptr{front_end_info_t}
end

immutable topo_info
    level::UInt16
    link_speed::UInt32
    name::Cstring
    nodes::Cstring
    switches::Cstring
end

immutable topo_info_t
    level::UInt16
    link_speed::UInt32
    name::Cstring
    nodes::Cstring
    switches::Cstring
end

immutable topo_info_response_msg
    record_count::UInt32
    topo_array::Ptr{topo_info_t}
end

immutable topo_info_response_msg_t
    record_count::UInt32
    topo_array::Ptr{topo_info_t}
end

immutable job_alloc_info_msg
    job_id::UInt32
end

immutable job_alloc_info_msg_t
    job_id::UInt32
end

immutable layout_info_msg
    record_count::UInt32
    records::Ptr{Cstring}
end

immutable layout_info_msg_t
    record_count::UInt32
    records::Ptr{Cstring}
end

immutable update_layout_msg
    layout::Cstring
    arg::Cstring
end

immutable update_layout_msg_t
    layout::Cstring
    arg::Cstring
end

immutable step_alloc_info_msg
    job_id::UInt32
    step_id::UInt32
end

immutable step_alloc_info_msg_t
    job_id::UInt32
    step_id::UInt32
end

immutable powercap_info_msg
    power_cap::UInt32
    power_floor::UInt32
    power_change::UInt32
    min_watts::UInt32
    cur_max_watts::UInt32
    adj_max_watts::UInt32
    max_watts::UInt32
end

immutable powercap_info_msg_t
    power_cap::UInt32
    power_floor::UInt32
    power_change::UInt32
    min_watts::UInt32
    cur_max_watts::UInt32
    adj_max_watts::UInt32
    max_watts::UInt32
end

typealias update_powercap_msg_t powercap_info_msg

immutable acct_gather_node_resp_msg
    energy::Ptr{acct_gather_energy_t}
    node_name::Cstring
    sensor_cnt::UInt16
end

immutable acct_gather_node_resp_msg_t
    energy::Ptr{acct_gather_energy_t}
    node_name::Cstring
    sensor_cnt::UInt16
end

immutable acct_gather_energy_req_msg
    delta::UInt16
end

immutable acct_gather_energy_req_msg_t
    delta::UInt16
end

immutable partition_info
    allow_alloc_nodes::Cstring
    allow_accounts::Cstring
    allow_groups::Cstring
    allow_qos::Cstring
    alternate::Cstring
    billing_weights_str::Cstring
    cr_type::UInt16
    def_mem_per_cpu::UInt32
    default_time::UInt32
    deny_accounts::Cstring
    deny_qos::Cstring
    flags::UInt16
    grace_time::UInt32
    max_cpus_per_node::UInt32
    max_mem_per_cpu::UInt32
    max_nodes::UInt32
    max_share::UInt16
    max_time::UInt32
    min_nodes::UInt32
    name::Cstring
    node_inx::Ptr{Int32}
    nodes::Cstring
    preempt_mode::UInt16
    priority_job_factor::UInt16
    priority_tier::UInt16
    qos_char::Cstring
    state_up::UInt16
    total_cpus::UInt32
    total_nodes::UInt32
    tres_fmt_str::Cstring
end

immutable partition_info_t
    allow_alloc_nodes::Cstring
    allow_accounts::Cstring
    allow_groups::Cstring
    allow_qos::Cstring
    alternate::Cstring
    billing_weights_str::Cstring
    cr_type::UInt16
    def_mem_per_cpu::UInt32
    default_time::UInt32
    deny_accounts::Cstring
    deny_qos::Cstring
    flags::UInt16
    grace_time::UInt32
    max_cpus_per_node::UInt32
    max_mem_per_cpu::UInt32
    max_nodes::UInt32
    max_share::UInt16
    max_time::UInt32
    min_nodes::UInt32
    name::Cstring
    node_inx::Ptr{Int32}
    nodes::Cstring
    preempt_mode::UInt16
    priority_job_factor::UInt16
    priority_tier::UInt16
    qos_char::Cstring
    state_up::UInt16
    total_cpus::UInt32
    total_nodes::UInt32
    tres_fmt_str::Cstring
end

immutable delete_partition_msg
    name::Cstring
end

immutable delete_part_msg_t
    name::Cstring
end

immutable resource_allocation_response_msg
    account::Cstring
    job_id::UInt32
    alias_list::Cstring
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    cpus_per_node::Ptr{UInt16}
    cpu_count_reps::Ptr{UInt32}
    env_size::UInt32
    environment::Ptr{Cstring}
    error_code::UInt32
    node_cnt::UInt32
    node_list::Cstring
    ntasks_per_board::UInt16
    ntasks_per_core::UInt16
    ntasks_per_socket::UInt16
    num_cpu_groups::UInt32
    partition::Cstring
    pn_min_memory::UInt32
    qos::Cstring
    resv_name::Cstring
    select_jobinfo::Ptr{dynamic_plugin_data_t}
end

immutable resource_allocation_response_msg_t
    account::Cstring
    job_id::UInt32
    alias_list::Cstring
    cpu_freq_min::UInt32
    cpu_freq_max::UInt32
    cpu_freq_gov::UInt32
    cpus_per_node::Ptr{UInt16}
    cpu_count_reps::Ptr{UInt32}
    env_size::UInt32
    environment::Ptr{Cstring}
    error_code::UInt32
    node_cnt::UInt32
    node_list::Cstring
    ntasks_per_board::UInt16
    ntasks_per_core::UInt16
    ntasks_per_socket::UInt16
    num_cpu_groups::UInt32
    partition::Cstring
    pn_min_memory::UInt32
    qos::Cstring
    resv_name::Cstring
    select_jobinfo::Ptr{dynamic_plugin_data_t}
end

immutable job_alloc_info_response_msg
    job_id::UInt32
    node_list::Cstring
    num_cpu_groups::UInt32
    cpus_per_node::Ptr{UInt16}
    cpu_count_reps::Ptr{UInt32}
    node_cnt::UInt32
    node_addr::Ptr{slurm_addr_t}
    error_code::UInt32
    select_jobinfo::Ptr{dynamic_plugin_data_t}
end

immutable job_alloc_info_response_msg_t
    job_id::UInt32
    node_list::Cstring
    num_cpu_groups::UInt32
    cpus_per_node::Ptr{UInt16}
    cpu_count_reps::Ptr{UInt32}
    node_cnt::UInt32
    node_addr::Ptr{slurm_addr_t}
    error_code::UInt32
    select_jobinfo::Ptr{dynamic_plugin_data_t}
end

immutable partition_info_msg
    last_update::time_t
    record_count::UInt32
    partition_array::Ptr{partition_info_t}
end

immutable partition_info_msg_t
    last_update::time_t
    record_count::UInt32
    partition_array::Ptr{partition_info_t}
end

immutable will_run_response_msg
    job_id::UInt32
    node_list::Cstring
    preemptee_job_id::List
    proc_cnt::UInt32
    start_time::time_t
end

immutable will_run_response_msg_t
    job_id::UInt32
    node_list::Cstring
    preemptee_job_id::List
    proc_cnt::UInt32
    start_time::time_t
end

immutable block_job_info_t
    cnodes::Cstring
    cnode_inx::Ptr{Int32}
    job_id::UInt32
    job_ptr::Ptr{Void}
    user_id::UInt32
    user_name::Cstring
end

immutable block_info_t
    bg_block_id::Cstring
    blrtsimage::Cstring
    conn_type::NTuple{5,UInt16}
    cnode_cnt::UInt32
    cnode_err_cnt::UInt32
    ionode_inx::Ptr{Int32}
    ionode_str::Cstring
    job_list::List
    linuximage::Cstring
    mloaderimage::Cstring
    mp_inx::Ptr{Int32}
    mp_str::Cstring
    node_use::UInt16
    ramdiskimage::Cstring
    reason::Cstring
    state::UInt16
end

immutable block_info_msg_t
    block_array::Ptr{block_info_t}
    last_update::time_t
    record_count::UInt32
end

typealias update_block_msg_t block_info_t

immutable reserve_info
    accounts::Cstring
    burst_buffer::Cstring
    core_cnt::UInt32
    end_time::time_t
    features::Cstring
    flags::UInt32
    licenses::Cstring
    name::Cstring
    node_cnt::UInt32
    node_inx::Ptr{Int32}
    node_list::Cstring
    partition::Cstring
    start_time::time_t
    resv_watts::UInt32
    tres_str::Cstring
    users::Cstring
end

immutable reserve_info_t
    accounts::Cstring
    burst_buffer::Cstring
    core_cnt::UInt32
    end_time::time_t
    features::Cstring
    flags::UInt32
    licenses::Cstring
    name::Cstring
    node_cnt::UInt32
    node_inx::Ptr{Int32}
    node_list::Cstring
    partition::Cstring
    start_time::time_t
    resv_watts::UInt32
    tres_str::Cstring
    users::Cstring
end

immutable reserve_info_msg
    last_update::time_t
    record_count::UInt32
    reservation_array::Ptr{reserve_info_t}
end

immutable reserve_info_msg_t
    last_update::time_t
    record_count::UInt32
    reservation_array::Ptr{reserve_info_t}
end

immutable resv_desc_msg
    accounts::Cstring
    burst_buffer::Cstring
    core_cnt::Ptr{UInt32}
    duration::UInt32
    end_time::time_t
    features::Cstring
    flags::UInt32
    licenses::Cstring
    name::Cstring
    node_cnt::Ptr{UInt32}
    node_list::Cstring
    partition::Cstring
    start_time::time_t
    resv_watts::UInt32
    tres_str::Cstring
    users::Cstring
end

immutable resv_desc_msg_t
    accounts::Cstring
    burst_buffer::Cstring
    core_cnt::Ptr{UInt32}
    duration::UInt32
    end_time::time_t
    features::Cstring
    flags::UInt32
    licenses::Cstring
    name::Cstring
    node_cnt::Ptr{UInt32}
    node_list::Cstring
    partition::Cstring
    start_time::time_t
    resv_watts::UInt32
    tres_str::Cstring
    users::Cstring
end

immutable reserve_response_msg
    name::Cstring
end

immutable reserve_response_msg_t
    name::Cstring
end

immutable reservation_name_msg
    name::Cstring
end

immutable reservation_name_msg_t
    name::Cstring
end

immutable slurm_ctl_conf
    last_update::time_t
    accounting_storage_tres::Cstring
    accounting_storage_enforce::UInt16
    accounting_storage_backup_host::Cstring
    accounting_storage_host::Cstring
    accounting_storage_loc::Cstring
    accounting_storage_pass::Cstring
    accounting_storage_port::UInt32
    accounting_storage_type::Cstring
    accounting_storage_user::Cstring
    acctng_store_job_comment::UInt16
    acct_gather_conf::Ptr{Void}
    acct_gather_energy_type::Cstring
    acct_gather_profile_type::Cstring
    acct_gather_infiniband_type::Cstring
    acct_gather_filesystem_type::Cstring
    acct_gather_node_freq::UInt16
    authinfo::Cstring
    authtype::Cstring
    backup_addr::Cstring
    backup_controller::Cstring
    batch_start_timeout::UInt16
    bb_type::Cstring
    boot_time::time_t
    checkpoint_type::Cstring
    chos_loc::Cstring
    core_spec_plugin::Cstring
    cluster_name::Cstring
    complete_wait::UInt16
    control_addr::Cstring
    control_machine::Cstring
    cpu_freq_def::UInt32
    cpu_freq_govs::UInt32
    crypto_type::Cstring
    debug_flags::UInt64
    def_mem_per_cpu::UInt32
    disable_root_jobs::UInt16
    eio_timeout::UInt16
    enforce_part_limits::UInt16
    epilog::Cstring
    epilog_msg_time::UInt32
    epilog_slurmctld::Cstring
    ext_sensors_type::Cstring
    ext_sensors_freq::UInt16
    ext_sensors_conf::Ptr{Void}
    fast_schedule::UInt16
    first_job_id::UInt32
    fs_dampening_factor::UInt16
    get_env_timeout::UInt16
    gres_plugins::Cstring
    group_info::UInt16
    hash_val::UInt32
    health_check_interval::UInt16
    health_check_node_state::UInt16
    health_check_program::Cstring
    inactive_limit::UInt16
    job_acct_gather_freq::Cstring
    job_acct_gather_type::Cstring
    job_acct_gather_params::Cstring
    job_ckpt_dir::Cstring
    job_comp_host::Cstring
    job_comp_loc::Cstring
    job_comp_pass::Cstring
    job_comp_port::UInt32
    job_comp_type::Cstring
    job_comp_user::Cstring
    job_container_plugin::Cstring
    job_credential_private_key::Cstring
    job_credential_public_certificate::Cstring
    job_file_append::UInt16
    job_requeue::UInt16
    job_submit_plugins::Cstring
    keep_alive_time::UInt16
    kill_on_bad_exit::UInt16
    kill_wait::UInt16
    launch_params::Cstring
    launch_type::Cstring
    layouts::Cstring
    licenses::Cstring
    licenses_used::Cstring
    log_fmt::UInt16
    mail_prog::Cstring
    max_array_sz::UInt32
    max_job_cnt::UInt32
    max_job_id::UInt32
    max_mem_per_cpu::UInt32
    max_step_cnt::UInt32
    max_tasks_per_node::UInt16
    mcs_plugin::Cstring
    mcs_plugin_params::Cstring
    mem_limit_enforce::UInt16
    min_job_age::UInt32
    mpi_default::Cstring
    mpi_params::Cstring
    msg_aggr_params::Cstring
    msg_timeout::UInt16
    tcp_timeout::UInt16
    next_job_id::UInt32
    node_features_plugins::Cstring
    node_prefix::Cstring
    over_time_limit::UInt16
    plugindir::Cstring
    plugstack::Cstring
    power_parameters::Cstring
    power_plugin::Cstring
    preempt_mode::UInt16
    preempt_type::Cstring
    priority_decay_hl::UInt32
    priority_calc_period::UInt32
    priority_favor_small::UInt16
    priority_flags::UInt16
    priority_max_age::UInt32
    priority_params::Cstring
    priority_reset_period::UInt16
    priority_type::Cstring
    priority_weight_age::UInt32
    priority_weight_fs::UInt32
    priority_weight_js::UInt32
    priority_weight_part::UInt32
    priority_weight_qos::UInt32
    priority_weight_tres::Cstring
    private_data::UInt16
    proctrack_type::Cstring
    prolog::Cstring
    prolog_epilog_timeout::UInt16
    prolog_slurmctld::Cstring
    propagate_prio_process::UInt16
    prolog_flags::UInt16
    propagate_rlimits::Cstring
    propagate_rlimits_except::Cstring
    reboot_program::Cstring
    reconfig_flags::UInt16
    requeue_exit::Cstring
    requeue_exit_hold::Cstring
    resume_program::Cstring
    resume_rate::UInt16
    resume_timeout::UInt16
    resv_epilog::Cstring
    resv_over_run::UInt16
    resv_prolog::Cstring
    ret2service::UInt16
    route_plugin::Cstring
    salloc_default_command::Cstring
    sched_logfile::Cstring
    sched_log_level::UInt16
    sched_params::Cstring
    sched_time_slice::UInt16
    schedtype::Cstring
    schedport::UInt16
    schedrootfltr::UInt16
    select_type::Cstring
    select_conf_key_pairs::Ptr{Void}
    select_type_param::UInt16
    slurm_conf::Cstring
    slurm_user_id::UInt32
    slurm_user_name::Cstring
    slurmd_user_id::UInt32
    slurmd_user_name::Cstring
    slurmctld_debug::UInt16
    slurmctld_logfile::Cstring
    slurmctld_pidfile::Cstring
    slurmctld_plugstack::Cstring
    slurmctld_port::UInt32
    slurmctld_port_count::UInt16
    slurmctld_timeout::UInt16
    slurmd_debug::UInt16
    slurmd_logfile::Cstring
    slurmd_pidfile::Cstring
    slurmd_plugstack::Cstring
    slurmd_port::UInt32
    slurmd_spooldir::Cstring
    slurmd_timeout::UInt16
    srun_epilog::Cstring
    srun_port_range::Ptr{UInt16}
    srun_prolog::Cstring
    state_save_location::Cstring
    suspend_exc_nodes::Cstring
    suspend_exc_parts::Cstring
    suspend_program::Cstring
    suspend_rate::UInt16
    suspend_time::UInt32
    suspend_timeout::UInt16
    switch_type::Cstring
    task_epilog::Cstring
    task_plugin::Cstring
    task_plugin_param::UInt32
    task_prolog::Cstring
    tmp_fs::Cstring
    topology_param::Cstring
    topology_plugin::Cstring
    track_wckey::UInt16
    tree_width::UInt16
    unkillable_program::Cstring
    unkillable_timeout::UInt16
    use_pam::UInt16
    use_spec_resources::UInt16
    version::Cstring
    vsize_factor::UInt16
    wait_time::UInt16
    z_16::UInt16
    z_32::UInt32
    z_char::Cstring
end

immutable slurm_ctl_conf_t
    last_update::time_t
    accounting_storage_tres::Cstring
    accounting_storage_enforce::UInt16
    accounting_storage_backup_host::Cstring
    accounting_storage_host::Cstring
    accounting_storage_loc::Cstring
    accounting_storage_pass::Cstring
    accounting_storage_port::UInt32
    accounting_storage_type::Cstring
    accounting_storage_user::Cstring
    acctng_store_job_comment::UInt16
    acct_gather_conf::Ptr{Void}
    acct_gather_energy_type::Cstring
    acct_gather_profile_type::Cstring
    acct_gather_infiniband_type::Cstring
    acct_gather_filesystem_type::Cstring
    acct_gather_node_freq::UInt16
    authinfo::Cstring
    authtype::Cstring
    backup_addr::Cstring
    backup_controller::Cstring
    batch_start_timeout::UInt16
    bb_type::Cstring
    boot_time::time_t
    checkpoint_type::Cstring
    chos_loc::Cstring
    core_spec_plugin::Cstring
    cluster_name::Cstring
    complete_wait::UInt16
    control_addr::Cstring
    control_machine::Cstring
    cpu_freq_def::UInt32
    cpu_freq_govs::UInt32
    crypto_type::Cstring
    debug_flags::UInt64
    def_mem_per_cpu::UInt32
    disable_root_jobs::UInt16
    eio_timeout::UInt16
    enforce_part_limits::UInt16
    epilog::Cstring
    epilog_msg_time::UInt32
    epilog_slurmctld::Cstring
    ext_sensors_type::Cstring
    ext_sensors_freq::UInt16
    ext_sensors_conf::Ptr{Void}
    fast_schedule::UInt16
    first_job_id::UInt32
    fs_dampening_factor::UInt16
    get_env_timeout::UInt16
    gres_plugins::Cstring
    group_info::UInt16
    hash_val::UInt32
    health_check_interval::UInt16
    health_check_node_state::UInt16
    health_check_program::Cstring
    inactive_limit::UInt16
    job_acct_gather_freq::Cstring
    job_acct_gather_type::Cstring
    job_acct_gather_params::Cstring
    job_ckpt_dir::Cstring
    job_comp_host::Cstring
    job_comp_loc::Cstring
    job_comp_pass::Cstring
    job_comp_port::UInt32
    job_comp_type::Cstring
    job_comp_user::Cstring
    job_container_plugin::Cstring
    job_credential_private_key::Cstring
    job_credential_public_certificate::Cstring
    job_file_append::UInt16
    job_requeue::UInt16
    job_submit_plugins::Cstring
    keep_alive_time::UInt16
    kill_on_bad_exit::UInt16
    kill_wait::UInt16
    launch_params::Cstring
    launch_type::Cstring
    layouts::Cstring
    licenses::Cstring
    licenses_used::Cstring
    log_fmt::UInt16
    mail_prog::Cstring
    max_array_sz::UInt32
    max_job_cnt::UInt32
    max_job_id::UInt32
    max_mem_per_cpu::UInt32
    max_step_cnt::UInt32
    max_tasks_per_node::UInt16
    mcs_plugin::Cstring
    mcs_plugin_params::Cstring
    mem_limit_enforce::UInt16
    min_job_age::UInt32
    mpi_default::Cstring
    mpi_params::Cstring
    msg_aggr_params::Cstring
    msg_timeout::UInt16
    tcp_timeout::UInt16
    next_job_id::UInt32
    node_features_plugins::Cstring
    node_prefix::Cstring
    over_time_limit::UInt16
    plugindir::Cstring
    plugstack::Cstring
    power_parameters::Cstring
    power_plugin::Cstring
    preempt_mode::UInt16
    preempt_type::Cstring
    priority_decay_hl::UInt32
    priority_calc_period::UInt32
    priority_favor_small::UInt16
    priority_flags::UInt16
    priority_max_age::UInt32
    priority_params::Cstring
    priority_reset_period::UInt16
    priority_type::Cstring
    priority_weight_age::UInt32
    priority_weight_fs::UInt32
    priority_weight_js::UInt32
    priority_weight_part::UInt32
    priority_weight_qos::UInt32
    priority_weight_tres::Cstring
    private_data::UInt16
    proctrack_type::Cstring
    prolog::Cstring
    prolog_epilog_timeout::UInt16
    prolog_slurmctld::Cstring
    propagate_prio_process::UInt16
    prolog_flags::UInt16
    propagate_rlimits::Cstring
    propagate_rlimits_except::Cstring
    reboot_program::Cstring
    reconfig_flags::UInt16
    requeue_exit::Cstring
    requeue_exit_hold::Cstring
    resume_program::Cstring
    resume_rate::UInt16
    resume_timeout::UInt16
    resv_epilog::Cstring
    resv_over_run::UInt16
    resv_prolog::Cstring
    ret2service::UInt16
    route_plugin::Cstring
    salloc_default_command::Cstring
    sched_logfile::Cstring
    sched_log_level::UInt16
    sched_params::Cstring
    sched_time_slice::UInt16
    schedtype::Cstring
    schedport::UInt16
    schedrootfltr::UInt16
    select_type::Cstring
    select_conf_key_pairs::Ptr{Void}
    select_type_param::UInt16
    slurm_conf::Cstring
    slurm_user_id::UInt32
    slurm_user_name::Cstring
    slurmd_user_id::UInt32
    slurmd_user_name::Cstring
    slurmctld_debug::UInt16
    slurmctld_logfile::Cstring
    slurmctld_pidfile::Cstring
    slurmctld_plugstack::Cstring
    slurmctld_port::UInt32
    slurmctld_port_count::UInt16
    slurmctld_timeout::UInt16
    slurmd_debug::UInt16
    slurmd_logfile::Cstring
    slurmd_pidfile::Cstring
    slurmd_plugstack::Cstring
    slurmd_port::UInt32
    slurmd_spooldir::Cstring
    slurmd_timeout::UInt16
    srun_epilog::Cstring
    srun_port_range::Ptr{UInt16}
    srun_prolog::Cstring
    state_save_location::Cstring
    suspend_exc_nodes::Cstring
    suspend_exc_parts::Cstring
    suspend_program::Cstring
    suspend_rate::UInt16
    suspend_time::UInt32
    suspend_timeout::UInt16
    switch_type::Cstring
    task_epilog::Cstring
    task_plugin::Cstring
    task_plugin_param::UInt32
    task_prolog::Cstring
    tmp_fs::Cstring
    topology_param::Cstring
    topology_plugin::Cstring
    track_wckey::UInt16
    tree_width::UInt16
    unkillable_program::Cstring
    unkillable_timeout::UInt16
    use_pam::UInt16
    use_spec_resources::UInt16
    version::Cstring
    vsize_factor::UInt16
    wait_time::UInt16
    z_16::UInt16
    z_32::UInt32
    z_char::Cstring
end

immutable slurmd_status_msg
    booted::time_t
    last_slurmctld_msg::time_t
    slurmd_debug::UInt16
    actual_cpus::UInt16
    actual_boards::UInt16
    actual_sockets::UInt16
    actual_cores::UInt16
    actual_threads::UInt16
    actual_real_mem::UInt32
    actual_tmp_disk::UInt32
    pid::UInt32
    hostname::Cstring
    slurmd_logfile::Cstring
    step_list::Cstring
    version::Cstring
end

immutable slurmd_status_t
    booted::time_t
    last_slurmctld_msg::time_t
    slurmd_debug::UInt16
    actual_cpus::UInt16
    actual_boards::UInt16
    actual_sockets::UInt16
    actual_cores::UInt16
    actual_threads::UInt16
    actual_real_mem::UInt32
    actual_tmp_disk::UInt32
    pid::UInt32
    hostname::Cstring
    slurmd_logfile::Cstring
    step_list::Cstring
    version::Cstring
end

immutable submit_response_msg
    job_id::UInt32
    step_id::UInt32
    error_code::UInt32
end

immutable submit_response_msg_t
    job_id::UInt32
    step_id::UInt32
    error_code::UInt32
end

immutable slurm_update_node_msg
    features::Cstring
    features_act::Cstring
    gres::Cstring
    node_addr::Cstring
    node_hostname::Cstring
    node_names::Cstring
    node_state::UInt32
    reason::Cstring
    reason_uid::UInt32
    weight::UInt32
end

immutable update_node_msg_t
    features::Cstring
    features_act::Cstring
    gres::Cstring
    node_addr::Cstring
    node_hostname::Cstring
    node_names::Cstring
    node_state::UInt32
    reason::Cstring
    reason_uid::UInt32
    weight::UInt32
end

immutable slurm_update_front_end_msg
    name::Cstring
    node_state::UInt32
    reason::Cstring
    reason_uid::UInt32
end

immutable update_front_end_msg_t
    name::Cstring
    node_state::UInt32
    reason::Cstring
    reason_uid::UInt32
end

typealias update_part_msg_t partition_info

immutable job_sbcast_cred_msg
    job_id::UInt32
    node_addr::Ptr{slurm_addr_t}
    node_cnt::UInt32
    node_list::Cstring
    sbcast_cred::Ptr{sbcast_cred_t}
end

immutable job_sbcast_cred_msg_t
    job_id::UInt32
    node_addr::Ptr{slurm_addr_t}
    node_cnt::UInt32
    node_list::Cstring
    sbcast_cred::Ptr{sbcast_cred_t}
end

immutable slurm_step_ctx_struct
end

typealias slurm_step_ctx_t Void

immutable stats_info_request_msg
    command_id::UInt16
end

immutable stats_info_request_msg_t
    command_id::UInt16
end

immutable stats_info_response_msg
    parts_packed::UInt32
    req_time::time_t
    req_time_start::time_t
    server_thread_count::UInt32
    agent_queue_size::UInt32
    schedule_cycle_max::UInt32
    schedule_cycle_last::UInt32
    schedule_cycle_sum::UInt32
    schedule_cycle_counter::UInt32
    schedule_cycle_depth::UInt32
    schedule_queue_len::UInt32
    jobs_submitted::UInt32
    jobs_started::UInt32
    jobs_completed::UInt32
    jobs_canceled::UInt32
    jobs_failed::UInt32
    bf_backfilled_jobs::UInt32
    bf_last_backfilled_jobs::UInt32
    bf_cycle_counter::UInt32
    bf_cycle_sum::UInt64
    bf_cycle_last::UInt32
    bf_cycle_max::UInt32
    bf_last_depth::UInt32
    bf_last_depth_try::UInt32
    bf_depth_sum::UInt32
    bf_depth_try_sum::UInt32
    bf_queue_len::UInt32
    bf_queue_len_sum::UInt32
    bf_when_last_cycle::time_t
    bf_active::UInt32
    rpc_type_size::UInt32
    rpc_type_id::Ptr{UInt16}
    rpc_type_cnt::Ptr{UInt32}
    rpc_type_time::Ptr{UInt64}
    rpc_user_size::UInt32
    rpc_user_id::Ptr{UInt32}
    rpc_user_cnt::Ptr{UInt32}
    rpc_user_time::Ptr{UInt64}
end

immutable stats_info_response_msg_t
    parts_packed::UInt32
    req_time::time_t
    req_time_start::time_t
    server_thread_count::UInt32
    agent_queue_size::UInt32
    schedule_cycle_max::UInt32
    schedule_cycle_last::UInt32
    schedule_cycle_sum::UInt32
    schedule_cycle_counter::UInt32
    schedule_cycle_depth::UInt32
    schedule_queue_len::UInt32
    jobs_submitted::UInt32
    jobs_started::UInt32
    jobs_completed::UInt32
    jobs_canceled::UInt32
    jobs_failed::UInt32
    bf_backfilled_jobs::UInt32
    bf_last_backfilled_jobs::UInt32
    bf_cycle_counter::UInt32
    bf_cycle_sum::UInt64
    bf_cycle_last::UInt32
    bf_cycle_max::UInt32
    bf_last_depth::UInt32
    bf_last_depth_try::UInt32
    bf_depth_sum::UInt32
    bf_depth_try_sum::UInt32
    bf_queue_len::UInt32
    bf_queue_len_sum::UInt32
    bf_when_last_cycle::time_t
    bf_active::UInt32
    rpc_type_size::UInt32
    rpc_type_id::Ptr{UInt16}
    rpc_type_cnt::Ptr{UInt32}
    rpc_type_time::Ptr{UInt64}
    rpc_user_size::UInt32
    rpc_user_id::Ptr{UInt32}
    rpc_user_cnt::Ptr{UInt32}
    rpc_user_time::Ptr{UInt64}
end

immutable trigger_info
    flags::UInt16
    trig_id::UInt32
    res_type::UInt16
    res_id::Cstring
    trig_type::UInt32
    offset::UInt16
    user_id::UInt32
    program::Cstring
end

immutable trigger_info_t
    flags::UInt16
    trig_id::UInt32
    res_type::UInt16
    res_id::Cstring
    trig_type::UInt32
    offset::UInt16
    user_id::UInt32
    program::Cstring
end

immutable trigger_info_msg
    record_count::UInt32
    trigger_array::Ptr{trigger_info_t}
end

immutable trigger_info_msg_t
    record_count::UInt32
    trigger_array::Ptr{trigger_info_t}
end

immutable slurm_license_info
    name::Cstring
    total::UInt32
    in_use::UInt32
    available::UInt32
    remote::UInt8
end

immutable slurm_license_info_t
    name::Cstring
    total::UInt32
    in_use::UInt32
    available::UInt32
    remote::UInt8
end

immutable license_info_msg
    last_update::time_t
    num_lic::UInt32
    lic_array::Ptr{slurm_license_info_t}
end

immutable license_info_msg_t
    last_update::time_t
    num_lic::UInt32
    lic_array::Ptr{slurm_license_info_t}
end

immutable job_array_resp_msg_t
    job_array_count::UInt32
    job_array_id::Ptr{Cstring}
    error_code::Ptr{UInt32}
end

immutable assoc_mgr_info_msg_t
    assoc_list::List
    qos_list::List
    tres_cnt::UInt32
    tres_names::Ptr{Cstring}
    user_list::List
end

immutable assoc_mgr_info_request_msg_t
    acct_list::List
    flags::UInt32
    qos_list::List
    user_list::List
end

immutable network_callerid_msg
    ip_src::NTuple{16,Cuchar}
    ip_dst::NTuple{16,Cuchar}
    port_src::UInt32
    port_dst::UInt32
    af::Int32
end

immutable network_callerid_msg_t
    ip_src::NTuple{16,Cuchar}
    ip_dst::NTuple{16,Cuchar}
    port_src::UInt32
    port_dst::UInt32
    af::Int32
end

immutable burst_buffer_pool_t
    total_space::UInt64
    granularity::UInt64
    name::Cstring
    used_space::UInt64
end

immutable burst_buffer_resv_t
    account::Cstring
    array_job_id::UInt32
    array_task_id::UInt32
    create_time::time_t
    job_id::UInt32
    name::Cstring
    partition::Cstring
    pool::Cstring
    qos::Cstring
    size::UInt64
    state::UInt16
    user_id::UInt32
end

immutable burst_buffer_use_t
    user_id::UInt32
    used::UInt64
end

immutable burst_buffer_info_t
    allow_users::Cstring
    default_pool::Cstring
    create_buffer::Cstring
    deny_users::Cstring
    destroy_buffer::Cstring
    flags::UInt32
    get_sys_state::Cstring
    granularity::UInt64
    pool_cnt::UInt32
    pool_ptr::Ptr{burst_buffer_pool_t}
    name::Cstring
    other_timeout::UInt32
    stage_in_timeout::UInt32
    stage_out_timeout::UInt32
    start_stage_in::Cstring
    start_stage_out::Cstring
    stop_stage_in::Cstring
    stop_stage_out::Cstring
    total_space::UInt64
    used_space::UInt64
    validate_timeout::UInt32
    buffer_count::UInt32
    burst_buffer_resv_ptr::Ptr{burst_buffer_resv_t}
    use_count::UInt32
    burst_buffer_use_ptr::Ptr{burst_buffer_use_t}
end

immutable burst_buffer_info_msg_t
    burst_buffer_array::Ptr{burst_buffer_info_t}
    record_count::UInt32
end