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



mutable struct NextHopResult <: SwaggerModel
    nextHopType::Any # spec type: Union{ Nothing, String } # spec name: nextHopType
    nextHopIpAddress::Any # spec type: Union{ Nothing, String } # spec name: nextHopIpAddress
    routeTableId::Any # spec type: Union{ Nothing, String } # spec name: routeTableId

    function NextHopResult(;nextHopType=nothing, nextHopIpAddress=nothing, routeTableId=nothing)
        o = new()
        validate_property(NextHopResult, Symbol("nextHopType"), nextHopType)
        setfield!(o, Symbol("nextHopType"), nextHopType)
        validate_property(NextHopResult, Symbol("nextHopIpAddress"), nextHopIpAddress)
        setfield!(o, Symbol("nextHopIpAddress"), nextHopIpAddress)
        validate_property(NextHopResult, Symbol("routeTableId"), routeTableId)
        setfield!(o, Symbol("routeTableId"), routeTableId)
        o
    end
end # type NextHopResult

const _property_map_NextHopResult = Dict{Symbol,Symbol}(Symbol("nextHopType")=>Symbol("nextHopType"), Symbol("nextHopIpAddress")=>Symbol("nextHopIpAddress"), Symbol("routeTableId")=>Symbol("routeTableId"))
const _property_types_NextHopResult = Dict{Symbol,String}(Symbol("nextHopType")=>"String", Symbol("nextHopIpAddress")=>"String", Symbol("routeTableId")=>"String")
Base.propertynames(::Type{ NextHopResult }) = collect(keys(_property_map_NextHopResult))
Swagger.property_type(::Type{ NextHopResult }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_NextHopResult[name]))}
Swagger.field_name(::Type{ NextHopResult }, property_name::Symbol) =  _property_map_NextHopResult[property_name]

const _allowed_NextHopResult_nextHopType = ["Internet", "VirtualAppliance", "VirtualNetworkGateway", "VnetLocal", "HyperNetGateway", "None"]

function check_required(o::NextHopResult)
    true
end

function validate_property(::Type{ NextHopResult }, name::Symbol, val)
    if name === Symbol("nextHopType")
        Swagger.validate_param(name, "NextHopResult", :enum, val, _allowed_NextHopResult_nextHopType)
    end
end
