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


mutable struct NetworkConfigurationDiagnosticProfile <: SwaggerModel
    direction::Any # spec type: Union{ Nothing, Direction } # spec name: direction
    protocol::Any # spec type: Union{ Nothing, String } # spec name: protocol
    source::Any # spec type: Union{ Nothing, String } # spec name: source
    destination::Any # spec type: Union{ Nothing, String } # spec name: destination
    destinationPort::Any # spec type: Union{ Nothing, String } # spec name: destinationPort

    function NetworkConfigurationDiagnosticProfile(;direction=nothing, protocol=nothing, source=nothing, destination=nothing, destinationPort=nothing)
        o = new()
        validate_property(NetworkConfigurationDiagnosticProfile, Symbol("direction"), direction)
        setfield!(o, Symbol("direction"), direction)
        validate_property(NetworkConfigurationDiagnosticProfile, Symbol("protocol"), protocol)
        setfield!(o, Symbol("protocol"), protocol)
        validate_property(NetworkConfigurationDiagnosticProfile, Symbol("source"), source)
        setfield!(o, Symbol("source"), source)
        validate_property(NetworkConfigurationDiagnosticProfile, Symbol("destination"), destination)
        setfield!(o, Symbol("destination"), destination)
        validate_property(NetworkConfigurationDiagnosticProfile, Symbol("destinationPort"), destinationPort)
        setfield!(o, Symbol("destinationPort"), destinationPort)
        o
    end
end # type NetworkConfigurationDiagnosticProfile

const _property_map_NetworkConfigurationDiagnosticProfile = Dict{Symbol,Symbol}(Symbol("direction")=>Symbol("direction"), Symbol("protocol")=>Symbol("protocol"), Symbol("source")=>Symbol("source"), Symbol("destination")=>Symbol("destination"), Symbol("destinationPort")=>Symbol("destinationPort"))
const _property_types_NetworkConfigurationDiagnosticProfile = Dict{Symbol,String}(Symbol("direction")=>"Direction", Symbol("protocol")=>"String", Symbol("source")=>"String", Symbol("destination")=>"String", Symbol("destinationPort")=>"String")
Base.propertynames(::Type{ NetworkConfigurationDiagnosticProfile }) = collect(keys(_property_map_NetworkConfigurationDiagnosticProfile))
Swagger.property_type(::Type{ NetworkConfigurationDiagnosticProfile }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_NetworkConfigurationDiagnosticProfile[name]))}
Swagger.field_name(::Type{ NetworkConfigurationDiagnosticProfile }, property_name::Symbol) =  _property_map_NetworkConfigurationDiagnosticProfile[property_name]

function check_required(o::NetworkConfigurationDiagnosticProfile)
    (getproperty(o, Symbol("direction")) === nothing) && (return false)
    (getproperty(o, Symbol("protocol")) === nothing) && (return false)
    (getproperty(o, Symbol("source")) === nothing) && (return false)
    (getproperty(o, Symbol("destination")) === nothing) && (return false)
    (getproperty(o, Symbol("destinationPort")) === nothing) && (return false)
    true
end

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