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


@doc raw"""PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.

    IoK8sApiCoreV1PodDNSConfig(;
        nameservers=nothing,
        options=nothing,
        searches=nothing,
    )

    - nameservers::Vector{String} : A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.
    - options::Vector{IoK8sApiCoreV1PodDNSConfigOption} : A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.
    - searches::Vector{String} : A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.
"""
mutable struct IoK8sApiCoreV1PodDNSConfig <: SwaggerModel
    nameservers::Any # spec type: Union{ Nothing, Vector{String} } # spec name: nameservers
    options::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1PodDNSConfigOption} } # spec name: options
    searches::Any # spec type: Union{ Nothing, Vector{String} } # spec name: searches

    function IoK8sApiCoreV1PodDNSConfig(;nameservers=nothing, options=nothing, searches=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1PodDNSConfig, Symbol("nameservers"), nameservers)
        setfield!(o, Symbol("nameservers"), nameservers)
        validate_property(IoK8sApiCoreV1PodDNSConfig, Symbol("options"), options)
        setfield!(o, Symbol("options"), options)
        validate_property(IoK8sApiCoreV1PodDNSConfig, Symbol("searches"), searches)
        setfield!(o, Symbol("searches"), searches)
        o
    end
end # type IoK8sApiCoreV1PodDNSConfig

const _property_map_IoK8sApiCoreV1PodDNSConfig = Dict{Symbol,Symbol}(Symbol("nameservers")=>Symbol("nameservers"), Symbol("options")=>Symbol("options"), Symbol("searches")=>Symbol("searches"))
const _property_types_IoK8sApiCoreV1PodDNSConfig = Dict{Symbol,String}(Symbol("nameservers")=>"Vector{String}", Symbol("options")=>"Vector{IoK8sApiCoreV1PodDNSConfigOption}", Symbol("searches")=>"Vector{String}")
Base.propertynames(::Type{ IoK8sApiCoreV1PodDNSConfig }) = collect(keys(_property_map_IoK8sApiCoreV1PodDNSConfig))
Swagger.property_type(::Type{ IoK8sApiCoreV1PodDNSConfig }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCoreV1PodDNSConfig[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1PodDNSConfig }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1PodDNSConfig[property_name]

function check_required(o::IoK8sApiCoreV1PodDNSConfig)
    true
end

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