<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleGeneralDiagnostics StructType
 * @subpackage Structs
 */
class VehicleGeneralDiagnostics extends AbstractStructBase
{
    /**
     * The PinCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PinCode;
    /**
     * The TypeCar
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $TypeCar;
    /**
     * The SecurityIdentifier
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $SecurityIdentifier;
    /**
     * The UniqueSerialId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $UniqueSerialId;
    /**
     * The PasswordGsmData
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PasswordGsmData;
    /**
     * The OverwrittenSystemNr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $OverwrittenSystemNr;
    /**
     * The BootLoaderVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $BootLoaderVersion;
    /**
     * Constructor method for VehicleGeneralDiagnostics
     * @uses VehicleGeneralDiagnostics::setPinCode()
     * @uses VehicleGeneralDiagnostics::setTypeCar()
     * @uses VehicleGeneralDiagnostics::setSecurityIdentifier()
     * @uses VehicleGeneralDiagnostics::setUniqueSerialId()
     * @uses VehicleGeneralDiagnostics::setPasswordGsmData()
     * @uses VehicleGeneralDiagnostics::setOverwrittenSystemNr()
     * @uses VehicleGeneralDiagnostics::setBootLoaderVersion()
     * @param string $pinCode
     * @param string $typeCar
     * @param string $securityIdentifier
     * @param string $uniqueSerialId
     * @param string $passwordGsmData
     * @param string $overwrittenSystemNr
     * @param string $bootLoaderVersion
     */
    public function __construct($pinCode = null, $typeCar = null, $securityIdentifier = null, $uniqueSerialId = null, $passwordGsmData = null, $overwrittenSystemNr = null, $bootLoaderVersion = null)
    {
        $this
            ->setPinCode($pinCode)
            ->setTypeCar($typeCar)
            ->setSecurityIdentifier($securityIdentifier)
            ->setUniqueSerialId($uniqueSerialId)
            ->setPasswordGsmData($passwordGsmData)
            ->setOverwrittenSystemNr($overwrittenSystemNr)
            ->setBootLoaderVersion($bootLoaderVersion);
    }
    /**
     * Get PinCode value
     * @return string|null
     */
    public function getPinCode()
    {
        return $this->PinCode;
    }
    /**
     * Set PinCode value
     * @param string $pinCode
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setPinCode($pinCode = null)
    {
        // validation for constraint: string
        if (!is_null($pinCode) && !is_string($pinCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pinCode, true), gettype($pinCode)), __LINE__);
        }
        $this->PinCode = $pinCode;
        return $this;
    }
    /**
     * Get TypeCar value
     * @return string|null
     */
    public function getTypeCar()
    {
        return $this->TypeCar;
    }
    /**
     * Set TypeCar value
     * @param string $typeCar
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setTypeCar($typeCar = null)
    {
        // validation for constraint: string
        if (!is_null($typeCar) && !is_string($typeCar)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($typeCar, true), gettype($typeCar)), __LINE__);
        }
        $this->TypeCar = $typeCar;
        return $this;
    }
    /**
     * Get SecurityIdentifier value
     * @return string|null
     */
    public function getSecurityIdentifier()
    {
        return $this->SecurityIdentifier;
    }
    /**
     * Set SecurityIdentifier value
     * @param string $securityIdentifier
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setSecurityIdentifier($securityIdentifier = null)
    {
        // validation for constraint: string
        if (!is_null($securityIdentifier) && !is_string($securityIdentifier)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($securityIdentifier, true), gettype($securityIdentifier)), __LINE__);
        }
        $this->SecurityIdentifier = $securityIdentifier;
        return $this;
    }
    /**
     * Get UniqueSerialId value
     * @return string|null
     */
    public function getUniqueSerialId()
    {
        return $this->UniqueSerialId;
    }
    /**
     * Set UniqueSerialId value
     * @param string $uniqueSerialId
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setUniqueSerialId($uniqueSerialId = null)
    {
        // validation for constraint: string
        if (!is_null($uniqueSerialId) && !is_string($uniqueSerialId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uniqueSerialId, true), gettype($uniqueSerialId)), __LINE__);
        }
        $this->UniqueSerialId = $uniqueSerialId;
        return $this;
    }
    /**
     * Get PasswordGsmData value
     * @return string|null
     */
    public function getPasswordGsmData()
    {
        return $this->PasswordGsmData;
    }
    /**
     * Set PasswordGsmData value
     * @param string $passwordGsmData
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setPasswordGsmData($passwordGsmData = null)
    {
        // validation for constraint: string
        if (!is_null($passwordGsmData) && !is_string($passwordGsmData)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($passwordGsmData, true), gettype($passwordGsmData)), __LINE__);
        }
        $this->PasswordGsmData = $passwordGsmData;
        return $this;
    }
    /**
     * Get OverwrittenSystemNr value
     * @return string|null
     */
    public function getOverwrittenSystemNr()
    {
        return $this->OverwrittenSystemNr;
    }
    /**
     * Set OverwrittenSystemNr value
     * @param string $overwrittenSystemNr
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setOverwrittenSystemNr($overwrittenSystemNr = null)
    {
        // validation for constraint: string
        if (!is_null($overwrittenSystemNr) && !is_string($overwrittenSystemNr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($overwrittenSystemNr, true), gettype($overwrittenSystemNr)), __LINE__);
        }
        $this->OverwrittenSystemNr = $overwrittenSystemNr;
        return $this;
    }
    /**
     * Get BootLoaderVersion value
     * @return string|null
     */
    public function getBootLoaderVersion()
    {
        return $this->BootLoaderVersion;
    }
    /**
     * Set BootLoaderVersion value
     * @param string $bootLoaderVersion
     * @return \StructType\VehicleGeneralDiagnostics
     */
    public function setBootLoaderVersion($bootLoaderVersion = null)
    {
        // validation for constraint: string
        if (!is_null($bootLoaderVersion) && !is_string($bootLoaderVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($bootLoaderVersion, true), gettype($bootLoaderVersion)), __LINE__);
        }
        $this->BootLoaderVersion = $bootLoaderVersion;
        return $this;
    }
}
