<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleDigiDownloadDiagnostics StructType
 * @subpackage Structs
 */
class VehicleDigiDownloadDiagnostics extends AbstractStructBase
{
    /**
     * The DigiDownloadMethod
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadMethod;
    /**
     * The DigiDownloadManufacturer
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadManufacturer;
    /**
     * The DigiDownloadD8Protocol
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadD8Protocol;
    /**
     * The DigiDownloadVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadVersion;
    /**
     * The DigiDownloadComportNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadComportNumber;
    /**
     * The DigiDownloadIdentificationNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadIdentificationNumber;
    /**
     * The DigiDownloadLastConfirmed
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DigiDownloadLastConfirmed;
    /**
     * Constructor method for VehicleDigiDownloadDiagnostics
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadMethod()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadManufacturer()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadD8Protocol()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadVersion()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadComportNumber()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadIdentificationNumber()
     * @uses VehicleDigiDownloadDiagnostics::setDigiDownloadLastConfirmed()
     * @param string $digiDownloadMethod
     * @param string $digiDownloadManufacturer
     * @param string $digiDownloadD8Protocol
     * @param string $digiDownloadVersion
     * @param string $digiDownloadComportNumber
     * @param string $digiDownloadIdentificationNumber
     * @param string $digiDownloadLastConfirmed
     */
    public function __construct($digiDownloadMethod = null, $digiDownloadManufacturer = null, $digiDownloadD8Protocol = null, $digiDownloadVersion = null, $digiDownloadComportNumber = null, $digiDownloadIdentificationNumber = null, $digiDownloadLastConfirmed = null)
    {
        $this
            ->setDigiDownloadMethod($digiDownloadMethod)
            ->setDigiDownloadManufacturer($digiDownloadManufacturer)
            ->setDigiDownloadD8Protocol($digiDownloadD8Protocol)
            ->setDigiDownloadVersion($digiDownloadVersion)
            ->setDigiDownloadComportNumber($digiDownloadComportNumber)
            ->setDigiDownloadIdentificationNumber($digiDownloadIdentificationNumber)
            ->setDigiDownloadLastConfirmed($digiDownloadLastConfirmed);
    }
    /**
     * Get DigiDownloadMethod value
     * @return string|null
     */
    public function getDigiDownloadMethod()
    {
        return $this->DigiDownloadMethod;
    }
    /**
     * Set DigiDownloadMethod value
     * @param string $digiDownloadMethod
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadMethod($digiDownloadMethod = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadMethod) && !is_string($digiDownloadMethod)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadMethod, true), gettype($digiDownloadMethod)), __LINE__);
        }
        $this->DigiDownloadMethod = $digiDownloadMethod;
        return $this;
    }
    /**
     * Get DigiDownloadManufacturer value
     * @return string|null
     */
    public function getDigiDownloadManufacturer()
    {
        return $this->DigiDownloadManufacturer;
    }
    /**
     * Set DigiDownloadManufacturer value
     * @param string $digiDownloadManufacturer
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadManufacturer($digiDownloadManufacturer = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadManufacturer) && !is_string($digiDownloadManufacturer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadManufacturer, true), gettype($digiDownloadManufacturer)), __LINE__);
        }
        $this->DigiDownloadManufacturer = $digiDownloadManufacturer;
        return $this;
    }
    /**
     * Get DigiDownloadD8Protocol value
     * @return string|null
     */
    public function getDigiDownloadD8Protocol()
    {
        return $this->DigiDownloadD8Protocol;
    }
    /**
     * Set DigiDownloadD8Protocol value
     * @param string $digiDownloadD8Protocol
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadD8Protocol($digiDownloadD8Protocol = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadD8Protocol) && !is_string($digiDownloadD8Protocol)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadD8Protocol, true), gettype($digiDownloadD8Protocol)), __LINE__);
        }
        $this->DigiDownloadD8Protocol = $digiDownloadD8Protocol;
        return $this;
    }
    /**
     * Get DigiDownloadVersion value
     * @return string|null
     */
    public function getDigiDownloadVersion()
    {
        return $this->DigiDownloadVersion;
    }
    /**
     * Set DigiDownloadVersion value
     * @param string $digiDownloadVersion
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadVersion($digiDownloadVersion = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadVersion) && !is_string($digiDownloadVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadVersion, true), gettype($digiDownloadVersion)), __LINE__);
        }
        $this->DigiDownloadVersion = $digiDownloadVersion;
        return $this;
    }
    /**
     * Get DigiDownloadComportNumber value
     * @return string|null
     */
    public function getDigiDownloadComportNumber()
    {
        return $this->DigiDownloadComportNumber;
    }
    /**
     * Set DigiDownloadComportNumber value
     * @param string $digiDownloadComportNumber
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadComportNumber($digiDownloadComportNumber = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadComportNumber) && !is_string($digiDownloadComportNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadComportNumber, true), gettype($digiDownloadComportNumber)), __LINE__);
        }
        $this->DigiDownloadComportNumber = $digiDownloadComportNumber;
        return $this;
    }
    /**
     * Get DigiDownloadIdentificationNumber value
     * @return string|null
     */
    public function getDigiDownloadIdentificationNumber()
    {
        return $this->DigiDownloadIdentificationNumber;
    }
    /**
     * Set DigiDownloadIdentificationNumber value
     * @param string $digiDownloadIdentificationNumber
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadIdentificationNumber($digiDownloadIdentificationNumber = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadIdentificationNumber) && !is_string($digiDownloadIdentificationNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadIdentificationNumber, true), gettype($digiDownloadIdentificationNumber)), __LINE__);
        }
        $this->DigiDownloadIdentificationNumber = $digiDownloadIdentificationNumber;
        return $this;
    }
    /**
     * Get DigiDownloadLastConfirmed value
     * @return string|null
     */
    public function getDigiDownloadLastConfirmed()
    {
        return $this->DigiDownloadLastConfirmed;
    }
    /**
     * Set DigiDownloadLastConfirmed value
     * @param string $digiDownloadLastConfirmed
     * @return \StructType\VehicleDigiDownloadDiagnostics
     */
    public function setDigiDownloadLastConfirmed($digiDownloadLastConfirmed = null)
    {
        // validation for constraint: string
        if (!is_null($digiDownloadLastConfirmed) && !is_string($digiDownloadLastConfirmed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($digiDownloadLastConfirmed, true), gettype($digiDownloadLastConfirmed)), __LINE__);
        }
        $this->DigiDownloadLastConfirmed = $digiDownloadLastConfirmed;
        return $this;
    }
}
