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



mutable struct VirtualMachineScaleSetUpdateOSProfile <: SwaggerModel
    customData::Any # spec type: Union{ Nothing, String } # spec name: customData
    windowsConfiguration::Any # spec type: Union{ Nothing, WindowsConfiguration } # spec name: windowsConfiguration
    linuxConfiguration::Any # spec type: Union{ Nothing, LinuxConfiguration } # spec name: linuxConfiguration
    secrets::Any # spec type: Union{ Nothing, Vector{VaultSecretGroup} } # spec name: secrets

    function VirtualMachineScaleSetUpdateOSProfile(;customData=nothing, windowsConfiguration=nothing, linuxConfiguration=nothing, secrets=nothing)
        o = new()
        validate_property(VirtualMachineScaleSetUpdateOSProfile, Symbol("customData"), customData)
        setfield!(o, Symbol("customData"), customData)
        validate_property(VirtualMachineScaleSetUpdateOSProfile, Symbol("windowsConfiguration"), windowsConfiguration)
        setfield!(o, Symbol("windowsConfiguration"), windowsConfiguration)
        validate_property(VirtualMachineScaleSetUpdateOSProfile, Symbol("linuxConfiguration"), linuxConfiguration)
        setfield!(o, Symbol("linuxConfiguration"), linuxConfiguration)
        validate_property(VirtualMachineScaleSetUpdateOSProfile, Symbol("secrets"), secrets)
        setfield!(o, Symbol("secrets"), secrets)
        o
    end
end # type VirtualMachineScaleSetUpdateOSProfile

const _property_map_VirtualMachineScaleSetUpdateOSProfile = Dict{Symbol,Symbol}(Symbol("customData")=>Symbol("customData"), Symbol("windowsConfiguration")=>Symbol("windowsConfiguration"), Symbol("linuxConfiguration")=>Symbol("linuxConfiguration"), Symbol("secrets")=>Symbol("secrets"))
const _property_types_VirtualMachineScaleSetUpdateOSProfile = Dict{Symbol,String}(Symbol("customData")=>"String", Symbol("windowsConfiguration")=>"WindowsConfiguration", Symbol("linuxConfiguration")=>"LinuxConfiguration", Symbol("secrets")=>"Vector{VaultSecretGroup}")
Base.propertynames(::Type{ VirtualMachineScaleSetUpdateOSProfile }) = collect(keys(_property_map_VirtualMachineScaleSetUpdateOSProfile))
Swagger.property_type(::Type{ VirtualMachineScaleSetUpdateOSProfile }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_VirtualMachineScaleSetUpdateOSProfile[name]))}
Swagger.field_name(::Type{ VirtualMachineScaleSetUpdateOSProfile }, property_name::Symbol) =  _property_map_VirtualMachineScaleSetUpdateOSProfile[property_name]

function check_required(o::VirtualMachineScaleSetUpdateOSProfile)
    true
end

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