<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleMapDiagnostics StructType
 * @subpackage Structs
 */
class VehicleMapDiagnostics extends AbstractStructBase
{
    /**
     * The MapStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapStatus;
    /**
     * The MapIds
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapIds;
    /**
     * The MapId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapId;
    /**
     * The MapStatusMachine
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapStatusMachine;
    /**
     * The MapLastStatusChange
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapLastStatusChange;
    /**
     * The MapLicenseCheck
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapLicenseCheck;
    /**
     * The MapLastRequest
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapLastRequest;
    /**
     * The MapProvider
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapProvider;
    /**
     * The MapVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MapVersion;
    /**
     * The NavigationSoftwareVersion
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $NavigationSoftwareVersion;
    /**
     * Constructor method for VehicleMapDiagnostics
     * @uses VehicleMapDiagnostics::setMapStatus()
     * @uses VehicleMapDiagnostics::setMapIds()
     * @uses VehicleMapDiagnostics::setMapId()
     * @uses VehicleMapDiagnostics::setMapStatusMachine()
     * @uses VehicleMapDiagnostics::setMapLastStatusChange()
     * @uses VehicleMapDiagnostics::setMapLicenseCheck()
     * @uses VehicleMapDiagnostics::setMapLastRequest()
     * @uses VehicleMapDiagnostics::setMapProvider()
     * @uses VehicleMapDiagnostics::setMapVersion()
     * @uses VehicleMapDiagnostics::setNavigationSoftwareVersion()
     * @param string $mapStatus
     * @param string $mapIds
     * @param string $mapId
     * @param string $mapStatusMachine
     * @param string $mapLastStatusChange
     * @param string $mapLicenseCheck
     * @param string $mapLastRequest
     * @param string $mapProvider
     * @param string $mapVersion
     * @param string $navigationSoftwareVersion
     */
    public function __construct($mapStatus = null, $mapIds = null, $mapId = null, $mapStatusMachine = null, $mapLastStatusChange = null, $mapLicenseCheck = null, $mapLastRequest = null, $mapProvider = null, $mapVersion = null, $navigationSoftwareVersion = null)
    {
        $this
            ->setMapStatus($mapStatus)
            ->setMapIds($mapIds)
            ->setMapId($mapId)
            ->setMapStatusMachine($mapStatusMachine)
            ->setMapLastStatusChange($mapLastStatusChange)
            ->setMapLicenseCheck($mapLicenseCheck)
            ->setMapLastRequest($mapLastRequest)
            ->setMapProvider($mapProvider)
            ->setMapVersion($mapVersion)
            ->setNavigationSoftwareVersion($navigationSoftwareVersion);
    }
    /**
     * Get MapStatus value
     * @return string|null
     */
    public function getMapStatus()
    {
        return $this->MapStatus;
    }
    /**
     * Set MapStatus value
     * @param string $mapStatus
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapStatus($mapStatus = null)
    {
        // validation for constraint: string
        if (!is_null($mapStatus) && !is_string($mapStatus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapStatus, true), gettype($mapStatus)), __LINE__);
        }
        $this->MapStatus = $mapStatus;
        return $this;
    }
    /**
     * Get MapIds value
     * @return string|null
     */
    public function getMapIds()
    {
        return $this->MapIds;
    }
    /**
     * Set MapIds value
     * @param string $mapIds
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapIds($mapIds = null)
    {
        // validation for constraint: string
        if (!is_null($mapIds) && !is_string($mapIds)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapIds, true), gettype($mapIds)), __LINE__);
        }
        $this->MapIds = $mapIds;
        return $this;
    }
    /**
     * Get MapId value
     * @return string|null
     */
    public function getMapId()
    {
        return $this->MapId;
    }
    /**
     * Set MapId value
     * @param string $mapId
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapId($mapId = null)
    {
        // validation for constraint: string
        if (!is_null($mapId) && !is_string($mapId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapId, true), gettype($mapId)), __LINE__);
        }
        $this->MapId = $mapId;
        return $this;
    }
    /**
     * Get MapStatusMachine value
     * @return string|null
     */
    public function getMapStatusMachine()
    {
        return $this->MapStatusMachine;
    }
    /**
     * Set MapStatusMachine value
     * @param string $mapStatusMachine
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapStatusMachine($mapStatusMachine = null)
    {
        // validation for constraint: string
        if (!is_null($mapStatusMachine) && !is_string($mapStatusMachine)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapStatusMachine, true), gettype($mapStatusMachine)), __LINE__);
        }
        $this->MapStatusMachine = $mapStatusMachine;
        return $this;
    }
    /**
     * Get MapLastStatusChange value
     * @return string|null
     */
    public function getMapLastStatusChange()
    {
        return $this->MapLastStatusChange;
    }
    /**
     * Set MapLastStatusChange value
     * @param string $mapLastStatusChange
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapLastStatusChange($mapLastStatusChange = null)
    {
        // validation for constraint: string
        if (!is_null($mapLastStatusChange) && !is_string($mapLastStatusChange)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapLastStatusChange, true), gettype($mapLastStatusChange)), __LINE__);
        }
        $this->MapLastStatusChange = $mapLastStatusChange;
        return $this;
    }
    /**
     * Get MapLicenseCheck value
     * @return string|null
     */
    public function getMapLicenseCheck()
    {
        return $this->MapLicenseCheck;
    }
    /**
     * Set MapLicenseCheck value
     * @param string $mapLicenseCheck
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapLicenseCheck($mapLicenseCheck = null)
    {
        // validation for constraint: string
        if (!is_null($mapLicenseCheck) && !is_string($mapLicenseCheck)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapLicenseCheck, true), gettype($mapLicenseCheck)), __LINE__);
        }
        $this->MapLicenseCheck = $mapLicenseCheck;
        return $this;
    }
    /**
     * Get MapLastRequest value
     * @return string|null
     */
    public function getMapLastRequest()
    {
        return $this->MapLastRequest;
    }
    /**
     * Set MapLastRequest value
     * @param string $mapLastRequest
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapLastRequest($mapLastRequest = null)
    {
        // validation for constraint: string
        if (!is_null($mapLastRequest) && !is_string($mapLastRequest)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapLastRequest, true), gettype($mapLastRequest)), __LINE__);
        }
        $this->MapLastRequest = $mapLastRequest;
        return $this;
    }
    /**
     * Get MapProvider value
     * @return string|null
     */
    public function getMapProvider()
    {
        return $this->MapProvider;
    }
    /**
     * Set MapProvider value
     * @param string $mapProvider
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapProvider($mapProvider = null)
    {
        // validation for constraint: string
        if (!is_null($mapProvider) && !is_string($mapProvider)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapProvider, true), gettype($mapProvider)), __LINE__);
        }
        $this->MapProvider = $mapProvider;
        return $this;
    }
    /**
     * Get MapVersion value
     * @return string|null
     */
    public function getMapVersion()
    {
        return $this->MapVersion;
    }
    /**
     * Set MapVersion value
     * @param string $mapVersion
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setMapVersion($mapVersion = null)
    {
        // validation for constraint: string
        if (!is_null($mapVersion) && !is_string($mapVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mapVersion, true), gettype($mapVersion)), __LINE__);
        }
        $this->MapVersion = $mapVersion;
        return $this;
    }
    /**
     * Get NavigationSoftwareVersion value
     * @return string|null
     */
    public function getNavigationSoftwareVersion()
    {
        return $this->NavigationSoftwareVersion;
    }
    /**
     * Set NavigationSoftwareVersion value
     * @param string $navigationSoftwareVersion
     * @return \StructType\VehicleMapDiagnostics
     */
    public function setNavigationSoftwareVersion($navigationSoftwareVersion = null)
    {
        // validation for constraint: string
        if (!is_null($navigationSoftwareVersion) && !is_string($navigationSoftwareVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($navigationSoftwareVersion, true), gettype($navigationSoftwareVersion)), __LINE__);
        }
        $this->NavigationSoftwareVersion = $navigationSoftwareVersion;
        return $this;
    }
}
