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



mutable struct KeyVaultSecretReference <: SwaggerModel
    secretUrl::Any # spec type: Union{ Nothing, String } # spec name: secretUrl
    sourceVault::Any # spec type: Union{ Nothing, SubResource } # spec name: sourceVault

    function KeyVaultSecretReference(;secretUrl=nothing, sourceVault=nothing)
        o = new()
        validate_property(KeyVaultSecretReference, Symbol("secretUrl"), secretUrl)
        setfield!(o, Symbol("secretUrl"), secretUrl)
        validate_property(KeyVaultSecretReference, Symbol("sourceVault"), sourceVault)
        setfield!(o, Symbol("sourceVault"), sourceVault)
        o
    end
end # type KeyVaultSecretReference

const _property_map_KeyVaultSecretReference = Dict{Symbol,Symbol}(Symbol("secretUrl")=>Symbol("secretUrl"), Symbol("sourceVault")=>Symbol("sourceVault"))
const _property_types_KeyVaultSecretReference = Dict{Symbol,String}(Symbol("secretUrl")=>"String", Symbol("sourceVault")=>"SubResource")
Base.propertynames(::Type{ KeyVaultSecretReference }) = collect(keys(_property_map_KeyVaultSecretReference))
Swagger.property_type(::Type{ KeyVaultSecretReference }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_KeyVaultSecretReference[name]))}
Swagger.field_name(::Type{ KeyVaultSecretReference }, property_name::Symbol) =  _property_map_KeyVaultSecretReference[property_name]

function check_required(o::KeyVaultSecretReference)
    (getproperty(o, Symbol("secretUrl")) === nothing) && (return false)
    (getproperty(o, Symbol("sourceVault")) === nothing) && (return false)
    true
end

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