<?php

namespace NineDotMedia\viapost-php\Struct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CreateLetterheadResponse Struct
 * @subpackage Structs
 */
class CreateLetterheadResponse extends AbstractStructBase
{
    /**
     * The CreateLetterheadResult
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $CreateLetterheadResult;
    /**
     * The letterheadID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $letterheadID;
    /**
     * The returnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $returnMessage;
    /**
     * Constructor method for CreateLetterheadResponse
     * @uses CreateLetterheadResponse::setCreateLetterheadResult()
     * @uses CreateLetterheadResponse::setLetterheadID()
     * @uses CreateLetterheadResponse::setReturnMessage()
     * @param bool $createLetterheadResult
     * @param int $letterheadID
     * @param string $returnMessage
     */
    public function __construct($createLetterheadResult = null, $letterheadID = null, $returnMessage = null)
    {
        $this
            ->setCreateLetterheadResult($createLetterheadResult)
            ->setLetterheadID($letterheadID)
            ->setReturnMessage($returnMessage);
    }
    /**
     * Get CreateLetterheadResult value
     * @return bool
     */
    public function getCreateLetterheadResult()
    {
        return $this->CreateLetterheadResult;
    }
    /**
     * Set CreateLetterheadResult value
     * @param bool $createLetterheadResult
     * @return \NineDotMedia\viapost-php\Struct\CreateLetterheadResponse
     */
    public function setCreateLetterheadResult($createLetterheadResult = null)
    {
        // validation for constraint: boolean
        if (!is_null($createLetterheadResult) && !is_bool($createLetterheadResult)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($createLetterheadResult, true), gettype($createLetterheadResult)), __LINE__);
        }
        $this->CreateLetterheadResult = $createLetterheadResult;
        return $this;
    }
    /**
     * Get letterheadID value
     * @return int
     */
    public function getLetterheadID()
    {
        return $this->letterheadID;
    }
    /**
     * Set letterheadID value
     * @param int $letterheadID
     * @return \NineDotMedia\viapost-php\Struct\CreateLetterheadResponse
     */
    public function setLetterheadID($letterheadID = null)
    {
        // validation for constraint: int
        if (!is_null($letterheadID) && !(is_int($letterheadID) || ctype_digit($letterheadID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($letterheadID, true), gettype($letterheadID)), __LINE__);
        }
        $this->letterheadID = $letterheadID;
        return $this;
    }
    /**
     * Get returnMessage value
     * @return string|null
     */
    public function getReturnMessage()
    {
        return $this->returnMessage;
    }
    /**
     * Set returnMessage value
     * @param string $returnMessage
     * @return \NineDotMedia\viapost-php\Struct\CreateLetterheadResponse
     */
    public function setReturnMessage($returnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($returnMessage) && !is_string($returnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($returnMessage, true), gettype($returnMessage)), __LINE__);
        }
        $this->returnMessage = $returnMessage;
        return $this;
    }
}
