<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for MessageSearchBasic StructType
 * @subpackage Structs
 */
class MessageSearchBasic extends SearchRecordBasic
{
    /**
     * The author
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $author;
    /**
     * The authorEmail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $authorEmail;
    /**
     * The bcc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $bcc;
    /**
     * The cc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $cc;
    /**
     * The externalId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $externalId;
    /**
     * The externalIdString
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $externalIdString;
    /**
     * The hasAttachment
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $hasAttachment;
    /**
     * The internalId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $internalId;
    /**
     * The internalIdNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchLongField
     */
    public $internalIdNumber;
    /**
     * The internalOnly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchBooleanField
     */
    public $internalOnly;
    /**
     * The message
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $message;
    /**
     * The messageDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchDateField
     */
    public $messageDate;
    /**
     * The messageType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchEnumMultiSelectField
     */
    public $messageType;
    /**
     * The recipient
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchMultiSelectField
     */
    public $recipient;
    /**
     * The recipientEmail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $recipientEmail;
    /**
     * The subject
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchStringField
     */
    public $subject;
    /**
     * Constructor method for MessageSearchBasic
     * @uses MessageSearchBasic::setAuthor()
     * @uses MessageSearchBasic::setAuthorEmail()
     * @uses MessageSearchBasic::setBcc()
     * @uses MessageSearchBasic::setCc()
     * @uses MessageSearchBasic::setExternalId()
     * @uses MessageSearchBasic::setExternalIdString()
     * @uses MessageSearchBasic::setHasAttachment()
     * @uses MessageSearchBasic::setInternalId()
     * @uses MessageSearchBasic::setInternalIdNumber()
     * @uses MessageSearchBasic::setInternalOnly()
     * @uses MessageSearchBasic::setMessage()
     * @uses MessageSearchBasic::setMessageDate()
     * @uses MessageSearchBasic::setMessageType()
     * @uses MessageSearchBasic::setRecipient()
     * @uses MessageSearchBasic::setRecipientEmail()
     * @uses MessageSearchBasic::setSubject()
     * @param \StructType\SearchMultiSelectField $author
     * @param \StructType\SearchStringField $authorEmail
     * @param \StructType\SearchStringField $bcc
     * @param \StructType\SearchStringField $cc
     * @param \StructType\SearchMultiSelectField $externalId
     * @param \StructType\SearchStringField $externalIdString
     * @param \StructType\SearchBooleanField $hasAttachment
     * @param \StructType\SearchMultiSelectField $internalId
     * @param \StructType\SearchLongField $internalIdNumber
     * @param \StructType\SearchBooleanField $internalOnly
     * @param \StructType\SearchStringField $message
     * @param \StructType\SearchDateField $messageDate
     * @param \StructType\SearchEnumMultiSelectField $messageType
     * @param \StructType\SearchMultiSelectField $recipient
     * @param \StructType\SearchStringField $recipientEmail
     * @param \StructType\SearchStringField $subject
     */
    public function __construct(\StructType\SearchMultiSelectField $author = null, \StructType\SearchStringField $authorEmail = null, \StructType\SearchStringField $bcc = null, \StructType\SearchStringField $cc = null, \StructType\SearchMultiSelectField $externalId = null, \StructType\SearchStringField $externalIdString = null, \StructType\SearchBooleanField $hasAttachment = null, \StructType\SearchMultiSelectField $internalId = null, \StructType\SearchLongField $internalIdNumber = null, \StructType\SearchBooleanField $internalOnly = null, \StructType\SearchStringField $message = null, \StructType\SearchDateField $messageDate = null, \StructType\SearchEnumMultiSelectField $messageType = null, \StructType\SearchMultiSelectField $recipient = null, \StructType\SearchStringField $recipientEmail = null, \StructType\SearchStringField $subject = null)
    {
        $this
            ->setAuthor($author)
            ->setAuthorEmail($authorEmail)
            ->setBcc($bcc)
            ->setCc($cc)
            ->setExternalId($externalId)
            ->setExternalIdString($externalIdString)
            ->setHasAttachment($hasAttachment)
            ->setInternalId($internalId)
            ->setInternalIdNumber($internalIdNumber)
            ->setInternalOnly($internalOnly)
            ->setMessage($message)
            ->setMessageDate($messageDate)
            ->setMessageType($messageType)
            ->setRecipient($recipient)
            ->setRecipientEmail($recipientEmail)
            ->setSubject($subject);
    }
    /**
     * Get author value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getAuthor()
    {
        return $this->author;
    }
    /**
     * Set author value
     * @param \StructType\SearchMultiSelectField $author
     * @return \StructType\MessageSearchBasic
     */
    public function setAuthor(\StructType\SearchMultiSelectField $author = null)
    {
        $this->author = $author;
        return $this;
    }
    /**
     * Get authorEmail value
     * @return \StructType\SearchStringField|null
     */
    public function getAuthorEmail()
    {
        return $this->authorEmail;
    }
    /**
     * Set authorEmail value
     * @param \StructType\SearchStringField $authorEmail
     * @return \StructType\MessageSearchBasic
     */
    public function setAuthorEmail(\StructType\SearchStringField $authorEmail = null)
    {
        $this->authorEmail = $authorEmail;
        return $this;
    }
    /**
     * Get bcc value
     * @return \StructType\SearchStringField|null
     */
    public function getBcc()
    {
        return $this->bcc;
    }
    /**
     * Set bcc value
     * @param \StructType\SearchStringField $bcc
     * @return \StructType\MessageSearchBasic
     */
    public function setBcc(\StructType\SearchStringField $bcc = null)
    {
        $this->bcc = $bcc;
        return $this;
    }
    /**
     * Get cc value
     * @return \StructType\SearchStringField|null
     */
    public function getCc()
    {
        return $this->cc;
    }
    /**
     * Set cc value
     * @param \StructType\SearchStringField $cc
     * @return \StructType\MessageSearchBasic
     */
    public function setCc(\StructType\SearchStringField $cc = null)
    {
        $this->cc = $cc;
        return $this;
    }
    /**
     * Get externalId value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * Set externalId value
     * @param \StructType\SearchMultiSelectField $externalId
     * @return \StructType\MessageSearchBasic
     */
    public function setExternalId(\StructType\SearchMultiSelectField $externalId = null)
    {
        $this->externalId = $externalId;
        return $this;
    }
    /**
     * Get externalIdString value
     * @return \StructType\SearchStringField|null
     */
    public function getExternalIdString()
    {
        return $this->externalIdString;
    }
    /**
     * Set externalIdString value
     * @param \StructType\SearchStringField $externalIdString
     * @return \StructType\MessageSearchBasic
     */
    public function setExternalIdString(\StructType\SearchStringField $externalIdString = null)
    {
        $this->externalIdString = $externalIdString;
        return $this;
    }
    /**
     * Get hasAttachment value
     * @return \StructType\SearchBooleanField|null
     */
    public function getHasAttachment()
    {
        return $this->hasAttachment;
    }
    /**
     * Set hasAttachment value
     * @param \StructType\SearchBooleanField $hasAttachment
     * @return \StructType\MessageSearchBasic
     */
    public function setHasAttachment(\StructType\SearchBooleanField $hasAttachment = null)
    {
        $this->hasAttachment = $hasAttachment;
        return $this;
    }
    /**
     * Get internalId value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param \StructType\SearchMultiSelectField $internalId
     * @return \StructType\MessageSearchBasic
     */
    public function setInternalId(\StructType\SearchMultiSelectField $internalId = null)
    {
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get internalIdNumber value
     * @return \StructType\SearchLongField|null
     */
    public function getInternalIdNumber()
    {
        return $this->internalIdNumber;
    }
    /**
     * Set internalIdNumber value
     * @param \StructType\SearchLongField $internalIdNumber
     * @return \StructType\MessageSearchBasic
     */
    public function setInternalIdNumber(\StructType\SearchLongField $internalIdNumber = null)
    {
        $this->internalIdNumber = $internalIdNumber;
        return $this;
    }
    /**
     * Get internalOnly value
     * @return \StructType\SearchBooleanField|null
     */
    public function getInternalOnly()
    {
        return $this->internalOnly;
    }
    /**
     * Set internalOnly value
     * @param \StructType\SearchBooleanField $internalOnly
     * @return \StructType\MessageSearchBasic
     */
    public function setInternalOnly(\StructType\SearchBooleanField $internalOnly = null)
    {
        $this->internalOnly = $internalOnly;
        return $this;
    }
    /**
     * Get message value
     * @return \StructType\SearchStringField|null
     */
    public function getMessage()
    {
        return $this->message;
    }
    /**
     * Set message value
     * @param \StructType\SearchStringField $message
     * @return \StructType\MessageSearchBasic
     */
    public function setMessage(\StructType\SearchStringField $message = null)
    {
        $this->message = $message;
        return $this;
    }
    /**
     * Get messageDate value
     * @return \StructType\SearchDateField|null
     */
    public function getMessageDate()
    {
        return $this->messageDate;
    }
    /**
     * Set messageDate value
     * @param \StructType\SearchDateField $messageDate
     * @return \StructType\MessageSearchBasic
     */
    public function setMessageDate(\StructType\SearchDateField $messageDate = null)
    {
        $this->messageDate = $messageDate;
        return $this;
    }
    /**
     * Get messageType value
     * @return \StructType\SearchEnumMultiSelectField|null
     */
    public function getMessageType()
    {
        return $this->messageType;
    }
    /**
     * Set messageType value
     * @param \StructType\SearchEnumMultiSelectField $messageType
     * @return \StructType\MessageSearchBasic
     */
    public function setMessageType(\StructType\SearchEnumMultiSelectField $messageType = null)
    {
        $this->messageType = $messageType;
        return $this;
    }
    /**
     * Get recipient value
     * @return \StructType\SearchMultiSelectField|null
     */
    public function getRecipient()
    {
        return $this->recipient;
    }
    /**
     * Set recipient value
     * @param \StructType\SearchMultiSelectField $recipient
     * @return \StructType\MessageSearchBasic
     */
    public function setRecipient(\StructType\SearchMultiSelectField $recipient = null)
    {
        $this->recipient = $recipient;
        return $this;
    }
    /**
     * Get recipientEmail value
     * @return \StructType\SearchStringField|null
     */
    public function getRecipientEmail()
    {
        return $this->recipientEmail;
    }
    /**
     * Set recipientEmail value
     * @param \StructType\SearchStringField $recipientEmail
     * @return \StructType\MessageSearchBasic
     */
    public function setRecipientEmail(\StructType\SearchStringField $recipientEmail = null)
    {
        $this->recipientEmail = $recipientEmail;
        return $this;
    }
    /**
     * Get subject value
     * @return \StructType\SearchStringField|null
     */
    public function getSubject()
    {
        return $this->subject;
    }
    /**
     * Set subject value
     * @param \StructType\SearchStringField $subject
     * @return \StructType\MessageSearchBasic
     */
    public function setSubject(\StructType\SearchStringField $subject = null)
    {
        $this->subject = $subject;
        return $this;
    }
}
