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


mutable struct ExpressRouteCircuitConnectionPropertiesFormat <: SwaggerModel
    expressRouteCircuitPeering::Any # spec type: Union{ Nothing, SubResource } # spec name: expressRouteCircuitPeering
    peerExpressRouteCircuitPeering::Any # spec type: Union{ Nothing, SubResource } # spec name: peerExpressRouteCircuitPeering
    addressPrefix::Any # spec type: Union{ Nothing, String } # spec name: addressPrefix
    authorizationKey::Any # spec type: Union{ Nothing, String } # spec name: authorizationKey
    ipv6CircuitConnectionConfig::Any # spec type: Union{ Nothing, Ipv6CircuitConnectionConfig } # spec name: ipv6CircuitConnectionConfig
    circuitConnectionStatus::Any # spec type: Union{ Nothing, CircuitConnectionStatus } # spec name: circuitConnectionStatus
    provisioningState::Any # spec type: Union{ Nothing, ProvisioningState } # spec name: provisioningState

    function ExpressRouteCircuitConnectionPropertiesFormat(;expressRouteCircuitPeering=nothing, peerExpressRouteCircuitPeering=nothing, addressPrefix=nothing, authorizationKey=nothing, ipv6CircuitConnectionConfig=nothing, circuitConnectionStatus=nothing, provisioningState=nothing)
        o = new()
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("expressRouteCircuitPeering"), expressRouteCircuitPeering)
        setfield!(o, Symbol("expressRouteCircuitPeering"), expressRouteCircuitPeering)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("peerExpressRouteCircuitPeering"), peerExpressRouteCircuitPeering)
        setfield!(o, Symbol("peerExpressRouteCircuitPeering"), peerExpressRouteCircuitPeering)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("addressPrefix"), addressPrefix)
        setfield!(o, Symbol("addressPrefix"), addressPrefix)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("authorizationKey"), authorizationKey)
        setfield!(o, Symbol("authorizationKey"), authorizationKey)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("ipv6CircuitConnectionConfig"), ipv6CircuitConnectionConfig)
        setfield!(o, Symbol("ipv6CircuitConnectionConfig"), ipv6CircuitConnectionConfig)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("circuitConnectionStatus"), circuitConnectionStatus)
        setfield!(o, Symbol("circuitConnectionStatus"), circuitConnectionStatus)
        validate_property(ExpressRouteCircuitConnectionPropertiesFormat, Symbol("provisioningState"), provisioningState)
        setfield!(o, Symbol("provisioningState"), provisioningState)
        o
    end
end # type ExpressRouteCircuitConnectionPropertiesFormat

const _property_map_ExpressRouteCircuitConnectionPropertiesFormat = Dict{Symbol,Symbol}(Symbol("expressRouteCircuitPeering")=>Symbol("expressRouteCircuitPeering"), Symbol("peerExpressRouteCircuitPeering")=>Symbol("peerExpressRouteCircuitPeering"), Symbol("addressPrefix")=>Symbol("addressPrefix"), Symbol("authorizationKey")=>Symbol("authorizationKey"), Symbol("ipv6CircuitConnectionConfig")=>Symbol("ipv6CircuitConnectionConfig"), Symbol("circuitConnectionStatus")=>Symbol("circuitConnectionStatus"), Symbol("provisioningState")=>Symbol("provisioningState"))
const _property_types_ExpressRouteCircuitConnectionPropertiesFormat = Dict{Symbol,String}(Symbol("expressRouteCircuitPeering")=>"SubResource", Symbol("peerExpressRouteCircuitPeering")=>"SubResource", Symbol("addressPrefix")=>"String", Symbol("authorizationKey")=>"String", Symbol("ipv6CircuitConnectionConfig")=>"Ipv6CircuitConnectionConfig", Symbol("circuitConnectionStatus")=>"CircuitConnectionStatus", Symbol("provisioningState")=>"ProvisioningState")
Base.propertynames(::Type{ ExpressRouteCircuitConnectionPropertiesFormat }) = collect(keys(_property_map_ExpressRouteCircuitConnectionPropertiesFormat))
Swagger.property_type(::Type{ ExpressRouteCircuitConnectionPropertiesFormat }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_ExpressRouteCircuitConnectionPropertiesFormat[name]))}
Swagger.field_name(::Type{ ExpressRouteCircuitConnectionPropertiesFormat }, property_name::Symbol) =  _property_map_ExpressRouteCircuitConnectionPropertiesFormat[property_name]

function check_required(o::ExpressRouteCircuitConnectionPropertiesFormat)
    true
end

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