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


mutable struct ApplicationGatewayAvailableSslOptionsPropertiesFormat <: SwaggerModel
    predefinedPolicies::Any # spec type: Union{ Nothing, Vector{SubResource} } # spec name: predefinedPolicies
    defaultPolicy::Any # spec type: Union{ Nothing, PolicyNameEnum } # spec name: defaultPolicy
    availableCipherSuites::Any # spec type: Union{ Nothing, Vector{CipherSuitesEnum} } # spec name: availableCipherSuites
    availableProtocols::Any # spec type: Union{ Nothing, Vector{ProtocolsEnum} } # spec name: availableProtocols

    function ApplicationGatewayAvailableSslOptionsPropertiesFormat(;predefinedPolicies=nothing, defaultPolicy=nothing, availableCipherSuites=nothing, availableProtocols=nothing)
        o = new()
        validate_property(ApplicationGatewayAvailableSslOptionsPropertiesFormat, Symbol("predefinedPolicies"), predefinedPolicies)
        setfield!(o, Symbol("predefinedPolicies"), predefinedPolicies)
        validate_property(ApplicationGatewayAvailableSslOptionsPropertiesFormat, Symbol("defaultPolicy"), defaultPolicy)
        setfield!(o, Symbol("defaultPolicy"), defaultPolicy)
        validate_property(ApplicationGatewayAvailableSslOptionsPropertiesFormat, Symbol("availableCipherSuites"), availableCipherSuites)
        setfield!(o, Symbol("availableCipherSuites"), availableCipherSuites)
        validate_property(ApplicationGatewayAvailableSslOptionsPropertiesFormat, Symbol("availableProtocols"), availableProtocols)
        setfield!(o, Symbol("availableProtocols"), availableProtocols)
        o
    end
end # type ApplicationGatewayAvailableSslOptionsPropertiesFormat

const _property_map_ApplicationGatewayAvailableSslOptionsPropertiesFormat = Dict{Symbol,Symbol}(Symbol("predefinedPolicies")=>Symbol("predefinedPolicies"), Symbol("defaultPolicy")=>Symbol("defaultPolicy"), Symbol("availableCipherSuites")=>Symbol("availableCipherSuites"), Symbol("availableProtocols")=>Symbol("availableProtocols"))
const _property_types_ApplicationGatewayAvailableSslOptionsPropertiesFormat = Dict{Symbol,String}(Symbol("predefinedPolicies")=>"Vector{SubResource}", Symbol("defaultPolicy")=>"PolicyNameEnum", Symbol("availableCipherSuites")=>"Vector{CipherSuitesEnum}", Symbol("availableProtocols")=>"Vector{ProtocolsEnum}")
Base.propertynames(::Type{ ApplicationGatewayAvailableSslOptionsPropertiesFormat }) = collect(keys(_property_map_ApplicationGatewayAvailableSslOptionsPropertiesFormat))
Swagger.property_type(::Type{ ApplicationGatewayAvailableSslOptionsPropertiesFormat }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_ApplicationGatewayAvailableSslOptionsPropertiesFormat[name]))}
Swagger.field_name(::Type{ ApplicationGatewayAvailableSslOptionsPropertiesFormat }, property_name::Symbol) =  _property_map_ApplicationGatewayAvailableSslOptionsPropertiesFormat[property_name]

function check_required(o::ApplicationGatewayAvailableSslOptionsPropertiesFormat)
    true
end

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