torc 0.20.7

Workflow management system
# This file was generated by the Julia OpenAPI Code Generator
# Do not modify this file directly. Modify the OpenAPI specification instead.


@doc raw"""slurm_stats_model
Per-step Slurm accounting data collected via sacct.

    SlurmStatsModel(;
        id=nothing,
        workflow_id=nothing,
        job_id=nothing,
        run_id=nothing,
        attempt_id=nothing,
        slurm_job_id=nothing,
        max_rss_bytes=nothing,
        max_vm_size_bytes=nothing,
        max_disk_read_bytes=nothing,
        max_disk_write_bytes=nothing,
        ave_cpu_seconds=nothing,
        node_list=nothing,
    )

    - id::Int64 : Database ID for the record
    - workflow_id::Int64 : Database ID for the workflow
    - job_id::Int64 : Database ID for the job
    - run_id::Int64 : ID of the workflow run
    - attempt_id::Int64 : Retry attempt number (starts at 1)
    - slurm_job_id::String : Slurm allocation ID (from SLURM_JOB_ID env var)
    - max_rss_bytes::Int64 : Max resident set size in bytes (from sacct MaxRSS)
    - max_vm_size_bytes::Int64 : Max virtual memory size in bytes (from sacct MaxVMSize)
    - max_disk_read_bytes::Int64 : Max disk read in bytes (from sacct MaxDiskRead)
    - max_disk_write_bytes::Int64 : Max disk write in bytes (from sacct MaxDiskWrite)
    - ave_cpu_seconds::Float64 : Average CPU time in seconds (from sacct AveCPU)
    - node_list::String : Node(s) on which the step ran (from sacct NodeList)
"""
Base.@kwdef mutable struct SlurmStatsModel <: OpenAPI.APIModel
    id::Union{Nothing, Int64} = nothing
    workflow_id::Union{Nothing, Int64} = nothing
    job_id::Union{Nothing, Int64} = nothing
    run_id::Union{Nothing, Int64} = nothing
    attempt_id::Union{Nothing, Int64} = nothing
    slurm_job_id::Union{Nothing, String} = nothing
    max_rss_bytes::Union{Nothing, Int64} = nothing
    max_vm_size_bytes::Union{Nothing, Int64} = nothing
    max_disk_read_bytes::Union{Nothing, Int64} = nothing
    max_disk_write_bytes::Union{Nothing, Int64} = nothing
    ave_cpu_seconds::Union{Nothing, Float64} = nothing
    node_list::Union{Nothing, String} = nothing

    function SlurmStatsModel(id, workflow_id, job_id, run_id, attempt_id, slurm_job_id, max_rss_bytes, max_vm_size_bytes, max_disk_read_bytes, max_disk_write_bytes, ave_cpu_seconds, node_list, )
        o = new(id, workflow_id, job_id, run_id, attempt_id, slurm_job_id, max_rss_bytes, max_vm_size_bytes, max_disk_read_bytes, max_disk_write_bytes, ave_cpu_seconds, node_list, )
        OpenAPI.validate_properties(o)
        return o
    end
end # type SlurmStatsModel

const _property_types_SlurmStatsModel = Dict{Symbol,String}(Symbol("id")=>"Int64", Symbol("workflow_id")=>"Int64", Symbol("job_id")=>"Int64", Symbol("run_id")=>"Int64", Symbol("attempt_id")=>"Int64", Symbol("slurm_job_id")=>"String", Symbol("max_rss_bytes")=>"Int64", Symbol("max_vm_size_bytes")=>"Int64", Symbol("max_disk_read_bytes")=>"Int64", Symbol("max_disk_write_bytes")=>"Int64", Symbol("ave_cpu_seconds")=>"Float64", Symbol("node_list")=>"String", )
OpenAPI.property_type(::Type{ SlurmStatsModel }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_SlurmStatsModel[name]))}

function OpenAPI.check_required(o::SlurmStatsModel)
    o.workflow_id === nothing && (return false)
    o.job_id === nothing && (return false)
    o.run_id === nothing && (return false)
    o.attempt_id === nothing && (return false)
    true
end

function OpenAPI.validate_properties(o::SlurmStatsModel)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("id"), o.id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("workflow_id"), o.workflow_id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("job_id"), o.job_id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("run_id"), o.run_id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("attempt_id"), o.attempt_id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("slurm_job_id"), o.slurm_job_id)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("max_rss_bytes"), o.max_rss_bytes)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("max_vm_size_bytes"), o.max_vm_size_bytes)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("max_disk_read_bytes"), o.max_disk_read_bytes)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("max_disk_write_bytes"), o.max_disk_write_bytes)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("ave_cpu_seconds"), o.ave_cpu_seconds)
    OpenAPI.validate_property(SlurmStatsModel, Symbol("node_list"), o.node_list)
end

function OpenAPI.validate_property(::Type{ SlurmStatsModel }, name::Symbol, val)












end