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


@doc raw"""NodeStatus is information about the current status of a node.

    IoK8sApiCoreV1NodeStatus(;
        addresses=nothing,
        allocatable=nothing,
        capacity=nothing,
        conditions=nothing,
        config=nothing,
        daemonEndpoints=nothing,
        images=nothing,
        nodeInfo=nothing,
        phase=nothing,
        volumesAttached=nothing,
        volumesInUse=nothing,
    )

    - addresses::Vector{IoK8sApiCoreV1NodeAddress} : List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.
    - allocatable::Dict{String, IoK8sApimachineryPkgApiResourceQuantity} : Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.
    - capacity::Dict{String, IoK8sApimachineryPkgApiResourceQuantity} : Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
    - conditions::Vector{IoK8sApiCoreV1NodeCondition} : Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
    - config::IoK8sApiCoreV1NodeConfigStatus : Status of the config assigned to the node via the dynamic Kubelet config feature.
    - daemonEndpoints::IoK8sApiCoreV1NodeDaemonEndpoints : Endpoints of daemons running on the Node.
    - images::Vector{IoK8sApiCoreV1ContainerImage} : List of container images on this node
    - nodeInfo::IoK8sApiCoreV1NodeSystemInfo : Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info
    - phase::String : NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.
    - volumesAttached::Vector{IoK8sApiCoreV1AttachedVolume} : List of volumes that are attached to the node.
    - volumesInUse::Vector{String} : List of attachable volumes in use (mounted) by the node.
"""
mutable struct IoK8sApiCoreV1NodeStatus <: SwaggerModel
    addresses::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1NodeAddress} } # spec name: addresses
    allocatable::Any # spec type: Union{ Nothing, Dict{String, IoK8sApimachineryPkgApiResourceQuantity} } # spec name: allocatable
    capacity::Any # spec type: Union{ Nothing, Dict{String, IoK8sApimachineryPkgApiResourceQuantity} } # spec name: capacity
    conditions::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1NodeCondition} } # spec name: conditions
    config::Any # spec type: Union{ Nothing, IoK8sApiCoreV1NodeConfigStatus } # spec name: config
    daemonEndpoints::Any # spec type: Union{ Nothing, IoK8sApiCoreV1NodeDaemonEndpoints } # spec name: daemonEndpoints
    images::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1ContainerImage} } # spec name: images
    nodeInfo::Any # spec type: Union{ Nothing, IoK8sApiCoreV1NodeSystemInfo } # spec name: nodeInfo
    phase::Any # spec type: Union{ Nothing, String } # spec name: phase
    volumesAttached::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1AttachedVolume} } # spec name: volumesAttached
    volumesInUse::Any # spec type: Union{ Nothing, Vector{String} } # spec name: volumesInUse

    function IoK8sApiCoreV1NodeStatus(;addresses=nothing, allocatable=nothing, capacity=nothing, conditions=nothing, config=nothing, daemonEndpoints=nothing, images=nothing, nodeInfo=nothing, phase=nothing, volumesAttached=nothing, volumesInUse=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("addresses"), addresses)
        setfield!(o, Symbol("addresses"), addresses)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("allocatable"), allocatable)
        setfield!(o, Symbol("allocatable"), allocatable)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("capacity"), capacity)
        setfield!(o, Symbol("capacity"), capacity)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("conditions"), conditions)
        setfield!(o, Symbol("conditions"), conditions)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("config"), config)
        setfield!(o, Symbol("config"), config)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("daemonEndpoints"), daemonEndpoints)
        setfield!(o, Symbol("daemonEndpoints"), daemonEndpoints)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("images"), images)
        setfield!(o, Symbol("images"), images)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("nodeInfo"), nodeInfo)
        setfield!(o, Symbol("nodeInfo"), nodeInfo)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("phase"), phase)
        setfield!(o, Symbol("phase"), phase)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("volumesAttached"), volumesAttached)
        setfield!(o, Symbol("volumesAttached"), volumesAttached)
        validate_property(IoK8sApiCoreV1NodeStatus, Symbol("volumesInUse"), volumesInUse)
        setfield!(o, Symbol("volumesInUse"), volumesInUse)
        o
    end
end # type IoK8sApiCoreV1NodeStatus

const _property_map_IoK8sApiCoreV1NodeStatus = Dict{Symbol,Symbol}(Symbol("addresses")=>Symbol("addresses"), Symbol("allocatable")=>Symbol("allocatable"), Symbol("capacity")=>Symbol("capacity"), Symbol("conditions")=>Symbol("conditions"), Symbol("config")=>Symbol("config"), Symbol("daemonEndpoints")=>Symbol("daemonEndpoints"), Symbol("images")=>Symbol("images"), Symbol("nodeInfo")=>Symbol("nodeInfo"), Symbol("phase")=>Symbol("phase"), Symbol("volumesAttached")=>Symbol("volumesAttached"), Symbol("volumesInUse")=>Symbol("volumesInUse"))
const _property_types_IoK8sApiCoreV1NodeStatus = Dict{Symbol,String}(Symbol("addresses")=>"Vector{IoK8sApiCoreV1NodeAddress}", Symbol("allocatable")=>"Dict{String, IoK8sApimachineryPkgApiResourceQuantity}", Symbol("capacity")=>"Dict{String, IoK8sApimachineryPkgApiResourceQuantity}", Symbol("conditions")=>"Vector{IoK8sApiCoreV1NodeCondition}", Symbol("config")=>"IoK8sApiCoreV1NodeConfigStatus", Symbol("daemonEndpoints")=>"IoK8sApiCoreV1NodeDaemonEndpoints", Symbol("images")=>"Vector{IoK8sApiCoreV1ContainerImage}", Symbol("nodeInfo")=>"IoK8sApiCoreV1NodeSystemInfo", Symbol("phase")=>"String", Symbol("volumesAttached")=>"Vector{IoK8sApiCoreV1AttachedVolume}", Symbol("volumesInUse")=>"Vector{String}")
Base.propertynames(::Type{ IoK8sApiCoreV1NodeStatus }) = collect(keys(_property_map_IoK8sApiCoreV1NodeStatus))
Swagger.property_type(::Type{ IoK8sApiCoreV1NodeStatus }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCoreV1NodeStatus[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1NodeStatus }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1NodeStatus[property_name]

function check_required(o::IoK8sApiCoreV1NodeStatus)
    true
end

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