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


@doc raw"""Spec to control the desired behavior of daemon set rolling update.

    IoK8sApiAppsV1RollingUpdateDaemonSet(;
        maxUnavailable=nothing,
    )

    - maxUnavailable::IoK8sApimachineryPkgUtilIntstrIntOrString : The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.
"""
mutable struct IoK8sApiAppsV1RollingUpdateDaemonSet <: SwaggerModel
    maxUnavailable::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgUtilIntstrIntOrString } # spec name: maxUnavailable

    function IoK8sApiAppsV1RollingUpdateDaemonSet(;maxUnavailable=nothing)
        o = new()
        validate_property(IoK8sApiAppsV1RollingUpdateDaemonSet, Symbol("maxUnavailable"), maxUnavailable)
        setfield!(o, Symbol("maxUnavailable"), maxUnavailable)
        o
    end
end # type IoK8sApiAppsV1RollingUpdateDaemonSet

const _property_map_IoK8sApiAppsV1RollingUpdateDaemonSet = Dict{Symbol,Symbol}(Symbol("maxUnavailable")=>Symbol("maxUnavailable"))
const _property_types_IoK8sApiAppsV1RollingUpdateDaemonSet = Dict{Symbol,String}(Symbol("maxUnavailable")=>"IoK8sApimachineryPkgUtilIntstrIntOrString")
Base.propertynames(::Type{ IoK8sApiAppsV1RollingUpdateDaemonSet }) = collect(keys(_property_map_IoK8sApiAppsV1RollingUpdateDaemonSet))
Swagger.property_type(::Type{ IoK8sApiAppsV1RollingUpdateDaemonSet }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiAppsV1RollingUpdateDaemonSet[name]))}
Swagger.field_name(::Type{ IoK8sApiAppsV1RollingUpdateDaemonSet }, property_name::Symbol) =  _property_map_IoK8sApiAppsV1RollingUpdateDaemonSet[property_name]

function check_required(o::IoK8sApiAppsV1RollingUpdateDaemonSet)
    true
end

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