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


mutable struct IoK8sApiCustomMetricsV1beta1MetricValue <: SwaggerModel
    apiVersion::Any # spec type: Union{ Nothing, String } # spec name: apiVersion
    kind::Any # spec type: Union{ Nothing, String } # spec name: kind
    describedObject::Any # spec type: Union{ Nothing, IoK8sApiCoreV1ObjectReference } # spec name: describedObject
    metricName::Any # spec type: Union{ Nothing, String } # spec name: metricName
    timestamp::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgApisMetaV1Time } # spec name: timestamp
    windowSeconds::Any # spec type: Union{ Nothing, Int64 } # spec name: windowSeconds
    value::Any # spec type: Union{ Nothing, IoK8sApimachineryPkgApiResourceQuantity } # spec name: value

    function IoK8sApiCustomMetricsV1beta1MetricValue(;apiVersion=nothing, kind=nothing, describedObject=nothing, metricName=nothing, timestamp=nothing, windowSeconds=nothing, value=nothing)
        o = new()
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("apiVersion"), apiVersion)
        setfield!(o, Symbol("apiVersion"), apiVersion)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("kind"), kind)
        setfield!(o, Symbol("kind"), kind)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("describedObject"), describedObject)
        setfield!(o, Symbol("describedObject"), describedObject)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("metricName"), metricName)
        setfield!(o, Symbol("metricName"), metricName)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("timestamp"), timestamp)
        setfield!(o, Symbol("timestamp"), timestamp)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("windowSeconds"), windowSeconds)
        setfield!(o, Symbol("windowSeconds"), windowSeconds)
        validate_property(IoK8sApiCustomMetricsV1beta1MetricValue, Symbol("value"), value)
        setfield!(o, Symbol("value"), value)
        o
    end
end # type IoK8sApiCustomMetricsV1beta1MetricValue

const _property_map_IoK8sApiCustomMetricsV1beta1MetricValue = Dict{Symbol,Symbol}(Symbol("apiVersion")=>Symbol("apiVersion"), Symbol("kind")=>Symbol("kind"), Symbol("describedObject")=>Symbol("describedObject"), Symbol("metricName")=>Symbol("metricName"), Symbol("timestamp")=>Symbol("timestamp"), Symbol("windowSeconds")=>Symbol("windowSeconds"), Symbol("value")=>Symbol("value"))
const _property_types_IoK8sApiCustomMetricsV1beta1MetricValue = Dict{Symbol,String}(Symbol("apiVersion")=>"String", Symbol("kind")=>"String", Symbol("describedObject")=>"IoK8sApiCoreV1ObjectReference", Symbol("metricName")=>"String", Symbol("timestamp")=>"IoK8sApimachineryPkgApisMetaV1Time", Symbol("windowSeconds")=>"Int64", Symbol("value")=>"IoK8sApimachineryPkgApiResourceQuantity")
Base.propertynames(::Type{ IoK8sApiCustomMetricsV1beta1MetricValue }) = collect(keys(_property_map_IoK8sApiCustomMetricsV1beta1MetricValue))
Swagger.property_type(::Type{ IoK8sApiCustomMetricsV1beta1MetricValue }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCustomMetricsV1beta1MetricValue[name]))}
Swagger.field_name(::Type{ IoK8sApiCustomMetricsV1beta1MetricValue }, property_name::Symbol) =  _property_map_IoK8sApiCustomMetricsV1beta1MetricValue[property_name]

function check_required(o::IoK8sApiCustomMetricsV1beta1MetricValue)
    true
end

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