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


mutable struct VpnClientParameters <: SwaggerModel
    processorArchitecture::Any # spec type: Union{ Nothing, String } # spec name: processorArchitecture
    authenticationMethod::Any # spec type: Union{ Nothing, AuthenticationMethod } # spec name: authenticationMethod
    radiusServerAuthCertificate::Any # spec type: Union{ Nothing, String } # spec name: radiusServerAuthCertificate
    clientRootCertificates::Any # spec type: Union{ Nothing, Vector{String} } # spec name: clientRootCertificates

    function VpnClientParameters(;processorArchitecture=nothing, authenticationMethod=nothing, radiusServerAuthCertificate=nothing, clientRootCertificates=nothing)
        o = new()
        validate_property(VpnClientParameters, Symbol("processorArchitecture"), processorArchitecture)
        setfield!(o, Symbol("processorArchitecture"), processorArchitecture)
        validate_property(VpnClientParameters, Symbol("authenticationMethod"), authenticationMethod)
        setfield!(o, Symbol("authenticationMethod"), authenticationMethod)
        validate_property(VpnClientParameters, Symbol("radiusServerAuthCertificate"), radiusServerAuthCertificate)
        setfield!(o, Symbol("radiusServerAuthCertificate"), radiusServerAuthCertificate)
        validate_property(VpnClientParameters, Symbol("clientRootCertificates"), clientRootCertificates)
        setfield!(o, Symbol("clientRootCertificates"), clientRootCertificates)
        o
    end
end # type VpnClientParameters

const _property_map_VpnClientParameters = Dict{Symbol,Symbol}(Symbol("processorArchitecture")=>Symbol("processorArchitecture"), Symbol("authenticationMethod")=>Symbol("authenticationMethod"), Symbol("radiusServerAuthCertificate")=>Symbol("radiusServerAuthCertificate"), Symbol("clientRootCertificates")=>Symbol("clientRootCertificates"))
const _property_types_VpnClientParameters = Dict{Symbol,String}(Symbol("processorArchitecture")=>"String", Symbol("authenticationMethod")=>"AuthenticationMethod", Symbol("radiusServerAuthCertificate")=>"String", Symbol("clientRootCertificates")=>"Vector{String}")
Base.propertynames(::Type{ VpnClientParameters }) = collect(keys(_property_map_VpnClientParameters))
Swagger.property_type(::Type{ VpnClientParameters }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_VpnClientParameters[name]))}
Swagger.field_name(::Type{ VpnClientParameters }, property_name::Symbol) =  _property_map_VpnClientParameters[property_name]

const _allowed_VpnClientParameters_processorArchitecture = ["Amd64", "X86"]

function check_required(o::VpnClientParameters)
    true
end

function validate_property(::Type{ VpnClientParameters }, name::Symbol, val)
    if name === Symbol("processorArchitecture")
        Swagger.validate_param(name, "VpnClientParameters", :enum, val, _allowed_VpnClientParameters_processorArchitecture)
    end
end
