<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UpdateRoutePartitionsForLearnedPatternsReq StructType
 * @subpackage Structs
 */
class UpdateRoutePartitionsForLearnedPatternsReq extends APIRequest
{
    /**
     * The partitionForEnterpriseANo
     * @var string
     */
    public $partitionForEnterpriseANo;
    /**
     * The partitionForE164ANo
     * @var string
     */
    public $partitionForE164ANo;
    /**
     * The partitionForEnterprisePatterns
     * @var string
     */
    public $partitionForEnterprisePatterns;
    /**
     * The partitionForE164Pattern
     * @var string
     */
    public $partitionForE164Pattern;
    /**
     * The markLearnedEntAltNumbers
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markLearnedEntAltNumbers;
    /**
     * The markLearnedE164AltNumbers
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markLearnedE164AltNumbers;
    /**
     * The markFixedLengthEntPatterns
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markFixedLengthEntPatterns;
    /**
     * The markVariableLengthEntPatterns
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markVariableLengthEntPatterns;
    /**
     * The markFixedLengthE164Patterns
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markFixedLengthE164Patterns;
    /**
     * The markVariableLengthE164Patterns
     * Meta informations extracted from the WSDL
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $markVariableLengthE164Patterns;
    /**
     * Constructor method for UpdateRoutePartitionsForLearnedPatternsReq
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setPartitionForEnterpriseANo()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setPartitionForE164ANo()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setPartitionForEnterprisePatterns()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setPartitionForE164Pattern()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkLearnedEntAltNumbers()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkLearnedE164AltNumbers()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkFixedLengthEntPatterns()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkVariableLengthEntPatterns()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkFixedLengthE164Patterns()
     * @uses UpdateRoutePartitionsForLearnedPatternsReq::setMarkVariableLengthE164Patterns()
     * @param string $partitionForEnterpriseANo
     * @param string $partitionForE164ANo
     * @param string $partitionForEnterprisePatterns
     * @param string $partitionForE164Pattern
     * @param string $markLearnedEntAltNumbers
     * @param string $markLearnedE164AltNumbers
     * @param string $markFixedLengthEntPatterns
     * @param string $markVariableLengthEntPatterns
     * @param string $markFixedLengthE164Patterns
     * @param string $markVariableLengthE164Patterns
     */
    public function __construct($partitionForEnterpriseANo = null, $partitionForE164ANo = null, $partitionForEnterprisePatterns = null, $partitionForE164Pattern = null, $markLearnedEntAltNumbers = null, $markLearnedE164AltNumbers = null, $markFixedLengthEntPatterns = null, $markVariableLengthEntPatterns = null, $markFixedLengthE164Patterns = null, $markVariableLengthE164Patterns = null)
    {
        $this
            ->setPartitionForEnterpriseANo($partitionForEnterpriseANo)
            ->setPartitionForE164ANo($partitionForE164ANo)
            ->setPartitionForEnterprisePatterns($partitionForEnterprisePatterns)
            ->setPartitionForE164Pattern($partitionForE164Pattern)
            ->setMarkLearnedEntAltNumbers($markLearnedEntAltNumbers)
            ->setMarkLearnedE164AltNumbers($markLearnedE164AltNumbers)
            ->setMarkFixedLengthEntPatterns($markFixedLengthEntPatterns)
            ->setMarkVariableLengthEntPatterns($markVariableLengthEntPatterns)
            ->setMarkFixedLengthE164Patterns($markFixedLengthE164Patterns)
            ->setMarkVariableLengthE164Patterns($markVariableLengthE164Patterns);
    }
    /**
     * Get partitionForEnterpriseANo value
     * @return string|null
     */
    public function getPartitionForEnterpriseANo()
    {
        return $this->partitionForEnterpriseANo;
    }
    /**
     * Set partitionForEnterpriseANo value
     * @param string $partitionForEnterpriseANo
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setPartitionForEnterpriseANo($partitionForEnterpriseANo = null)
    {
        // validation for constraint: string
        if (!is_null($partitionForEnterpriseANo) && !is_string($partitionForEnterpriseANo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($partitionForEnterpriseANo)), __LINE__);
        }
        $this->partitionForEnterpriseANo = $partitionForEnterpriseANo;
        return $this;
    }
    /**
     * Get partitionForE164ANo value
     * @return string|null
     */
    public function getPartitionForE164ANo()
    {
        return $this->partitionForE164ANo;
    }
    /**
     * Set partitionForE164ANo value
     * @param string $partitionForE164ANo
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setPartitionForE164ANo($partitionForE164ANo = null)
    {
        // validation for constraint: string
        if (!is_null($partitionForE164ANo) && !is_string($partitionForE164ANo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($partitionForE164ANo)), __LINE__);
        }
        $this->partitionForE164ANo = $partitionForE164ANo;
        return $this;
    }
    /**
     * Get partitionForEnterprisePatterns value
     * @return string|null
     */
    public function getPartitionForEnterprisePatterns()
    {
        return $this->partitionForEnterprisePatterns;
    }
    /**
     * Set partitionForEnterprisePatterns value
     * @param string $partitionForEnterprisePatterns
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setPartitionForEnterprisePatterns($partitionForEnterprisePatterns = null)
    {
        // validation for constraint: string
        if (!is_null($partitionForEnterprisePatterns) && !is_string($partitionForEnterprisePatterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($partitionForEnterprisePatterns)), __LINE__);
        }
        $this->partitionForEnterprisePatterns = $partitionForEnterprisePatterns;
        return $this;
    }
    /**
     * Get partitionForE164Pattern value
     * @return string|null
     */
    public function getPartitionForE164Pattern()
    {
        return $this->partitionForE164Pattern;
    }
    /**
     * Set partitionForE164Pattern value
     * @param string $partitionForE164Pattern
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setPartitionForE164Pattern($partitionForE164Pattern = null)
    {
        // validation for constraint: string
        if (!is_null($partitionForE164Pattern) && !is_string($partitionForE164Pattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($partitionForE164Pattern)), __LINE__);
        }
        $this->partitionForE164Pattern = $partitionForE164Pattern;
        return $this;
    }
    /**
     * Get markLearnedEntAltNumbers value
     * @return string|null
     */
    public function getMarkLearnedEntAltNumbers()
    {
        return $this->markLearnedEntAltNumbers;
    }
    /**
     * Set markLearnedEntAltNumbers value
     * @param string $markLearnedEntAltNumbers
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkLearnedEntAltNumbers($markLearnedEntAltNumbers = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markLearnedEntAltNumbers) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markLearnedEntAltNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markLearnedEntAltNumbers, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markLearnedEntAltNumbers) && !is_string($markLearnedEntAltNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markLearnedEntAltNumbers)), __LINE__);
        }
        $this->markLearnedEntAltNumbers = $markLearnedEntAltNumbers;
        return $this;
    }
    /**
     * Get markLearnedE164AltNumbers value
     * @return string|null
     */
    public function getMarkLearnedE164AltNumbers()
    {
        return $this->markLearnedE164AltNumbers;
    }
    /**
     * Set markLearnedE164AltNumbers value
     * @param string $markLearnedE164AltNumbers
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkLearnedE164AltNumbers($markLearnedE164AltNumbers = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markLearnedE164AltNumbers) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markLearnedE164AltNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markLearnedE164AltNumbers, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markLearnedE164AltNumbers) && !is_string($markLearnedE164AltNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markLearnedE164AltNumbers)), __LINE__);
        }
        $this->markLearnedE164AltNumbers = $markLearnedE164AltNumbers;
        return $this;
    }
    /**
     * Get markFixedLengthEntPatterns value
     * @return string|null
     */
    public function getMarkFixedLengthEntPatterns()
    {
        return $this->markFixedLengthEntPatterns;
    }
    /**
     * Set markFixedLengthEntPatterns value
     * @param string $markFixedLengthEntPatterns
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkFixedLengthEntPatterns($markFixedLengthEntPatterns = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markFixedLengthEntPatterns) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markFixedLengthEntPatterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markFixedLengthEntPatterns, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markFixedLengthEntPatterns) && !is_string($markFixedLengthEntPatterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markFixedLengthEntPatterns)), __LINE__);
        }
        $this->markFixedLengthEntPatterns = $markFixedLengthEntPatterns;
        return $this;
    }
    /**
     * Get markVariableLengthEntPatterns value
     * @return string|null
     */
    public function getMarkVariableLengthEntPatterns()
    {
        return $this->markVariableLengthEntPatterns;
    }
    /**
     * Set markVariableLengthEntPatterns value
     * @param string $markVariableLengthEntPatterns
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkVariableLengthEntPatterns($markVariableLengthEntPatterns = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markVariableLengthEntPatterns) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markVariableLengthEntPatterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markVariableLengthEntPatterns, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markVariableLengthEntPatterns) && !is_string($markVariableLengthEntPatterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markVariableLengthEntPatterns)), __LINE__);
        }
        $this->markVariableLengthEntPatterns = $markVariableLengthEntPatterns;
        return $this;
    }
    /**
     * Get markFixedLengthE164Patterns value
     * @return string|null
     */
    public function getMarkFixedLengthE164Patterns()
    {
        return $this->markFixedLengthE164Patterns;
    }
    /**
     * Set markFixedLengthE164Patterns value
     * @param string $markFixedLengthE164Patterns
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkFixedLengthE164Patterns($markFixedLengthE164Patterns = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markFixedLengthE164Patterns) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markFixedLengthE164Patterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markFixedLengthE164Patterns, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markFixedLengthE164Patterns) && !is_string($markFixedLengthE164Patterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markFixedLengthE164Patterns)), __LINE__);
        }
        $this->markFixedLengthE164Patterns = $markFixedLengthE164Patterns;
        return $this;
    }
    /**
     * Get markVariableLengthE164Patterns value
     * @return string|null
     */
    public function getMarkVariableLengthE164Patterns()
    {
        return $this->markVariableLengthE164Patterns;
    }
    /**
     * Set markVariableLengthE164Patterns value
     * @param string $markVariableLengthE164Patterns
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public function setMarkVariableLengthE164Patterns($markVariableLengthE164Patterns = null)
    {
        // validation for constraint: pattern
        if (is_scalar($markVariableLengthE164Patterns) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $markVariableLengthE164Patterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($markVariableLengthE164Patterns, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($markVariableLengthE164Patterns) && !is_string($markVariableLengthE164Patterns)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($markVariableLengthE164Patterns)), __LINE__);
        }
        $this->markVariableLengthE164Patterns = $markVariableLengthE164Patterns;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return UpdateRoutePartitionsForLearnedPatternsReq
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
