<?php

namespace CustomerManagement\EnumType;

/**
 * This class stands for WiFiEncryptionAlgorithmEnum EnumType
 * @subpackage Enumerations
 */
class WiFiEncryptionAlgorithmEnum
{
    /**
     * Constant for value 'None'
     * @return string 'None'
     */
    const VALUE_NONE = 'None';
    /**
     * Constant for value 'Tkip'
     * @return string 'Tkip'
     */
    const VALUE_TKIP = 'Tkip';
    /**
     * Constant for value 'Aes'
     * @return string 'Aes'
     */
    const VALUE_AES = 'Aes';
    /**
     * Constant for value 'Open'
     * @return string 'Open'
     */
    const VALUE_OPEN = 'Open';
    /**
     * Constant for value 'Shared'
     * @return string 'Shared'
     */
    const VALUE_SHARED = 'Shared';
    /**
     * Constant for value 'AmbiguousOpenShared'
     * @return string 'AmbiguousOpenShared'
     */
    const VALUE_AMBIGUOUS_OPEN_SHARED = 'AmbiguousOpenShared';
    /**
     * Constant for value 'Ccmp'
     * @return string 'Ccmp'
     */
    const VALUE_CCMP = 'Ccmp';
    /**
     * Constant for value 'TkipCcmp'
     * @return string 'TkipCcmp'
     */
    const VALUE_TKIP_CCMP = 'TkipCcmp';
    /**
     * Constant for value 'WepAlgorithm'
     * @return string 'WepAlgorithm'
     */
    const VALUE_WEP_ALGORITHM = 'WepAlgorithm';
    /**
     * Constant for value 'TkipAes'
     * @return string 'TkipAes'
     */
    const VALUE_TKIP_AES = 'TkipAes';
    /**
     * Constant for value 'Unknown'
     * @return string 'Unknown'
     */
    const VALUE_UNKNOWN = 'Unknown';
    /**
     * Return true if value is allowed
     * @uses self::getValidValues()
     * @param mixed $value value
     * @return bool true|false
     */
    public static function valueIsValid($value)
    {
        return ($value === null) || in_array($value, self::getValidValues(), true);
    }
    /**
     * Return allowed values
     * @uses self::VALUE_NONE
     * @uses self::VALUE_TKIP
     * @uses self::VALUE_AES
     * @uses self::VALUE_OPEN
     * @uses self::VALUE_SHARED
     * @uses self::VALUE_AMBIGUOUS_OPEN_SHARED
     * @uses self::VALUE_CCMP
     * @uses self::VALUE_TKIP_CCMP
     * @uses self::VALUE_WEP_ALGORITHM
     * @uses self::VALUE_TKIP_AES
     * @uses self::VALUE_UNKNOWN
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_NONE,
            self::VALUE_TKIP,
            self::VALUE_AES,
            self::VALUE_OPEN,
            self::VALUE_SHARED,
            self::VALUE_AMBIGUOUS_OPEN_SHARED,
            self::VALUE_CCMP,
            self::VALUE_TKIP_CCMP,
            self::VALUE_WEP_ALGORITHM,
            self::VALUE_TKIP_AES,
            self::VALUE_UNKNOWN,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
