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



mutable struct StorageAccountPropertiesUpdateParameters <: SwaggerModel
    customDomain::Any # spec type: Union{ Nothing, CustomDomain } # spec name: customDomain
    encryption::Any # spec type: Union{ Nothing, Encryption } # spec name: encryption
    accessTier::Any # spec type: Union{ Nothing, String } # spec name: accessTier
    supportsHttpsTrafficOnly::Any # spec type: Union{ Nothing, Bool } # spec name: supportsHttpsTrafficOnly
    networkAcls::Any # spec type: Union{ Nothing, NetworkRuleSet } # spec name: networkAcls

    function StorageAccountPropertiesUpdateParameters(;customDomain=nothing, encryption=nothing, accessTier=nothing, supportsHttpsTrafficOnly=false, networkAcls=nothing)
        o = new()
        validate_property(StorageAccountPropertiesUpdateParameters, Symbol("customDomain"), customDomain)
        setfield!(o, Symbol("customDomain"), customDomain)
        validate_property(StorageAccountPropertiesUpdateParameters, Symbol("encryption"), encryption)
        setfield!(o, Symbol("encryption"), encryption)
        validate_property(StorageAccountPropertiesUpdateParameters, Symbol("accessTier"), accessTier)
        setfield!(o, Symbol("accessTier"), accessTier)
        validate_property(StorageAccountPropertiesUpdateParameters, Symbol("supportsHttpsTrafficOnly"), supportsHttpsTrafficOnly)
        setfield!(o, Symbol("supportsHttpsTrafficOnly"), supportsHttpsTrafficOnly)
        validate_property(StorageAccountPropertiesUpdateParameters, Symbol("networkAcls"), networkAcls)
        setfield!(o, Symbol("networkAcls"), networkAcls)
        o
    end
end # type StorageAccountPropertiesUpdateParameters

const _property_map_StorageAccountPropertiesUpdateParameters = Dict{Symbol,Symbol}(Symbol("customDomain")=>Symbol("customDomain"), Symbol("encryption")=>Symbol("encryption"), Symbol("accessTier")=>Symbol("accessTier"), Symbol("supportsHttpsTrafficOnly")=>Symbol("supportsHttpsTrafficOnly"), Symbol("networkAcls")=>Symbol("networkAcls"))
const _property_types_StorageAccountPropertiesUpdateParameters = Dict{Symbol,String}(Symbol("customDomain")=>"CustomDomain", Symbol("encryption")=>"Encryption", Symbol("accessTier")=>"String", Symbol("supportsHttpsTrafficOnly")=>"Bool", Symbol("networkAcls")=>"NetworkRuleSet")
Base.propertynames(::Type{ StorageAccountPropertiesUpdateParameters }) = collect(keys(_property_map_StorageAccountPropertiesUpdateParameters))
Swagger.property_type(::Type{ StorageAccountPropertiesUpdateParameters }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_StorageAccountPropertiesUpdateParameters[name]))}
Swagger.field_name(::Type{ StorageAccountPropertiesUpdateParameters }, property_name::Symbol) =  _property_map_StorageAccountPropertiesUpdateParameters[property_name]

const _allowed_StorageAccountPropertiesUpdateParameters_accessTier = ["Hot", "Cool"]

function check_required(o::StorageAccountPropertiesUpdateParameters)
    true
end

function validate_property(::Type{ StorageAccountPropertiesUpdateParameters }, name::Symbol, val)
    if name === Symbol("accessTier")
        Swagger.validate_param(name, "StorageAccountPropertiesUpdateParameters", :enum, val, _allowed_StorageAccountPropertiesUpdateParameters_accessTier)
    end
end
