<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleDocScanDiagnostics StructType
 * @subpackage Structs
 */
class VehicleDocScanDiagnostics extends AbstractStructBase
{
    /**
     * The DocScanVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DocScanVersion;
    /**
     * The DocScanGreyScale
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DocScanGreyScale;
    /**
     * The DocScanLastChange
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DocScanLastChange;
    /**
     * The DocScanPictureViewerVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DocScanPictureViewerVersion;
    /**
     * The DocScanPictureViewerStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DocScanPictureViewerStatus;
    /**
     * Constructor method for VehicleDocScanDiagnostics
     * @uses VehicleDocScanDiagnostics::setDocScanVersion()
     * @uses VehicleDocScanDiagnostics::setDocScanGreyScale()
     * @uses VehicleDocScanDiagnostics::setDocScanLastChange()
     * @uses VehicleDocScanDiagnostics::setDocScanPictureViewerVersion()
     * @uses VehicleDocScanDiagnostics::setDocScanPictureViewerStatus()
     * @param string $docScanVersion
     * @param string $docScanGreyScale
     * @param string $docScanLastChange
     * @param string $docScanPictureViewerVersion
     * @param string $docScanPictureViewerStatus
     */
    public function __construct($docScanVersion = null, $docScanGreyScale = null, $docScanLastChange = null, $docScanPictureViewerVersion = null, $docScanPictureViewerStatus = null)
    {
        $this
            ->setDocScanVersion($docScanVersion)
            ->setDocScanGreyScale($docScanGreyScale)
            ->setDocScanLastChange($docScanLastChange)
            ->setDocScanPictureViewerVersion($docScanPictureViewerVersion)
            ->setDocScanPictureViewerStatus($docScanPictureViewerStatus);
    }
    /**
     * Get DocScanVersion value
     * @return string|null
     */
    public function getDocScanVersion()
    {
        return $this->DocScanVersion;
    }
    /**
     * Set DocScanVersion value
     * @param string $docScanVersion
     * @return \StructType\VehicleDocScanDiagnostics
     */
    public function setDocScanVersion($docScanVersion = null)
    {
        // validation for constraint: string
        if (!is_null($docScanVersion) && !is_string($docScanVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($docScanVersion, true), gettype($docScanVersion)), __LINE__);
        }
        $this->DocScanVersion = $docScanVersion;
        return $this;
    }
    /**
     * Get DocScanGreyScale value
     * @return string|null
     */
    public function getDocScanGreyScale()
    {
        return $this->DocScanGreyScale;
    }
    /**
     * Set DocScanGreyScale value
     * @param string $docScanGreyScale
     * @return \StructType\VehicleDocScanDiagnostics
     */
    public function setDocScanGreyScale($docScanGreyScale = null)
    {
        // validation for constraint: string
        if (!is_null($docScanGreyScale) && !is_string($docScanGreyScale)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($docScanGreyScale, true), gettype($docScanGreyScale)), __LINE__);
        }
        $this->DocScanGreyScale = $docScanGreyScale;
        return $this;
    }
    /**
     * Get DocScanLastChange value
     * @return string|null
     */
    public function getDocScanLastChange()
    {
        return $this->DocScanLastChange;
    }
    /**
     * Set DocScanLastChange value
     * @param string $docScanLastChange
     * @return \StructType\VehicleDocScanDiagnostics
     */
    public function setDocScanLastChange($docScanLastChange = null)
    {
        // validation for constraint: string
        if (!is_null($docScanLastChange) && !is_string($docScanLastChange)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($docScanLastChange, true), gettype($docScanLastChange)), __LINE__);
        }
        $this->DocScanLastChange = $docScanLastChange;
        return $this;
    }
    /**
     * Get DocScanPictureViewerVersion value
     * @return string|null
     */
    public function getDocScanPictureViewerVersion()
    {
        return $this->DocScanPictureViewerVersion;
    }
    /**
     * Set DocScanPictureViewerVersion value
     * @param string $docScanPictureViewerVersion
     * @return \StructType\VehicleDocScanDiagnostics
     */
    public function setDocScanPictureViewerVersion($docScanPictureViewerVersion = null)
    {
        // validation for constraint: string
        if (!is_null($docScanPictureViewerVersion) && !is_string($docScanPictureViewerVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($docScanPictureViewerVersion, true), gettype($docScanPictureViewerVersion)), __LINE__);
        }
        $this->DocScanPictureViewerVersion = $docScanPictureViewerVersion;
        return $this;
    }
    /**
     * Get DocScanPictureViewerStatus value
     * @return string|null
     */
    public function getDocScanPictureViewerStatus()
    {
        return $this->DocScanPictureViewerStatus;
    }
    /**
     * Set DocScanPictureViewerStatus value
     * @param string $docScanPictureViewerStatus
     * @return \StructType\VehicleDocScanDiagnostics
     */
    public function setDocScanPictureViewerStatus($docScanPictureViewerStatus = null)
    {
        // validation for constraint: string
        if (!is_null($docScanPictureViewerStatus) && !is_string($docScanPictureViewerStatus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($docScanPictureViewerStatus, true), gettype($docScanPictureViewerStatus)), __LINE__);
        }
        $this->DocScanPictureViewerStatus = $docScanPictureViewerStatus;
        return $this;
    }
}
