<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleGPRSDiagnostics StructType
 * @subpackage Structs
 */
class VehicleGPRSDiagnostics extends AbstractStructBase
{
    /**
     * The GPRSAllowed
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSAllowed;
    /**
     * The GPRSAllowedNoRoaming
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSAllowedNoRoaming;
    /**
     * The GPRSTrafficOn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficOn;
    /**
     * The GPRSTrafficAutocheck
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficAutocheck;
    /**
     * The GPRSTrafficTime
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficTime;
    /**
     * The GPRSTrafficConnections
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficConnections;
    /**
     * The GPRSTrafficFtp
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficFtp;
    /**
     * The GPRSTrafficFiles
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficFiles;
    /**
     * The GPRSTrafficSizeKB
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficSizeKB;
    /**
     * The GPRSTrafficSMS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GPRSTrafficSMS;
    /**
     * The APN_GPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $APN_GPRS;
    /**
     * The DNS1_GPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DNS1_GPRS;
    /**
     * The DNS2_GPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DNS2_GPRS;
    /**
     * The UserGPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $UserGPRS;
    /**
     * The PasswordGPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PasswordGPRS;
    /**
     * The PortGPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PortGPRS;
    /**
     * The ModeGPRS
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ModeGPRS;
    /**
     * Constructor method for VehicleGPRSDiagnostics
     * @uses VehicleGPRSDiagnostics::setGPRSAllowed()
     * @uses VehicleGPRSDiagnostics::setGPRSAllowedNoRoaming()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficOn()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficAutocheck()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficTime()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficConnections()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficFtp()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficFiles()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficSizeKB()
     * @uses VehicleGPRSDiagnostics::setGPRSTrafficSMS()
     * @uses VehicleGPRSDiagnostics::setAPN_GPRS()
     * @uses VehicleGPRSDiagnostics::setDNS1_GPRS()
     * @uses VehicleGPRSDiagnostics::setDNS2_GPRS()
     * @uses VehicleGPRSDiagnostics::setUserGPRS()
     * @uses VehicleGPRSDiagnostics::setPasswordGPRS()
     * @uses VehicleGPRSDiagnostics::setPortGPRS()
     * @uses VehicleGPRSDiagnostics::setModeGPRS()
     * @param string $gPRSAllowed
     * @param string $gPRSAllowedNoRoaming
     * @param string $gPRSTrafficOn
     * @param string $gPRSTrafficAutocheck
     * @param string $gPRSTrafficTime
     * @param string $gPRSTrafficConnections
     * @param string $gPRSTrafficFtp
     * @param string $gPRSTrafficFiles
     * @param string $gPRSTrafficSizeKB
     * @param string $gPRSTrafficSMS
     * @param string $aPN_GPRS
     * @param string $dNS1_GPRS
     * @param string $dNS2_GPRS
     * @param string $userGPRS
     * @param string $passwordGPRS
     * @param string $portGPRS
     * @param string $modeGPRS
     */
    public function __construct($gPRSAllowed = null, $gPRSAllowedNoRoaming = null, $gPRSTrafficOn = null, $gPRSTrafficAutocheck = null, $gPRSTrafficTime = null, $gPRSTrafficConnections = null, $gPRSTrafficFtp = null, $gPRSTrafficFiles = null, $gPRSTrafficSizeKB = null, $gPRSTrafficSMS = null, $aPN_GPRS = null, $dNS1_GPRS = null, $dNS2_GPRS = null, $userGPRS = null, $passwordGPRS = null, $portGPRS = null, $modeGPRS = null)
    {
        $this
            ->setGPRSAllowed($gPRSAllowed)
            ->setGPRSAllowedNoRoaming($gPRSAllowedNoRoaming)
            ->setGPRSTrafficOn($gPRSTrafficOn)
            ->setGPRSTrafficAutocheck($gPRSTrafficAutocheck)
            ->setGPRSTrafficTime($gPRSTrafficTime)
            ->setGPRSTrafficConnections($gPRSTrafficConnections)
            ->setGPRSTrafficFtp($gPRSTrafficFtp)
            ->setGPRSTrafficFiles($gPRSTrafficFiles)
            ->setGPRSTrafficSizeKB($gPRSTrafficSizeKB)
            ->setGPRSTrafficSMS($gPRSTrafficSMS)
            ->setAPN_GPRS($aPN_GPRS)
            ->setDNS1_GPRS($dNS1_GPRS)
            ->setDNS2_GPRS($dNS2_GPRS)
            ->setUserGPRS($userGPRS)
            ->setPasswordGPRS($passwordGPRS)
            ->setPortGPRS($portGPRS)
            ->setModeGPRS($modeGPRS);
    }
    /**
     * Get GPRSAllowed value
     * @return string|null
     */
    public function getGPRSAllowed()
    {
        return $this->GPRSAllowed;
    }
    /**
     * Set GPRSAllowed value
     * @param string $gPRSAllowed
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSAllowed($gPRSAllowed = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSAllowed) && !is_string($gPRSAllowed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSAllowed, true), gettype($gPRSAllowed)), __LINE__);
        }
        $this->GPRSAllowed = $gPRSAllowed;
        return $this;
    }
    /**
     * Get GPRSAllowedNoRoaming value
     * @return string|null
     */
    public function getGPRSAllowedNoRoaming()
    {
        return $this->GPRSAllowedNoRoaming;
    }
    /**
     * Set GPRSAllowedNoRoaming value
     * @param string $gPRSAllowedNoRoaming
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSAllowedNoRoaming($gPRSAllowedNoRoaming = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSAllowedNoRoaming) && !is_string($gPRSAllowedNoRoaming)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSAllowedNoRoaming, true), gettype($gPRSAllowedNoRoaming)), __LINE__);
        }
        $this->GPRSAllowedNoRoaming = $gPRSAllowedNoRoaming;
        return $this;
    }
    /**
     * Get GPRSTrafficOn value
     * @return string|null
     */
    public function getGPRSTrafficOn()
    {
        return $this->GPRSTrafficOn;
    }
    /**
     * Set GPRSTrafficOn value
     * @param string $gPRSTrafficOn
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficOn($gPRSTrafficOn = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficOn) && !is_string($gPRSTrafficOn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficOn, true), gettype($gPRSTrafficOn)), __LINE__);
        }
        $this->GPRSTrafficOn = $gPRSTrafficOn;
        return $this;
    }
    /**
     * Get GPRSTrafficAutocheck value
     * @return string|null
     */
    public function getGPRSTrafficAutocheck()
    {
        return $this->GPRSTrafficAutocheck;
    }
    /**
     * Set GPRSTrafficAutocheck value
     * @param string $gPRSTrafficAutocheck
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficAutocheck($gPRSTrafficAutocheck = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficAutocheck) && !is_string($gPRSTrafficAutocheck)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficAutocheck, true), gettype($gPRSTrafficAutocheck)), __LINE__);
        }
        $this->GPRSTrafficAutocheck = $gPRSTrafficAutocheck;
        return $this;
    }
    /**
     * Get GPRSTrafficTime value
     * @return string|null
     */
    public function getGPRSTrafficTime()
    {
        return $this->GPRSTrafficTime;
    }
    /**
     * Set GPRSTrafficTime value
     * @param string $gPRSTrafficTime
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficTime($gPRSTrafficTime = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficTime) && !is_string($gPRSTrafficTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficTime, true), gettype($gPRSTrafficTime)), __LINE__);
        }
        $this->GPRSTrafficTime = $gPRSTrafficTime;
        return $this;
    }
    /**
     * Get GPRSTrafficConnections value
     * @return string|null
     */
    public function getGPRSTrafficConnections()
    {
        return $this->GPRSTrafficConnections;
    }
    /**
     * Set GPRSTrafficConnections value
     * @param string $gPRSTrafficConnections
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficConnections($gPRSTrafficConnections = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficConnections) && !is_string($gPRSTrafficConnections)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficConnections, true), gettype($gPRSTrafficConnections)), __LINE__);
        }
        $this->GPRSTrafficConnections = $gPRSTrafficConnections;
        return $this;
    }
    /**
     * Get GPRSTrafficFtp value
     * @return string|null
     */
    public function getGPRSTrafficFtp()
    {
        return $this->GPRSTrafficFtp;
    }
    /**
     * Set GPRSTrafficFtp value
     * @param string $gPRSTrafficFtp
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficFtp($gPRSTrafficFtp = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficFtp) && !is_string($gPRSTrafficFtp)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficFtp, true), gettype($gPRSTrafficFtp)), __LINE__);
        }
        $this->GPRSTrafficFtp = $gPRSTrafficFtp;
        return $this;
    }
    /**
     * Get GPRSTrafficFiles value
     * @return string|null
     */
    public function getGPRSTrafficFiles()
    {
        return $this->GPRSTrafficFiles;
    }
    /**
     * Set GPRSTrafficFiles value
     * @param string $gPRSTrafficFiles
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficFiles($gPRSTrafficFiles = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficFiles) && !is_string($gPRSTrafficFiles)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficFiles, true), gettype($gPRSTrafficFiles)), __LINE__);
        }
        $this->GPRSTrafficFiles = $gPRSTrafficFiles;
        return $this;
    }
    /**
     * Get GPRSTrafficSizeKB value
     * @return string|null
     */
    public function getGPRSTrafficSizeKB()
    {
        return $this->GPRSTrafficSizeKB;
    }
    /**
     * Set GPRSTrafficSizeKB value
     * @param string $gPRSTrafficSizeKB
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficSizeKB($gPRSTrafficSizeKB = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficSizeKB) && !is_string($gPRSTrafficSizeKB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficSizeKB, true), gettype($gPRSTrafficSizeKB)), __LINE__);
        }
        $this->GPRSTrafficSizeKB = $gPRSTrafficSizeKB;
        return $this;
    }
    /**
     * Get GPRSTrafficSMS value
     * @return string|null
     */
    public function getGPRSTrafficSMS()
    {
        return $this->GPRSTrafficSMS;
    }
    /**
     * Set GPRSTrafficSMS value
     * @param string $gPRSTrafficSMS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setGPRSTrafficSMS($gPRSTrafficSMS = null)
    {
        // validation for constraint: string
        if (!is_null($gPRSTrafficSMS) && !is_string($gPRSTrafficSMS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($gPRSTrafficSMS, true), gettype($gPRSTrafficSMS)), __LINE__);
        }
        $this->GPRSTrafficSMS = $gPRSTrafficSMS;
        return $this;
    }
    /**
     * Get APN_GPRS value
     * @return string|null
     */
    public function getAPN_GPRS()
    {
        return $this->APN_GPRS;
    }
    /**
     * Set APN_GPRS value
     * @param string $aPN_GPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setAPN_GPRS($aPN_GPRS = null)
    {
        // validation for constraint: string
        if (!is_null($aPN_GPRS) && !is_string($aPN_GPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($aPN_GPRS, true), gettype($aPN_GPRS)), __LINE__);
        }
        $this->APN_GPRS = $aPN_GPRS;
        return $this;
    }
    /**
     * Get DNS1_GPRS value
     * @return string|null
     */
    public function getDNS1_GPRS()
    {
        return $this->DNS1_GPRS;
    }
    /**
     * Set DNS1_GPRS value
     * @param string $dNS1_GPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setDNS1_GPRS($dNS1_GPRS = null)
    {
        // validation for constraint: string
        if (!is_null($dNS1_GPRS) && !is_string($dNS1_GPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dNS1_GPRS, true), gettype($dNS1_GPRS)), __LINE__);
        }
        $this->DNS1_GPRS = $dNS1_GPRS;
        return $this;
    }
    /**
     * Get DNS2_GPRS value
     * @return string|null
     */
    public function getDNS2_GPRS()
    {
        return $this->DNS2_GPRS;
    }
    /**
     * Set DNS2_GPRS value
     * @param string $dNS2_GPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setDNS2_GPRS($dNS2_GPRS = null)
    {
        // validation for constraint: string
        if (!is_null($dNS2_GPRS) && !is_string($dNS2_GPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dNS2_GPRS, true), gettype($dNS2_GPRS)), __LINE__);
        }
        $this->DNS2_GPRS = $dNS2_GPRS;
        return $this;
    }
    /**
     * Get UserGPRS value
     * @return string|null
     */
    public function getUserGPRS()
    {
        return $this->UserGPRS;
    }
    /**
     * Set UserGPRS value
     * @param string $userGPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setUserGPRS($userGPRS = null)
    {
        // validation for constraint: string
        if (!is_null($userGPRS) && !is_string($userGPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($userGPRS, true), gettype($userGPRS)), __LINE__);
        }
        $this->UserGPRS = $userGPRS;
        return $this;
    }
    /**
     * Get PasswordGPRS value
     * @return string|null
     */
    public function getPasswordGPRS()
    {
        return $this->PasswordGPRS;
    }
    /**
     * Set PasswordGPRS value
     * @param string $passwordGPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setPasswordGPRS($passwordGPRS = null)
    {
        // validation for constraint: string
        if (!is_null($passwordGPRS) && !is_string($passwordGPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($passwordGPRS, true), gettype($passwordGPRS)), __LINE__);
        }
        $this->PasswordGPRS = $passwordGPRS;
        return $this;
    }
    /**
     * Get PortGPRS value
     * @return string|null
     */
    public function getPortGPRS()
    {
        return $this->PortGPRS;
    }
    /**
     * Set PortGPRS value
     * @param string $portGPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setPortGPRS($portGPRS = null)
    {
        // validation for constraint: string
        if (!is_null($portGPRS) && !is_string($portGPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($portGPRS, true), gettype($portGPRS)), __LINE__);
        }
        $this->PortGPRS = $portGPRS;
        return $this;
    }
    /**
     * Get ModeGPRS value
     * @return string|null
     */
    public function getModeGPRS()
    {
        return $this->ModeGPRS;
    }
    /**
     * Set ModeGPRS value
     * @param string $modeGPRS
     * @return \StructType\VehicleGPRSDiagnostics
     */
    public function setModeGPRS($modeGPRS = null)
    {
        // validation for constraint: string
        if (!is_null($modeGPRS) && !is_string($modeGPRS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($modeGPRS, true), gettype($modeGPRS)), __LINE__);
        }
        $this->ModeGPRS = $modeGPRS;
        return $this;
    }
}
