<?php

namespace Geniki\GenikiStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Add3rdPartyShipper GenikiStruct
 * @package Geniki
 * @subpackage Structs
 */
class GenikiAdd3rdPartyShipper extends AbstractStructBase
{
    /**
     * The sAuthKey
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sAuthKey;
    /**
     * The clientCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $clientCode;
    /**
     * The vatId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $vatId;
    /**
     * Constructor method for Add3rdPartyShipper
     * @uses GenikiAdd3rdPartyShipper::setSAuthKey()
     * @uses GenikiAdd3rdPartyShipper::setClientCode()
     * @uses GenikiAdd3rdPartyShipper::setVatId()
     * @param string $sAuthKey
     * @param string $clientCode
     * @param string $vatId
     */
    public function __construct($sAuthKey = null, $clientCode = null, $vatId = null)
    {
        $this
            ->setSAuthKey($sAuthKey)
            ->setClientCode($clientCode)
            ->setVatId($vatId);
    }
    /**
     * Get sAuthKey value
     * @return string|null
     */
    public function getSAuthKey()
    {
        return $this->sAuthKey;
    }
    /**
     * Set sAuthKey value
     * @param string $sAuthKey
     * @return \Geniki\GenikiStruct\GenikiAdd3rdPartyShipper
     */
    public function setSAuthKey($sAuthKey = null)
    {
        // validation for constraint: string
        if (!is_null($sAuthKey) && !is_string($sAuthKey)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sAuthKey, true), gettype($sAuthKey)), __LINE__);
        }
        $this->sAuthKey = $sAuthKey;
        return $this;
    }
    /**
     * Get clientCode value
     * @return string|null
     */
    public function getClientCode()
    {
        return $this->clientCode;
    }
    /**
     * Set clientCode value
     * @param string $clientCode
     * @return \Geniki\GenikiStruct\GenikiAdd3rdPartyShipper
     */
    public function setClientCode($clientCode = null)
    {
        // validation for constraint: string
        if (!is_null($clientCode) && !is_string($clientCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($clientCode, true), gettype($clientCode)), __LINE__);
        }
        $this->clientCode = $clientCode;
        return $this;
    }
    /**
     * Get vatId value
     * @return string|null
     */
    public function getVatId()
    {
        return $this->vatId;
    }
    /**
     * Set vatId value
     * @param string $vatId
     * @return \Geniki\GenikiStruct\GenikiAdd3rdPartyShipper
     */
    public function setVatId($vatId = null)
    {
        // validation for constraint: string
        if (!is_null($vatId) && !is_string($vatId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($vatId, true), gettype($vatId)), __LINE__);
        }
        $this->vatId = $vatId;
        return $this;
    }
}
