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


mutable struct ApplicationGatewayOnDemandProbe <: SwaggerModel
    protocol::Any # spec type: Union{ Nothing, ApplicationGatewayProtocol } # spec name: protocol
    host::Any # spec type: Union{ Nothing, String } # spec name: host
    path::Any # spec type: Union{ Nothing, String } # spec name: path
    timeout::Any # spec type: Union{ Nothing, Int32 } # spec name: timeout
    pickHostNameFromBackendHttpSettings::Any # spec type: Union{ Nothing, Bool } # spec name: pickHostNameFromBackendHttpSettings
    match::Any # spec type: Union{ Nothing, ApplicationGatewayProbeHealthResponseMatch } # spec name: match
    backendAddressPool::Any # spec type: Union{ Nothing, SubResource } # spec name: backendAddressPool
    backendHttpSettings::Any # spec type: Union{ Nothing, SubResource } # spec name: backendHttpSettings

    function ApplicationGatewayOnDemandProbe(;protocol=nothing, host=nothing, path=nothing, timeout=nothing, pickHostNameFromBackendHttpSettings=nothing, match=nothing, backendAddressPool=nothing, backendHttpSettings=nothing)
        o = new()
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("protocol"), protocol)
        setfield!(o, Symbol("protocol"), protocol)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("host"), host)
        setfield!(o, Symbol("host"), host)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("path"), path)
        setfield!(o, Symbol("path"), path)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("timeout"), timeout)
        setfield!(o, Symbol("timeout"), timeout)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("pickHostNameFromBackendHttpSettings"), pickHostNameFromBackendHttpSettings)
        setfield!(o, Symbol("pickHostNameFromBackendHttpSettings"), pickHostNameFromBackendHttpSettings)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("match"), match)
        setfield!(o, Symbol("match"), match)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("backendAddressPool"), backendAddressPool)
        setfield!(o, Symbol("backendAddressPool"), backendAddressPool)
        validate_property(ApplicationGatewayOnDemandProbe, Symbol("backendHttpSettings"), backendHttpSettings)
        setfield!(o, Symbol("backendHttpSettings"), backendHttpSettings)
        o
    end
end # type ApplicationGatewayOnDemandProbe

const _property_map_ApplicationGatewayOnDemandProbe = Dict{Symbol,Symbol}(Symbol("protocol")=>Symbol("protocol"), Symbol("host")=>Symbol("host"), Symbol("path")=>Symbol("path"), Symbol("timeout")=>Symbol("timeout"), Symbol("pickHostNameFromBackendHttpSettings")=>Symbol("pickHostNameFromBackendHttpSettings"), Symbol("match")=>Symbol("match"), Symbol("backendAddressPool")=>Symbol("backendAddressPool"), Symbol("backendHttpSettings")=>Symbol("backendHttpSettings"))
const _property_types_ApplicationGatewayOnDemandProbe = Dict{Symbol,String}(Symbol("protocol")=>"ApplicationGatewayProtocol", Symbol("host")=>"String", Symbol("path")=>"String", Symbol("timeout")=>"Int32", Symbol("pickHostNameFromBackendHttpSettings")=>"Bool", Symbol("match")=>"ApplicationGatewayProbeHealthResponseMatch", Symbol("backendAddressPool")=>"SubResource", Symbol("backendHttpSettings")=>"SubResource")
Base.propertynames(::Type{ ApplicationGatewayOnDemandProbe }) = collect(keys(_property_map_ApplicationGatewayOnDemandProbe))
Swagger.property_type(::Type{ ApplicationGatewayOnDemandProbe }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_ApplicationGatewayOnDemandProbe[name]))}
Swagger.field_name(::Type{ ApplicationGatewayOnDemandProbe }, property_name::Symbol) =  _property_map_ApplicationGatewayOnDemandProbe[property_name]

function check_required(o::ApplicationGatewayOnDemandProbe)
    true
end

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