<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for UploadConsolidatedPDFResponse StructType
 * @subpackage Structs
 */
class UploadConsolidatedPDFResponse extends AbstractStructBase
{
    /**
     * The UploadConsolidatedPDFResult
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $UploadConsolidatedPDFResult;
    /**
     * The jobRunID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $jobRunID;
    /**
     * The xmlResults
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\NineDotMedia\viapost-php\XmlResults
     */
    public $xmlResults;
    /**
     * The strErrorMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strErrorMessage;
    /**
     * Constructor method for UploadConsolidatedPDFResponse
     * @uses UploadConsolidatedPDFResponse::setUploadConsolidatedPDFResult()
     * @uses UploadConsolidatedPDFResponse::setJobRunID()
     * @uses UploadConsolidatedPDFResponse::setXmlResults()
     * @uses UploadConsolidatedPDFResponse::setStrErrorMessage()
     * @param bool $uploadConsolidatedPDFResult
     * @param int $jobRunID
     * @param \\NineDotMedia\viapost-php\XmlResults $xmlResults
     * @param string $strErrorMessage
     */
    public function __construct($uploadConsolidatedPDFResult = null, $jobRunID = null, \\NineDotMedia\viapost-php\XmlResults $xmlResults = null, $strErrorMessage = null)
    {
        $this
            ->setUploadConsolidatedPDFResult($uploadConsolidatedPDFResult)
            ->setJobRunID($jobRunID)
            ->setXmlResults($xmlResults)
            ->setStrErrorMessage($strErrorMessage);
    }
    /**
     * Get UploadConsolidatedPDFResult value
     * @return bool
     */
    public function getUploadConsolidatedPDFResult()
    {
        return $this->UploadConsolidatedPDFResult;
    }
    /**
     * Set UploadConsolidatedPDFResult value
     * @param bool $uploadConsolidatedPDFResult
     * @return \\NineDotMedia\viapost-php\UploadConsolidatedPDFResponse
     */
    public function setUploadConsolidatedPDFResult($uploadConsolidatedPDFResult = null)
    {
        // validation for constraint: boolean
        if (!is_null($uploadConsolidatedPDFResult) && !is_bool($uploadConsolidatedPDFResult)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($uploadConsolidatedPDFResult, true), gettype($uploadConsolidatedPDFResult)), __LINE__);
        }
        $this->UploadConsolidatedPDFResult = $uploadConsolidatedPDFResult;
        return $this;
    }
    /**
     * Get jobRunID value
     * @return int
     */
    public function getJobRunID()
    {
        return $this->jobRunID;
    }
    /**
     * Set jobRunID value
     * @param int $jobRunID
     * @return \\NineDotMedia\viapost-php\UploadConsolidatedPDFResponse
     */
    public function setJobRunID($jobRunID = null)
    {
        // validation for constraint: int
        if (!is_null($jobRunID) && !(is_int($jobRunID) || ctype_digit($jobRunID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($jobRunID, true), gettype($jobRunID)), __LINE__);
        }
        $this->jobRunID = $jobRunID;
        return $this;
    }
    /**
     * Get xmlResults value
     * @return \\NineDotMedia\viapost-php\XmlResults|null
     */
    public function getXmlResults()
    {
        return $this->xmlResults;
    }
    /**
     * Set xmlResults value
     * @param \\NineDotMedia\viapost-php\XmlResults $xmlResults
     * @return \\NineDotMedia\viapost-php\UploadConsolidatedPDFResponse
     */
    public function setXmlResults(\\NineDotMedia\viapost-php\XmlResults $xmlResults = null)
    {
        $this->xmlResults = $xmlResults;
        return $this;
    }
    /**
     * Get strErrorMessage value
     * @return string|null
     */
    public function getStrErrorMessage()
    {
        return $this->strErrorMessage;
    }
    /**
     * Set strErrorMessage value
     * @param string $strErrorMessage
     * @return \\NineDotMedia\viapost-php\UploadConsolidatedPDFResponse
     */
    public function setStrErrorMessage($strErrorMessage = null)
    {
        // validation for constraint: string
        if (!is_null($strErrorMessage) && !is_string($strErrorMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strErrorMessage, true), gettype($strErrorMessage)), __LINE__);
        }
        $this->strErrorMessage = $strErrorMessage;
        return $this;
    }
}
