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


@doc raw"""Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.

    IoK8sApiCoreV1GlusterfsVolumeSource(;
        endpoints=nothing,
        path=nothing,
        readOnly=nothing,
    )

    - endpoints::String : EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
    - path::String : Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
    - readOnly::Bool : ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
"""
mutable struct IoK8sApiCoreV1GlusterfsVolumeSource <: SwaggerModel
    endpoints::Any # spec type: Union{ Nothing, String } # spec name: endpoints
    path::Any # spec type: Union{ Nothing, String } # spec name: path
    readOnly::Any # spec type: Union{ Nothing, Bool } # spec name: readOnly

    function IoK8sApiCoreV1GlusterfsVolumeSource(;endpoints=nothing, path=nothing, readOnly=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1GlusterfsVolumeSource, Symbol("endpoints"), endpoints)
        setfield!(o, Symbol("endpoints"), endpoints)
        validate_property(IoK8sApiCoreV1GlusterfsVolumeSource, Symbol("path"), path)
        setfield!(o, Symbol("path"), path)
        validate_property(IoK8sApiCoreV1GlusterfsVolumeSource, Symbol("readOnly"), readOnly)
        setfield!(o, Symbol("readOnly"), readOnly)
        o
    end
end # type IoK8sApiCoreV1GlusterfsVolumeSource

const _property_map_IoK8sApiCoreV1GlusterfsVolumeSource = Dict{Symbol,Symbol}(Symbol("endpoints")=>Symbol("endpoints"), Symbol("path")=>Symbol("path"), Symbol("readOnly")=>Symbol("readOnly"))
const _property_types_IoK8sApiCoreV1GlusterfsVolumeSource = Dict{Symbol,String}(Symbol("endpoints")=>"String", Symbol("path")=>"String", Symbol("readOnly")=>"Bool")
Base.propertynames(::Type{ IoK8sApiCoreV1GlusterfsVolumeSource }) = collect(keys(_property_map_IoK8sApiCoreV1GlusterfsVolumeSource))
Swagger.property_type(::Type{ IoK8sApiCoreV1GlusterfsVolumeSource }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiCoreV1GlusterfsVolumeSource[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1GlusterfsVolumeSource }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1GlusterfsVolumeSource[property_name]

function check_required(o::IoK8sApiCoreV1GlusterfsVolumeSource)
    (getproperty(o, Symbol("endpoints")) === nothing) && (return false)
    (getproperty(o, Symbol("path")) === nothing) && (return false)
    true
end

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