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


@doc raw"""A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.

    IoK8sApiCoreV1NodeSelectorTerm(;
        matchExpressions=nothing,
        matchFields=nothing,
    )

    - matchExpressions::Vector{IoK8sApiCoreV1NodeSelectorRequirement} : A list of node selector requirements by node&#39;s labels.
    - matchFields::Vector{IoK8sApiCoreV1NodeSelectorRequirement} : A list of node selector requirements by node&#39;s fields.
"""
mutable struct IoK8sApiCoreV1NodeSelectorTerm <: SwaggerModel
    matchExpressions::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1NodeSelectorRequirement} } # spec name: matchExpressions
    matchFields::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1NodeSelectorRequirement} } # spec name: matchFields

    function IoK8sApiCoreV1NodeSelectorTerm(;matchExpressions=nothing, matchFields=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1NodeSelectorTerm, Symbol("matchExpressions"), matchExpressions)
        setfield!(o, Symbol("matchExpressions"), matchExpressions)
        validate_property(IoK8sApiCoreV1NodeSelectorTerm, Symbol("matchFields"), matchFields)
        setfield!(o, Symbol("matchFields"), matchFields)
        o
    end
end # type IoK8sApiCoreV1NodeSelectorTerm

const _property_map_IoK8sApiCoreV1NodeSelectorTerm = Dict{Symbol,Symbol}(Symbol("matchExpressions")=>Symbol("matchExpressions"), Symbol("matchFields")=>Symbol("matchFields"))
const _property_types_IoK8sApiCoreV1NodeSelectorTerm = Dict{Symbol,String}(Symbol("matchExpressions")=>"Vector{IoK8sApiCoreV1NodeSelectorRequirement}", Symbol("matchFields")=>"Vector{IoK8sApiCoreV1NodeSelectorRequirement}")
Base.propertynames(::Type{ IoK8sApiCoreV1NodeSelectorTerm }) = collect(keys(_property_map_IoK8sApiCoreV1NodeSelectorTerm))
Swagger.property_type(::Type{ IoK8sApiCoreV1NodeSelectorTerm }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCoreV1NodeSelectorTerm[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1NodeSelectorTerm }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1NodeSelectorTerm[property_name]

function check_required(o::IoK8sApiCoreV1NodeSelectorTerm)
    true
end

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