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



mutable struct VirtualMachineScaleSetSkuCapacity <: SwaggerModel
    minimum::Any # spec type: Union{ Nothing, Int64 } # spec name: minimum
    maximum::Any # spec type: Union{ Nothing, Int64 } # spec name: maximum
    defaultCapacity::Any # spec type: Union{ Nothing, Int64 } # spec name: defaultCapacity
    scaleType::Any # spec type: Union{ Nothing, String } # spec name: scaleType

    function VirtualMachineScaleSetSkuCapacity(;minimum=nothing, maximum=nothing, defaultCapacity=nothing, scaleType=nothing)
        o = new()
        validate_property(VirtualMachineScaleSetSkuCapacity, Symbol("minimum"), minimum)
        setfield!(o, Symbol("minimum"), minimum)
        validate_property(VirtualMachineScaleSetSkuCapacity, Symbol("maximum"), maximum)
        setfield!(o, Symbol("maximum"), maximum)
        validate_property(VirtualMachineScaleSetSkuCapacity, Symbol("defaultCapacity"), defaultCapacity)
        setfield!(o, Symbol("defaultCapacity"), defaultCapacity)
        validate_property(VirtualMachineScaleSetSkuCapacity, Symbol("scaleType"), scaleType)
        setfield!(o, Symbol("scaleType"), scaleType)
        o
    end
end # type VirtualMachineScaleSetSkuCapacity

const _property_map_VirtualMachineScaleSetSkuCapacity = Dict{Symbol,Symbol}(Symbol("minimum")=>Symbol("minimum"), Symbol("maximum")=>Symbol("maximum"), Symbol("defaultCapacity")=>Symbol("defaultCapacity"), Symbol("scaleType")=>Symbol("scaleType"))
const _property_types_VirtualMachineScaleSetSkuCapacity = Dict{Symbol,String}(Symbol("minimum")=>"Int64", Symbol("maximum")=>"Int64", Symbol("defaultCapacity")=>"Int64", Symbol("scaleType")=>"String")
Base.propertynames(::Type{ VirtualMachineScaleSetSkuCapacity }) = collect(keys(_property_map_VirtualMachineScaleSetSkuCapacity))
Swagger.property_type(::Type{ VirtualMachineScaleSetSkuCapacity }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_VirtualMachineScaleSetSkuCapacity[name]))}
Swagger.field_name(::Type{ VirtualMachineScaleSetSkuCapacity }, property_name::Symbol) =  _property_map_VirtualMachineScaleSetSkuCapacity[property_name]

const _allowed_VirtualMachineScaleSetSkuCapacity_scaleType = ["Automatic", "None"]

function check_required(o::VirtualMachineScaleSetSkuCapacity)
    true
end

function validate_property(::Type{ VirtualMachineScaleSetSkuCapacity }, name::Symbol, val)
    if name === Symbol("scaleType")
        Swagger.validate_param(name, "VirtualMachineScaleSetSkuCapacity", :enum, val, _allowed_VirtualMachineScaleSetSkuCapacity_scaleType)
    end
end
