# This file was generated by the Julia Swagger Code Generator
# Do not modify this file directly. Modify the swagger specification instead.



mutable struct IoK8sApiCoreV1ContainerStateTerminated <: SwaggerModel
    containerID::Any # spec type: Union{ Nothing, String } # spec name: containerID
    exitCode::Any # spec type: Union{ Nothing, Int32 } # spec name: exitCode
    finishedAt::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgApisMetaV1Time } # spec name: finishedAt
    message::Any # spec type: Union{ Nothing, String } # spec name: message
    reason::Any # spec type: Union{ Nothing, String } # spec name: reason
    signal::Any # spec type: Union{ Nothing, Int32 } # spec name: signal
    startedAt::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgApisMetaV1Time } # spec name: startedAt

    function IoK8sApiCoreV1ContainerStateTerminated(;containerID=nothing, exitCode=nothing, finishedAt=nothing, message=nothing, reason=nothing, signal=nothing, startedAt=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("containerID"), containerID)
        setfield!(o, Symbol("containerID"), containerID)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("exitCode"), exitCode)
        setfield!(o, Symbol("exitCode"), exitCode)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("finishedAt"), finishedAt)
        setfield!(o, Symbol("finishedAt"), finishedAt)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("message"), message)
        setfield!(o, Symbol("message"), message)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("reason"), reason)
        setfield!(o, Symbol("reason"), reason)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("signal"), signal)
        setfield!(o, Symbol("signal"), signal)
        validate_property(IoK8sApiCoreV1ContainerStateTerminated, Symbol("startedAt"), startedAt)
        setfield!(o, Symbol("startedAt"), startedAt)
        o
    end
end # type IoK8sApiCoreV1ContainerStateTerminated

const _property_map_IoK8sApiCoreV1ContainerStateTerminated = Dict{Symbol,Symbol}(Symbol("containerID")=>Symbol("containerID"), Symbol("exitCode")=>Symbol("exitCode"), Symbol("finishedAt")=>Symbol("finishedAt"), Symbol("message")=>Symbol("message"), Symbol("reason")=>Symbol("reason"), Symbol("signal")=>Symbol("signal"), Symbol("startedAt")=>Symbol("startedAt"))
const _property_types_IoK8sApiCoreV1ContainerStateTerminated = Dict{Symbol,String}(Symbol("containerID")=>"String", Symbol("exitCode")=>"Int32", Symbol("finishedAt")=>"IoK8sApimachineryPkgApisMetaV1Time", Symbol("message")=>"String", Symbol("reason")=>"String", Symbol("signal")=>"Int32", Symbol("startedAt")=>"IoK8sApimachineryPkgApisMetaV1Time")
Base.propertynames(::Type{ IoK8sApiCoreV1ContainerStateTerminated }) = collect(keys(_property_map_IoK8sApiCoreV1ContainerStateTerminated))
Swagger.property_type(::Type{ IoK8sApiCoreV1ContainerStateTerminated }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_IoK8sApiCoreV1ContainerStateTerminated[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1ContainerStateTerminated }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1ContainerStateTerminated[property_name]

function check_required(o::IoK8sApiCoreV1ContainerStateTerminated)
    (getproperty(o, Symbol("exitCode")) === nothing) && (return false)
    true
end

function validate_property(::Type{ IoK8sApiCoreV1ContainerStateTerminated }, name::Symbol, val)
end
