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



mutable struct IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus <: SwaggerModel
    currentCPUUtilizationPercentage::Any # spec type: Union{ Nothing, Int32 } # spec name: currentCPUUtilizationPercentage
    currentReplicas::Any # spec type: Union{ Nothing, Int32 } # spec name: currentReplicas
    desiredReplicas::Any # spec type: Union{ Nothing, Int32 } # spec name: desiredReplicas
    lastScaleTime::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgApisMetaV1Time } # spec name: lastScaleTime
    observedGeneration::Any # spec type: Union{ Nothing, Int64 } # spec name: observedGeneration

    function IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus(;currentCPUUtilizationPercentage=nothing, currentReplicas=nothing, desiredReplicas=nothing, lastScaleTime=nothing, observedGeneration=nothing)
        o = new()
        validate_property(IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus, Symbol("currentCPUUtilizationPercentage"), currentCPUUtilizationPercentage)
        setfield!(o, Symbol("currentCPUUtilizationPercentage"), currentCPUUtilizationPercentage)
        validate_property(IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus, Symbol("currentReplicas"), currentReplicas)
        setfield!(o, Symbol("currentReplicas"), currentReplicas)
        validate_property(IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus, Symbol("desiredReplicas"), desiredReplicas)
        setfield!(o, Symbol("desiredReplicas"), desiredReplicas)
        validate_property(IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus, Symbol("lastScaleTime"), lastScaleTime)
        setfield!(o, Symbol("lastScaleTime"), lastScaleTime)
        validate_property(IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus, Symbol("observedGeneration"), observedGeneration)
        setfield!(o, Symbol("observedGeneration"), observedGeneration)
        o
    end
end # type IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus

const _property_map_IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus = Dict{Symbol,Symbol}(Symbol("currentCPUUtilizationPercentage")=>Symbol("currentCPUUtilizationPercentage"), Symbol("currentReplicas")=>Symbol("currentReplicas"), Symbol("desiredReplicas")=>Symbol("desiredReplicas"), Symbol("lastScaleTime")=>Symbol("lastScaleTime"), Symbol("observedGeneration")=>Symbol("observedGeneration"))
const _property_types_IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus = Dict{Symbol,String}(Symbol("currentCPUUtilizationPercentage")=>"Int32", Symbol("currentReplicas")=>"Int32", Symbol("desiredReplicas")=>"Int32", Symbol("lastScaleTime")=>"IoK8sApimachineryPkgApisMetaV1Time", Symbol("observedGeneration")=>"Int64")
Base.propertynames(::Type{ IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus }) = collect(keys(_property_map_IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus))
Swagger.property_type(::Type{ IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus[name]))}
Swagger.field_name(::Type{ IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus }, property_name::Symbol) =  _property_map_IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus[property_name]

function check_required(o::IoK8sApiAutoscalingV1HorizontalPodAutoscalerStatus)
    (getproperty(o, Symbol("currentReplicas")) === nothing) && (return false)
    (getproperty(o, Symbol("desiredReplicas")) === nothing) && (return false)
    true
end

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