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


@doc raw"""SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.

    IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions(;
        ranges=nothing,
        rule=nothing,
    )

    - ranges::Vector{IoK8sApiExtensionsV1beta1IDRange} : ranges are the allowed ranges of supplemental groups.  If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.
    - rule::String : rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
"""
mutable struct IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions <: SwaggerModel
    ranges::Any # spec type: Union{ Nothing, Vector{IoK8sApiExtensionsV1beta1IDRange} } # spec name: ranges
    rule::Any # spec type: Union{ Nothing, String } # spec name: rule

    function IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions(;ranges=nothing, rule=nothing)
        o = new()
        validate_property(IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions, Symbol("ranges"), ranges)
        setfield!(o, Symbol("ranges"), ranges)
        validate_property(IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions, Symbol("rule"), rule)
        setfield!(o, Symbol("rule"), rule)
        o
    end
end # type IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions

const _property_map_IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions = Dict{Symbol,Symbol}(Symbol("ranges")=>Symbol("ranges"), Symbol("rule")=>Symbol("rule"))
const _property_types_IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions = Dict{Symbol,String}(Symbol("ranges")=>"Vector{IoK8sApiExtensionsV1beta1IDRange}", Symbol("rule")=>"String")
Base.propertynames(::Type{ IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions }) = collect(keys(_property_map_IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions))
Swagger.property_type(::Type{ IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions[name]))}
Swagger.field_name(::Type{ IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions }, property_name::Symbol) =  _property_map_IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions[property_name]

function check_required(o::IoK8sApiExtensionsV1beta1SupplementalGroupsStrategyOptions)
    true
end

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