# This file was generated by the Julia OpenAPI Code Generator
# Do not modify this file directly. Modify the OpenAPI specification instead.
@doc raw"""slurm_scheduler_model
Data model for Slurm scheduler
SlurmSchedulerModel(;
id=nothing,
workflow_id=nothing,
name=nothing,
account=nothing,
gres=nothing,
mem=nothing,
nodes=nothing,
ntasks_per_node=nothing,
partition=nothing,
qos="normal",
tmp=nothing,
walltime=nothing,
extra=nothing,
)
- id::Int64
- workflow_id::Int64 : Database ID of the workflow this scheduler is associated with.
- name::String : Name of the scheduler
- account::String : Slurm account ID
- gres::String : Generic resource requirement
- mem::String : Compute node memory requirement
- nodes::Int64 : Number of nodes for the Slurm allocation
- ntasks_per_node::Int64 : Number of tasks to invoke on each node
- partition::String : Compute node partition; likely not necessary because Slurm should optimize it.
- qos::String : Priority of Slurm job
- tmp::String : Compute node local storage size requirement
- walltime::String : Slurm runtime requirement, e.g., 04:00:00
- extra::String : Extra Slurm parameters that torc will append to the sbatch command
"""
Base.@kwdef mutable struct SlurmSchedulerModel <: OpenAPI.APIModel
id::Union{Nothing, Int64} = nothing
workflow_id::Union{Nothing, Int64} = nothing
name::Union{Nothing, String} = nothing
account::Union{Nothing, String} = nothing
gres::Union{Nothing, String} = nothing
mem::Union{Nothing, String} = nothing
nodes::Union{Nothing, Int64} = nothing
ntasks_per_node::Union{Nothing, Int64} = nothing
partition::Union{Nothing, String} = nothing
qos::Union{Nothing, String} = "normal"
tmp::Union{Nothing, String} = nothing
walltime::Union{Nothing, String} = nothing
extra::Union{Nothing, String} = nothing
function SlurmSchedulerModel(id, workflow_id, name, account, gres, mem, nodes, ntasks_per_node, partition, qos, tmp, walltime, extra, )
o = new(id, workflow_id, name, account, gres, mem, nodes, ntasks_per_node, partition, qos, tmp, walltime, extra, )
OpenAPI.validate_properties(o)
return o
end
end # type SlurmSchedulerModel
const _property_types_SlurmSchedulerModel = Dict{Symbol,String}(Symbol("id")=>"Int64", Symbol("workflow_id")=>"Int64", Symbol("name")=>"String", Symbol("account")=>"String", Symbol("gres")=>"String", Symbol("mem")=>"String", Symbol("nodes")=>"Int64", Symbol("ntasks_per_node")=>"Int64", Symbol("partition")=>"String", Symbol("qos")=>"String", Symbol("tmp")=>"String", Symbol("walltime")=>"String", Symbol("extra")=>"String", )
OpenAPI.property_type(::Type{ SlurmSchedulerModel }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_SlurmSchedulerModel[name]))}
function OpenAPI.check_required(o::SlurmSchedulerModel)
o.workflow_id === nothing && (return false)
o.account === nothing && (return false)
o.nodes === nothing && (return false)
o.walltime === nothing && (return false)
true
end
function OpenAPI.validate_properties(o::SlurmSchedulerModel)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("id"), o.id)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("workflow_id"), o.workflow_id)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("name"), o.name)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("account"), o.account)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("gres"), o.gres)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("mem"), o.mem)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("nodes"), o.nodes)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("ntasks_per_node"), o.ntasks_per_node)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("partition"), o.partition)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("qos"), o.qos)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("tmp"), o.tmp)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("walltime"), o.walltime)
OpenAPI.validate_property(SlurmSchedulerModel, Symbol("extra"), o.extra)
end
function OpenAPI.validate_property(::Type{ SlurmSchedulerModel }, name::Symbol, val)
end