<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UploadTemplateResponse StructType
 * @subpackage Structs
 */
class UploadTemplateResponse extends AbstractStructBase
{
    /**
     * The UploadTemplateResult
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UploadTemplateResult;
    /**
     * The SigTemplateId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SigTemplateId;
    /**
     * Constructor method for UploadTemplateResponse
     * @uses UploadTemplateResponse::setUploadTemplateResult()
     * @uses UploadTemplateResponse::setSigTemplateId()
     * @param int $uploadTemplateResult
     * @param int $sigTemplateId
     */
    public function __construct($uploadTemplateResult = null, $sigTemplateId = null)
    {
        $this
            ->setUploadTemplateResult($uploadTemplateResult)
            ->setSigTemplateId($sigTemplateId);
    }
    /**
     * Get UploadTemplateResult value
     * @return int|null
     */
    public function getUploadTemplateResult()
    {
        return $this->UploadTemplateResult;
    }
    /**
     * Set UploadTemplateResult value
     * @param int $uploadTemplateResult
     * @return UploadTemplateResponse
     */
    public function setUploadTemplateResult($uploadTemplateResult = null)
    {
        // validation for constraint: int
        if (!is_null($uploadTemplateResult) && !(is_int($uploadTemplateResult) || ctype_digit($uploadTemplateResult))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($uploadTemplateResult, true), gettype($uploadTemplateResult)), __LINE__);
        }
        $this->UploadTemplateResult = $uploadTemplateResult;
        return $this;
    }
    /**
     * Get SigTemplateId value
     * @return int|null
     */
    public function getSigTemplateId()
    {
        return $this->SigTemplateId;
    }
    /**
     * Set SigTemplateId value
     * @param int $sigTemplateId
     * @return UploadTemplateResponse
     */
    public function setSigTemplateId($sigTemplateId = null)
    {
        // validation for constraint: int
        if (!is_null($sigTemplateId) && !(is_int($sigTemplateId) || ctype_digit($sigTemplateId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($sigTemplateId, true), gettype($sigTemplateId)), __LINE__);
        }
        $this->SigTemplateId = $sigTemplateId;
        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 UploadTemplateResponse
     */
    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__;
    }
}
