<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetEtlMonitoringDataRequest StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:GetEtlMonitoringDataRequest
 * @subpackage Structs
 */
class GetEtlMonitoringDataRequest extends AbstractStructBase
{
    /**
     * The FromDateUtc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $FromDateUtc;
    /**
     * The ShowAll
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ShowAll;
    /**
     * The ToDateUtc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ToDateUtc;
    /**
     * Constructor method for GetEtlMonitoringDataRequest
     * @uses GetEtlMonitoringDataRequest::setFromDateUtc()
     * @uses GetEtlMonitoringDataRequest::setShowAll()
     * @uses GetEtlMonitoringDataRequest::setToDateUtc()
     * @param string $fromDateUtc
     * @param bool $showAll
     * @param string $toDateUtc
     */
    public function __construct($fromDateUtc = null, $showAll = null, $toDateUtc = null)
    {
        $this
            ->setFromDateUtc($fromDateUtc)
            ->setShowAll($showAll)
            ->setToDateUtc($toDateUtc);
    }
    /**
     * Get FromDateUtc value
     * @return string|null
     */
    public function getFromDateUtc()
    {
        return $this->FromDateUtc;
    }
    /**
     * Set FromDateUtc value
     * @param string $fromDateUtc
     * @return \patest\StructType\GetEtlMonitoringDataRequest
     */
    public function setFromDateUtc($fromDateUtc = null)
    {
        // validation for constraint: string
        if (!is_null($fromDateUtc) && !is_string($fromDateUtc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fromDateUtc, true), gettype($fromDateUtc)), __LINE__);
        }
        $this->FromDateUtc = $fromDateUtc;
        return $this;
    }
    /**
     * Get ShowAll value
     * @return bool|null
     */
    public function getShowAll()
    {
        return $this->ShowAll;
    }
    /**
     * Set ShowAll value
     * @param bool $showAll
     * @return \patest\StructType\GetEtlMonitoringDataRequest
     */
    public function setShowAll($showAll = null)
    {
        // validation for constraint: boolean
        if (!is_null($showAll) && !is_bool($showAll)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($showAll, true), gettype($showAll)), __LINE__);
        }
        $this->ShowAll = $showAll;
        return $this;
    }
    /**
     * Get ToDateUtc value
     * @return string|null
     */
    public function getToDateUtc()
    {
        return $this->ToDateUtc;
    }
    /**
     * Set ToDateUtc value
     * @param string $toDateUtc
     * @return \patest\StructType\GetEtlMonitoringDataRequest
     */
    public function setToDateUtc($toDateUtc = null)
    {
        // validation for constraint: string
        if (!is_null($toDateUtc) && !is_string($toDateUtc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($toDateUtc, true), gettype($toDateUtc)), __LINE__);
        }
        $this->ToDateUtc = $toDateUtc;
        return $this;
    }
}
