<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CustomizationType StructType
 * @subpackage Structs
 */
class CustomizationType extends AbstractStructBase
{
    /**
     * The getCustomizationType
     * @var string
     */
    public $getCustomizationType;
    /**
     * Constructor method for CustomizationType
     * @uses CustomizationType::setGetCustomizationType()
     * @param string $getCustomizationType
     */
    public function __construct($getCustomizationType = null)
    {
        $this
            ->setGetCustomizationType($getCustomizationType);
    }
    /**
     * Get getCustomizationType value
     * @return string|null
     */
    public function getGetCustomizationType()
    {
        return $this->getCustomizationType;
    }
    /**
     * Set getCustomizationType value
     * @uses \EnumType\GetCustomizationType::valueIsValid()
     * @uses \EnumType\GetCustomizationType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $getCustomizationType
     * @return \StructType\CustomizationType
     */
    public function setGetCustomizationType($getCustomizationType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\GetCustomizationType::valueIsValid($getCustomizationType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\GetCustomizationType', is_array($getCustomizationType) ? implode(', ', $getCustomizationType) : var_export($getCustomizationType, true), implode(', ', \EnumType\GetCustomizationType::getValidValues())), __LINE__);
        }
        $this->getCustomizationType = $getCustomizationType;
        return $this;
    }
}
