<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetLibraryLetterheadsResponse StructType
 * @subpackage Structs
 */
class GetLibraryLetterheadsResponse extends AbstractStructBase
{
    /**
     * The GetLibraryLetterheadsResult
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $GetLibraryLetterheadsResult;
    /**
     * The letterheads
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\NineDotMedia\viapost-php\ArrayOfAnyType
     */
    public $letterheads;
    /**
     * The returnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $returnMessage;
    /**
     * Constructor method for GetLibraryLetterheadsResponse
     * @uses GetLibraryLetterheadsResponse::setGetLibraryLetterheadsResult()
     * @uses GetLibraryLetterheadsResponse::setLetterheads()
     * @uses GetLibraryLetterheadsResponse::setReturnMessage()
     * @param bool $getLibraryLetterheadsResult
     * @param \\NineDotMedia\viapost-php\ArrayOfAnyType $letterheads
     * @param string $returnMessage
     */
    public function __construct($getLibraryLetterheadsResult = null, \\NineDotMedia\viapost-php\ArrayOfAnyType $letterheads = null, $returnMessage = null)
    {
        $this
            ->setGetLibraryLetterheadsResult($getLibraryLetterheadsResult)
            ->setLetterheads($letterheads)
            ->setReturnMessage($returnMessage);
    }
    /**
     * Get GetLibraryLetterheadsResult value
     * @return bool
     */
    public function getGetLibraryLetterheadsResult()
    {
        return $this->GetLibraryLetterheadsResult;
    }
    /**
     * Set GetLibraryLetterheadsResult value
     * @param bool $getLibraryLetterheadsResult
     * @return \\NineDotMedia\viapost-php\GetLibraryLetterheadsResponse
     */
    public function setGetLibraryLetterheadsResult($getLibraryLetterheadsResult = null)
    {
        // validation for constraint: boolean
        if (!is_null($getLibraryLetterheadsResult) && !is_bool($getLibraryLetterheadsResult)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($getLibraryLetterheadsResult, true), gettype($getLibraryLetterheadsResult)), __LINE__);
        }
        $this->GetLibraryLetterheadsResult = $getLibraryLetterheadsResult;
        return $this;
    }
    /**
     * Get letterheads value
     * @return \\NineDotMedia\viapost-php\ArrayOfAnyType|null
     */
    public function getLetterheads()
    {
        return $this->letterheads;
    }
    /**
     * Set letterheads value
     * @param \\NineDotMedia\viapost-php\ArrayOfAnyType $letterheads
     * @return \\NineDotMedia\viapost-php\GetLibraryLetterheadsResponse
     */
    public function setLetterheads(\\NineDotMedia\viapost-php\ArrayOfAnyType $letterheads = null)
    {
        $this->letterheads = $letterheads;
        return $this;
    }
    /**
     * Get returnMessage value
     * @return string|null
     */
    public function getReturnMessage()
    {
        return $this->returnMessage;
    }
    /**
     * Set returnMessage value
     * @param string $returnMessage
     * @return \\NineDotMedia\viapost-php\GetLibraryLetterheadsResponse
     */
    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;
    }
}
