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



mutable struct IoK8sApiCoreV1PodSecurityContext <: SwaggerModel
    fsGroup::Any # spec type: Union{ Nothing, Int64 } # spec name: fsGroup
    runAsGroup::Any # spec type: Union{ Nothing, Int64 } # spec name: runAsGroup
    runAsNonRoot::Any # spec type: Union{ Nothing, Bool } # spec name: runAsNonRoot
    runAsUser::Any # spec type: Union{ Nothing, Int64 } # spec name: runAsUser
    seLinuxOptions::Any # spec type: Union{ Nothing, IoK8sApiCoreV1SELinuxOptions } # spec name: seLinuxOptions
    supplementalGroups::Any # spec type: Union{ Nothing, Vector{Int64} } # spec name: supplementalGroups
    sysctls::Any # spec type: Union{ Nothing, Vector{IoK8sApiCoreV1Sysctl} } # spec name: sysctls

    function IoK8sApiCoreV1PodSecurityContext(;fsGroup=nothing, runAsGroup=nothing, runAsNonRoot=nothing, runAsUser=nothing, seLinuxOptions=nothing, supplementalGroups=nothing, sysctls=nothing)
        o = new()
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("fsGroup"), fsGroup)
        setfield!(o, Symbol("fsGroup"), fsGroup)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("runAsGroup"), runAsGroup)
        setfield!(o, Symbol("runAsGroup"), runAsGroup)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("runAsNonRoot"), runAsNonRoot)
        setfield!(o, Symbol("runAsNonRoot"), runAsNonRoot)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("runAsUser"), runAsUser)
        setfield!(o, Symbol("runAsUser"), runAsUser)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("seLinuxOptions"), seLinuxOptions)
        setfield!(o, Symbol("seLinuxOptions"), seLinuxOptions)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("supplementalGroups"), supplementalGroups)
        setfield!(o, Symbol("supplementalGroups"), supplementalGroups)
        validate_property(IoK8sApiCoreV1PodSecurityContext, Symbol("sysctls"), sysctls)
        setfield!(o, Symbol("sysctls"), sysctls)
        o
    end
end # type IoK8sApiCoreV1PodSecurityContext

const _property_map_IoK8sApiCoreV1PodSecurityContext = Dict{Symbol,Symbol}(Symbol("fsGroup")=>Symbol("fsGroup"), Symbol("runAsGroup")=>Symbol("runAsGroup"), Symbol("runAsNonRoot")=>Symbol("runAsNonRoot"), Symbol("runAsUser")=>Symbol("runAsUser"), Symbol("seLinuxOptions")=>Symbol("seLinuxOptions"), Symbol("supplementalGroups")=>Symbol("supplementalGroups"), Symbol("sysctls")=>Symbol("sysctls"))
const _property_types_IoK8sApiCoreV1PodSecurityContext = Dict{Symbol,String}(Symbol("fsGroup")=>"Int64", Symbol("runAsGroup")=>"Int64", Symbol("runAsNonRoot")=>"Bool", Symbol("runAsUser")=>"Int64", Symbol("seLinuxOptions")=>"IoK8sApiCoreV1SELinuxOptions", Symbol("supplementalGroups")=>"Vector{Int64}", Symbol("sysctls")=>"Vector{IoK8sApiCoreV1Sysctl}")
Base.propertynames(::Type{ IoK8sApiCoreV1PodSecurityContext }) = collect(keys(_property_map_IoK8sApiCoreV1PodSecurityContext))
Swagger.property_type(::Type{ IoK8sApiCoreV1PodSecurityContext }, name::Symbol) = Union{Nothing,eval(Meta.parse(_property_types_IoK8sApiCoreV1PodSecurityContext[name]))}
Swagger.field_name(::Type{ IoK8sApiCoreV1PodSecurityContext }, property_name::Symbol) =  _property_map_IoK8sApiCoreV1PodSecurityContext[property_name]

function check_required(o::IoK8sApiCoreV1PodSecurityContext)
    true
end

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