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


@doc raw"""PersistentVolumeStatus is the current status of a persistent volume.

    IoK8sApiCoreV1PersistentVolumeStatus(;
        message=nothing,
        phase=nothing,
        reason=nothing,
    )

    - message::String : A human-readable message indicating details about why the volume is in this state.
    - phase::String : Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
    - reason::String : Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.
"""
mutable struct IoK8sApiCoreV1PersistentVolumeStatus <: SwaggerModel
    message::Any # spec type: Union{ Nothing, String } # spec name: message
    phase::Any # spec type: Union{ Nothing, String } # spec name: phase
    reason::Any # spec type: Union{ Nothing, String } # spec name: reason

    function IoK8sApiCoreV1PersistentVolumeStatus(;message=nothing, phase=nothing, reason=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1PersistentVolumeStatus, Symbol("message"), message)
        setfield!(o, Symbol("message"), message)
        validate_property(IoK8sApiCoreV1PersistentVolumeStatus, Symbol("phase"), phase)
        setfield!(o, Symbol("phase"), phase)
        validate_property(IoK8sApiCoreV1PersistentVolumeStatus, Symbol("reason"), reason)
        setfield!(o, Symbol("reason"), reason)
        o
    end
end # type IoK8sApiCoreV1PersistentVolumeStatus

const _property_map_IoK8sApiCoreV1PersistentVolumeStatus = Dict{Symbol,Symbol}(Symbol("message")=>Symbol("message"), Symbol("phase")=>Symbol("phase"), Symbol("reason")=>Symbol("reason"))
const _property_types_IoK8sApiCoreV1PersistentVolumeStatus = Dict{Symbol,String}(Symbol("message")=>"String", Symbol("phase")=>"String", Symbol("reason")=>"String")
Base.propertynames(::Type{ IoK8sApiCoreV1PersistentVolumeStatus }) = collect(keys(_property_map_IoK8sApiCoreV1PersistentVolumeStatus))
Swagger.property_type(::Type{ IoK8sApiCoreV1PersistentVolumeStatus }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCoreV1PersistentVolumeStatus[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1PersistentVolumeStatus }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1PersistentVolumeStatus[property_name]

function check_required(o::IoK8sApiCoreV1PersistentVolumeStatus)
    true
end

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