<?php
/**
 * This class stands for XPatternUsage EnumType
 * @subpackage Enumerations
 */
class XPatternUsage
{
    /**
     * Constant for value 'CallPark'
     * @return string 'CallPark'
     */
    const VALUE_CALL_PARK = 'CallPark';
    /**
     * Constant for value 'Conference'
     * @return string 'Conference'
     */
    const VALUE_CONFERENCE = 'Conference';
    /**
     * Constant for value 'Device'
     * @return string 'Device'
     */
    const VALUE_DEVICE = 'Device';
    /**
     * Constant for value 'Translation'
     * @return string 'Translation'
     */
    const VALUE_TRANSLATION = 'Translation';
    /**
     * Constant for value 'Call Pick Up Group'
     * @return string 'Call Pick Up Group'
     */
    const VALUE_CALL_PICK_UP_GROUP = 'Call Pick Up Group';
    /**
     * Constant for value 'Route'
     * @return string 'Route'
     */
    const VALUE_ROUTE = 'Route';
    /**
     * Constant for value 'Message Waiting'
     * @return string 'Message Waiting'
     */
    const VALUE_MESSAGE_WAITING = 'Message Waiting';
    /**
     * Constant for value 'Hunt Pilot'
     * @return string 'Hunt Pilot'
     */
    const VALUE_HUNT_PILOT = 'Hunt Pilot';
    /**
     * Constant for value 'Voice Mail Port'
     * @return string 'Voice Mail Port'
     */
    const VALUE_VOICE_MAIL_PORT = 'Voice Mail Port';
    /**
     * Constant for value 'Domain Routing'
     * @return string 'Domain Routing'
     */
    const VALUE_DOMAIN_ROUTING = 'Domain Routing';
    /**
     * Constant for value 'IPAddress Routing'
     * @return string 'IPAddress Routing'
     */
    const VALUE_IPADDRESS_ROUTING = 'IPAddress Routing';
    /**
     * Constant for value 'Device template'
     * @return string 'Device template'
     */
    const VALUE_DEVICE_TEMPLATE = 'Device template';
    /**
     * Constant for value 'Directed Call Park'
     * @return string 'Directed Call Park'
     */
    const VALUE_DIRECTED_CALL_PARK = 'Directed Call Park';
    /**
     * Constant for value 'Device Intercom'
     * @return string 'Device Intercom'
     */
    const VALUE_DEVICE_INTERCOM = 'Device Intercom';
    /**
     * Constant for value 'Translation Intercom'
     * @return string 'Translation Intercom'
     */
    const VALUE_TRANSLATION_INTERCOM = 'Translation Intercom';
    /**
     * Constant for value 'Translation Calling Party Number'
     * @return string 'Translation Calling Party Number'
     */
    const VALUE_TRANSLATION_CALLING_PARTY_NUMBER = 'Translation Calling Party Number';
    /**
     * Constant for value 'Mobility Handoff'
     * @return string 'Mobility Handoff'
     */
    const VALUE_MOBILITY_HANDOFF = 'Mobility Handoff';
    /**
     * Constant for value 'Mobility Enterprise Feature Access'
     * @return string 'Mobility Enterprise Feature Access'
     */
    const VALUE_MOBILITY_ENTERPRISE_FEATURE_ACCESS = 'Mobility Enterprise Feature Access';
    /**
     * Constant for value 'Mobility IVR'
     * @return string 'Mobility IVR'
     */
    const VALUE_MOBILITY_IVR = 'Mobility IVR';
    /**
     * Constant for value 'Device Intercom Template'
     * @return string 'Device Intercom Template'
     */
    const VALUE_DEVICE_INTERCOM_TEMPLATE = 'Device Intercom Template';
    /**
     * Constant for value 'Called Party Number Transformation'
     * @return string 'Called Party Number Transformation'
     */
    const VALUE_CALLED_PARTY_NUMBER_TRANSFORMATION = 'Called Party Number Transformation';
    /**
     * Constant for value 'Call Control Discovery Learned Pattern'
     * @return string 'Call Control Discovery Learned Pattern'
     */
    const VALUE_CALL_CONTROL_DISCOVERY_LEARNED_PATTERN = 'Call Control Discovery Learned Pattern';
    /**
     * Constant for value 'Uri Routing'
     * @return string 'Uri Routing'
     */
    const VALUE_URI_ROUTING = 'Uri Routing';
    /**
     * 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_CALL_PARK
     * @uses self::VALUE_CONFERENCE
     * @uses self::VALUE_DEVICE
     * @uses self::VALUE_TRANSLATION
     * @uses self::VALUE_CALL_PICK_UP_GROUP
     * @uses self::VALUE_ROUTE
     * @uses self::VALUE_MESSAGE_WAITING
     * @uses self::VALUE_HUNT_PILOT
     * @uses self::VALUE_VOICE_MAIL_PORT
     * @uses self::VALUE_DOMAIN_ROUTING
     * @uses self::VALUE_IPADDRESS_ROUTING
     * @uses self::VALUE_DEVICE_TEMPLATE
     * @uses self::VALUE_DIRECTED_CALL_PARK
     * @uses self::VALUE_DEVICE_INTERCOM
     * @uses self::VALUE_TRANSLATION_INTERCOM
     * @uses self::VALUE_TRANSLATION_CALLING_PARTY_NUMBER
     * @uses self::VALUE_MOBILITY_HANDOFF
     * @uses self::VALUE_MOBILITY_ENTERPRISE_FEATURE_ACCESS
     * @uses self::VALUE_MOBILITY_IVR
     * @uses self::VALUE_DEVICE_INTERCOM_TEMPLATE
     * @uses self::VALUE_CALLED_PARTY_NUMBER_TRANSFORMATION
     * @uses self::VALUE_CALL_CONTROL_DISCOVERY_LEARNED_PATTERN
     * @uses self::VALUE_URI_ROUTING
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_CALL_PARK,
            self::VALUE_CONFERENCE,
            self::VALUE_DEVICE,
            self::VALUE_TRANSLATION,
            self::VALUE_CALL_PICK_UP_GROUP,
            self::VALUE_ROUTE,
            self::VALUE_MESSAGE_WAITING,
            self::VALUE_HUNT_PILOT,
            self::VALUE_VOICE_MAIL_PORT,
            self::VALUE_DOMAIN_ROUTING,
            self::VALUE_IPADDRESS_ROUTING,
            self::VALUE_DEVICE_TEMPLATE,
            self::VALUE_DIRECTED_CALL_PARK,
            self::VALUE_DEVICE_INTERCOM,
            self::VALUE_TRANSLATION_INTERCOM,
            self::VALUE_TRANSLATION_CALLING_PARTY_NUMBER,
            self::VALUE_MOBILITY_HANDOFF,
            self::VALUE_MOBILITY_ENTERPRISE_FEATURE_ACCESS,
            self::VALUE_MOBILITY_IVR,
            self::VALUE_DEVICE_INTERCOM_TEMPLATE,
            self::VALUE_CALLED_PARTY_NUMBER_TRANSFORMATION,
            self::VALUE_CALL_CONTROL_DISCOVERY_LEARNED_PATTERN,
            self::VALUE_URI_ROUTING,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
