<?php

namespace ebay\EnumType;

/**
 * This class stands for SummaryFrequencyCodeType EnumType
 * Meta informations extracted from the WSDL
 * - documentation: How often the summary is to be delivered.
 * @subpackage Enumerations
 * @date 2017-04-07 16
 */
class SummaryFrequencyCodeType
{
    /**
     * Constant for value 'EverySunday'
     * @return string 'EverySunday'
     */
    const VALUE_EVERY_SUNDAY = 'EverySunday';
    /**
     * Constant for value 'EveryMonday'
     * @return string 'EveryMonday'
     */
    const VALUE_EVERY_MONDAY = 'EveryMonday';
    /**
     * Constant for value 'EveryTuesday'
     * @return string 'EveryTuesday'
     */
    const VALUE_EVERY_TUESDAY = 'EveryTuesday';
    /**
     * Constant for value 'EveryWednesday'
     * @return string 'EveryWednesday'
     */
    const VALUE_EVERY_WEDNESDAY = 'EveryWednesday';
    /**
     * Constant for value 'EveryThursday'
     * @return string 'EveryThursday'
     */
    const VALUE_EVERY_THURSDAY = 'EveryThursday';
    /**
     * Constant for value 'EveryFriday'
     * @return string 'EveryFriday'
     */
    const VALUE_EVERY_FRIDAY = 'EveryFriday';
    /**
     * Constant for value 'EverySaturday'
     * @return string 'EverySaturday'
     */
    const VALUE_EVERY_SATURDAY = 'EverySaturday';
    /**
     * Constant for value 'MonthlyOn1st'
     * @return string 'MonthlyOn1st'
     */
    const VALUE_MONTHLY_ON_1_ST = 'MonthlyOn1st';
    /**
     * Constant for value 'MonthlyOn2nd'
     * @return string 'MonthlyOn2nd'
     */
    const VALUE_MONTHLY_ON_2_ND = 'MonthlyOn2nd';
    /**
     * Constant for value 'MonthlyOn3rd'
     * @return string 'MonthlyOn3rd'
     */
    const VALUE_MONTHLY_ON_3_RD = 'MonthlyOn3rd';
    /**
     * Constant for value 'MonthlyOn4th'
     * @return string 'MonthlyOn4th'
     */
    const VALUE_MONTHLY_ON_4_TH = 'MonthlyOn4th';
    /**
     * Constant for value 'MonthlyOn5th'
     * @return string 'MonthlyOn5th'
     */
    const VALUE_MONTHLY_ON_5_TH = 'MonthlyOn5th';
    /**
     * Constant for value 'MonthlyOn6th'
     * @return string 'MonthlyOn6th'
     */
    const VALUE_MONTHLY_ON_6_TH = 'MonthlyOn6th';
    /**
     * Constant for value 'MonthlyOn7th'
     * @return string 'MonthlyOn7th'
     */
    const VALUE_MONTHLY_ON_7_TH = 'MonthlyOn7th';
    /**
     * Constant for value 'MonthlyOn8th'
     * @return string 'MonthlyOn8th'
     */
    const VALUE_MONTHLY_ON_8_TH = 'MonthlyOn8th';
    /**
     * Constant for value 'MonthlyOn9th'
     * @return string 'MonthlyOn9th'
     */
    const VALUE_MONTHLY_ON_9_TH = 'MonthlyOn9th';
    /**
     * Constant for value 'MonthlyOn10th'
     * @return string 'MonthlyOn10th'
     */
    const VALUE_MONTHLY_ON_10_TH = 'MonthlyOn10th';
    /**
     * Constant for value 'MonthlyOn11th'
     * @return string 'MonthlyOn11th'
     */
    const VALUE_MONTHLY_ON_11_TH = 'MonthlyOn11th';
    /**
     * Constant for value 'MonthlyOn12th'
     * @return string 'MonthlyOn12th'
     */
    const VALUE_MONTHLY_ON_12_TH = 'MonthlyOn12th';
    /**
     * Constant for value 'MonthlyOn13th'
     * @return string 'MonthlyOn13th'
     */
    const VALUE_MONTHLY_ON_13_TH = 'MonthlyOn13th';
    /**
     * Constant for value 'MonthlyOn14th'
     * @return string 'MonthlyOn14th'
     */
    const VALUE_MONTHLY_ON_14_TH = 'MonthlyOn14th';
    /**
     * Constant for value 'MonthlyOn15th'
     * @return string 'MonthlyOn15th'
     */
    const VALUE_MONTHLY_ON_15_TH = 'MonthlyOn15th';
    /**
     * Constant for value 'MonthlyOn16th'
     * @return string 'MonthlyOn16th'
     */
    const VALUE_MONTHLY_ON_16_TH = 'MonthlyOn16th';
    /**
     * Constant for value 'MonthlyOn17th'
     * @return string 'MonthlyOn17th'
     */
    const VALUE_MONTHLY_ON_17_TH = 'MonthlyOn17th';
    /**
     * Constant for value 'MonthlyOn18th'
     * @return string 'MonthlyOn18th'
     */
    const VALUE_MONTHLY_ON_18_TH = 'MonthlyOn18th';
    /**
     * Constant for value 'MonthlyOn19th'
     * @return string 'MonthlyOn19th'
     */
    const VALUE_MONTHLY_ON_19_TH = 'MonthlyOn19th';
    /**
     * Constant for value 'MonthlyOn20th'
     * @return string 'MonthlyOn20th'
     */
    const VALUE_MONTHLY_ON_20_TH = 'MonthlyOn20th';
    /**
     * Constant for value 'MonthlyOn21st'
     * @return string 'MonthlyOn21st'
     */
    const VALUE_MONTHLY_ON_21_ST = 'MonthlyOn21st';
    /**
     * Constant for value 'MonthlyOn22nd'
     * @return string 'MonthlyOn22nd'
     */
    const VALUE_MONTHLY_ON_22_ND = 'MonthlyOn22nd';
    /**
     * Constant for value 'MonthlyOn23rd'
     * @return string 'MonthlyOn23rd'
     */
    const VALUE_MONTHLY_ON_23_RD = 'MonthlyOn23rd';
    /**
     * Constant for value 'MonthlyOn24th'
     * @return string 'MonthlyOn24th'
     */
    const VALUE_MONTHLY_ON_24_TH = 'MonthlyOn24th';
    /**
     * Constant for value 'MonthlyOn25th'
     * @return string 'MonthlyOn25th'
     */
    const VALUE_MONTHLY_ON_25_TH = 'MonthlyOn25th';
    /**
     * Constant for value 'MonthlyOn26th'
     * @return string 'MonthlyOn26th'
     */
    const VALUE_MONTHLY_ON_26_TH = 'MonthlyOn26th';
    /**
     * Constant for value 'MonthlyOn27th'
     * @return string 'MonthlyOn27th'
     */
    const VALUE_MONTHLY_ON_27_TH = 'MonthlyOn27th';
    /**
     * Constant for value 'MonthlyOn28th'
     * @return string 'MonthlyOn28th'
     */
    const VALUE_MONTHLY_ON_28_TH = 'MonthlyOn28th';
    /**
     * Constant for value 'MonthlyOn29th'
     * @return string 'MonthlyOn29th'
     */
    const VALUE_MONTHLY_ON_29_TH = 'MonthlyOn29th';
    /**
     * Constant for value 'MonthlyOn30th'
     * @return string 'MonthlyOn30th'
     */
    const VALUE_MONTHLY_ON_30_TH = 'MonthlyOn30th';
    /**
     * Constant for value 'MonthlyOn31st'
     * @return string 'MonthlyOn31st'
     */
    const VALUE_MONTHLY_ON_31_ST = 'MonthlyOn31st';
    /**
     * Constant for value 'Every31Days'
     * @return string 'Every31Days'
     */
    const VALUE_EVERY_31_DAYS = 'Every31Days';
    /**
     * Constant for value 'Every60Days'
     * @return string 'Every60Days'
     */
    const VALUE_EVERY_60_DAYS = 'Every60Days';
    /**
     * Constant for value 'CustomCode'
     * @return string 'CustomCode'
     */
    const VALUE_CUSTOM_CODE = 'CustomCode';
    /**
     * 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_EVERY_SUNDAY
     * @uses self::VALUE_EVERY_MONDAY
     * @uses self::VALUE_EVERY_TUESDAY
     * @uses self::VALUE_EVERY_WEDNESDAY
     * @uses self::VALUE_EVERY_THURSDAY
     * @uses self::VALUE_EVERY_FRIDAY
     * @uses self::VALUE_EVERY_SATURDAY
     * @uses self::VALUE_MONTHLY_ON_1_ST
     * @uses self::VALUE_MONTHLY_ON_2_ND
     * @uses self::VALUE_MONTHLY_ON_3_RD
     * @uses self::VALUE_MONTHLY_ON_4_TH
     * @uses self::VALUE_MONTHLY_ON_5_TH
     * @uses self::VALUE_MONTHLY_ON_6_TH
     * @uses self::VALUE_MONTHLY_ON_7_TH
     * @uses self::VALUE_MONTHLY_ON_8_TH
     * @uses self::VALUE_MONTHLY_ON_9_TH
     * @uses self::VALUE_MONTHLY_ON_10_TH
     * @uses self::VALUE_MONTHLY_ON_11_TH
     * @uses self::VALUE_MONTHLY_ON_12_TH
     * @uses self::VALUE_MONTHLY_ON_13_TH
     * @uses self::VALUE_MONTHLY_ON_14_TH
     * @uses self::VALUE_MONTHLY_ON_15_TH
     * @uses self::VALUE_MONTHLY_ON_16_TH
     * @uses self::VALUE_MONTHLY_ON_17_TH
     * @uses self::VALUE_MONTHLY_ON_18_TH
     * @uses self::VALUE_MONTHLY_ON_19_TH
     * @uses self::VALUE_MONTHLY_ON_20_TH
     * @uses self::VALUE_MONTHLY_ON_21_ST
     * @uses self::VALUE_MONTHLY_ON_22_ND
     * @uses self::VALUE_MONTHLY_ON_23_RD
     * @uses self::VALUE_MONTHLY_ON_24_TH
     * @uses self::VALUE_MONTHLY_ON_25_TH
     * @uses self::VALUE_MONTHLY_ON_26_TH
     * @uses self::VALUE_MONTHLY_ON_27_TH
     * @uses self::VALUE_MONTHLY_ON_28_TH
     * @uses self::VALUE_MONTHLY_ON_29_TH
     * @uses self::VALUE_MONTHLY_ON_30_TH
     * @uses self::VALUE_MONTHLY_ON_31_ST
     * @uses self::VALUE_EVERY_31_DAYS
     * @uses self::VALUE_EVERY_60_DAYS
     * @uses self::VALUE_CUSTOM_CODE
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_EVERY_SUNDAY,
            self::VALUE_EVERY_MONDAY,
            self::VALUE_EVERY_TUESDAY,
            self::VALUE_EVERY_WEDNESDAY,
            self::VALUE_EVERY_THURSDAY,
            self::VALUE_EVERY_FRIDAY,
            self::VALUE_EVERY_SATURDAY,
            self::VALUE_MONTHLY_ON_1_ST,
            self::VALUE_MONTHLY_ON_2_ND,
            self::VALUE_MONTHLY_ON_3_RD,
            self::VALUE_MONTHLY_ON_4_TH,
            self::VALUE_MONTHLY_ON_5_TH,
            self::VALUE_MONTHLY_ON_6_TH,
            self::VALUE_MONTHLY_ON_7_TH,
            self::VALUE_MONTHLY_ON_8_TH,
            self::VALUE_MONTHLY_ON_9_TH,
            self::VALUE_MONTHLY_ON_10_TH,
            self::VALUE_MONTHLY_ON_11_TH,
            self::VALUE_MONTHLY_ON_12_TH,
            self::VALUE_MONTHLY_ON_13_TH,
            self::VALUE_MONTHLY_ON_14_TH,
            self::VALUE_MONTHLY_ON_15_TH,
            self::VALUE_MONTHLY_ON_16_TH,
            self::VALUE_MONTHLY_ON_17_TH,
            self::VALUE_MONTHLY_ON_18_TH,
            self::VALUE_MONTHLY_ON_19_TH,
            self::VALUE_MONTHLY_ON_20_TH,
            self::VALUE_MONTHLY_ON_21_ST,
            self::VALUE_MONTHLY_ON_22_ND,
            self::VALUE_MONTHLY_ON_23_RD,
            self::VALUE_MONTHLY_ON_24_TH,
            self::VALUE_MONTHLY_ON_25_TH,
            self::VALUE_MONTHLY_ON_26_TH,
            self::VALUE_MONTHLY_ON_27_TH,
            self::VALUE_MONTHLY_ON_28_TH,
            self::VALUE_MONTHLY_ON_29_TH,
            self::VALUE_MONTHLY_ON_30_TH,
            self::VALUE_MONTHLY_ON_31_ST,
            self::VALUE_EVERY_31_DAYS,
            self::VALUE_EVERY_60_DAYS,
            self::VALUE_CUSTOM_CODE,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
