<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for getAppRespStatusResponse StructType
 * @subpackage Structs
 */
class GetAppRespStatusResponse extends AbstractStructBase
{
    /**
     * The getAppRespStatusResult
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $getAppRespStatusResult;
    /**
     * The status
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $status;
    /**
     * The statusDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $statusDescription;
    /**
     * The envelopeId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $envelopeId;
    /**
     * Constructor method for getAppRespStatusResponse
     * @uses GetAppRespStatusResponse::setGetAppRespStatusResult()
     * @uses GetAppRespStatusResponse::setStatus()
     * @uses GetAppRespStatusResponse::setStatusDescription()
     * @uses GetAppRespStatusResponse::setEnvelopeId()
     * @param bool $getAppRespStatusResult
     * @param string $status
     * @param string $statusDescription
     * @param string $envelopeId
     */
    public function __construct($getAppRespStatusResult = null, $status = null, $statusDescription = null, $envelopeId = null)
    {
        $this
            ->setGetAppRespStatusResult($getAppRespStatusResult)
            ->setStatus($status)
            ->setStatusDescription($statusDescription)
            ->setEnvelopeId($envelopeId);
    }
    /**
     * Get getAppRespStatusResult value
     * @return bool|null
     */
    public function getGetAppRespStatusResult()
    {
        return $this->getAppRespStatusResult;
    }
    /**
     * Set getAppRespStatusResult value
     * @param bool $getAppRespStatusResult
     * @return GetAppRespStatusResponse
     */
    public function setGetAppRespStatusResult($getAppRespStatusResult = null)
    {
        $this->getAppRespStatusResult = $getAppRespStatusResult;
        return $this;
    }
    /**
     * Get status value
     * @return string|null
     */
    public function getStatus()
    {
        return $this->status;
    }
    /**
     * Set status value
     * @param string $status
     * @return GetAppRespStatusResponse
     */
    public function setStatus($status = null)
    {
        $this->status = $status;
        return $this;
    }
    /**
     * Get statusDescription 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 getStatusDescription()
    {
        return isset($this->statusDescription) ? $this->statusDescription : null;
    }
    /**
     * Set statusDescription 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 $statusDescription
     * @return GetAppRespStatusResponse
     */
    public function setStatusDescription($statusDescription = null)
    {
        if (is_null($statusDescription) || (is_array($statusDescription) && empty($statusDescription))) {
            unset($this->statusDescription);
        } else {
            $this->statusDescription = $statusDescription;
        }
        return $this;
    }
    /**
     * Get envelopeId 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 getEnvelopeId()
    {
        return isset($this->envelopeId) ? $this->envelopeId : null;
    }
    /**
     * Set envelopeId 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 $envelopeId
     * @return GetAppRespStatusResponse
     */
    public function setEnvelopeId($envelopeId = null)
    {
        if (is_null($envelopeId) || (is_array($envelopeId) && empty($envelopeId))) {
            unset($this->envelopeId);
        } else {
            $this->envelopeId = $envelopeId;
        }
        return $this;
    }
}
