<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for getEnvelopeList StructType
 * @subpackage Structs
 */
class GetEnvelopeList extends AbstractStructBase
{
    /**
     * The beginDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $beginDate;
    /**
     * The endDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $endDate;
    /**
     * The opType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $opType;
    /**
     * The sessionID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $sessionID;
    /**
     * The dateBy
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dateBy;
    /**
     * Constructor method for getEnvelopeList
     * @uses GetEnvelopeList::setBeginDate()
     * @uses GetEnvelopeList::setEndDate()
     * @uses GetEnvelopeList::setOpType()
     * @uses GetEnvelopeList::setSessionID()
     * @uses GetEnvelopeList::setDateBy()
     * @param string $beginDate
     * @param string $endDate
     * @param string $opType
     * @param string $sessionID
     * @param string $dateBy
     */
    public function __construct($beginDate = null, $endDate = null, $opType = null, $sessionID = null, $dateBy = null)
    {
        $this
            ->setBeginDate($beginDate)
            ->setEndDate($endDate)
            ->setOpType($opType)
            ->setSessionID($sessionID)
            ->setDateBy($dateBy);
    }
    /**
     * Get beginDate value
     * @return string|null
     */
    public function getBeginDate()
    {
        return $this->beginDate;
    }
    /**
     * Set beginDate value
     * @param string $beginDate
     * @return GetEnvelopeList
     */
    public function setBeginDate($beginDate = null)
    {
        $this->beginDate = $beginDate;
        return $this;
    }
    /**
     * Get endDate value
     * @return string|null
     */
    public function getEndDate()
    {
        return $this->endDate;
    }
    /**
     * Set endDate value
     * @param string $endDate
     * @return GetEnvelopeList
     */
    public function setEndDate($endDate = null)
    {
        $this->endDate = $endDate;
        return $this;
    }
    /**
     * Get opType value
     * @return string|null
     */
    public function getOpType()
    {
        return $this->opType;
    }
    /**
     * Set opType value
     * @param string $opType
     * @return GetEnvelopeList
     */
    public function setOpType($opType = null)
    {
        $this->opType = $opType;
        return $this;
    }
    /**
     * Get sessionID value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getSessionID()
    {
        return isset($this->sessionID) ? $this->sessionID : null;
    }
    /**
     * Set sessionID value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $sessionID
     * @return GetEnvelopeList
     */
    public function setSessionID($sessionID = null)
    {
        if (is_null($sessionID) || (is_array($sessionID) && empty($sessionID))) {
            unset($this->sessionID);
        } else {
            $this->sessionID = $sessionID;
        }
        return $this;
    }
    /**
     * Get dateBy value
     * @return string|null
     */
    public function getDateBy()
    {
        return $this->dateBy;
    }
    /**
     * Set dateBy value
     * @param string $dateBy
     * @return GetEnvelopeList
     */
    public function setDateBy($dateBy = null)
    {
        $this->dateBy = $dateBy;
        return $this;
    }
}
