<?php

namespace GLS;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for cCustomsDeclaration Struct
 * @subpackage Structs
 */
class CCustomsDeclaration extends AbstractStructBase
{
    /**
     * The ename1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $ename1;
    /**
     * The ecountry
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $ecountry;
    /**
     * The ezipcode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $ezipcode;
    /**
     * The ecity
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $ecity;
    /**
     * The estreet
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $estreet;
    /**
     * The iname1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $iname1;
    /**
     * The icountry
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $icountry;
    /**
     * The izipcode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $izipcode;
    /**
     * The icity
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $icity;
    /**
     * The istreet
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $istreet;
    /**
     * The reason
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $reason;
    /**
     * The invoice_value
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $invoice_value;
    /**
     * The incoterm
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $incoterm;
    /**
     * The mrn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $mrn;
    /**
     * The articles
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var \GLS\CCustomsArticlesArray
     */
    public $articles;
    /**
     * The ename2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ename2;
    /**
     * The ename3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ename3;
    /**
     * The ephone
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ephone;
    /**
     * The econtact
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $econtact;
    /**
     * The etaxid
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $etaxid;
    /**
     * The eeori
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $eeori;
    /**
     * The ebn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ebn;
    /**
     * The iname2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $iname2;
    /**
     * The iname3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $iname3;
    /**
     * The iphone
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $iphone;
    /**
     * The icontact
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $icontact;
    /**
     * The itaxid
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $itaxid;
    /**
     * The ieori
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $ieori;
    /**
     * The invoice_num
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $invoice_num;
    /**
     * The invoice_date
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $invoice_date;
    /**
     * The invoice_curr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $invoice_curr;
    /**
     * The weight_gross_total
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var float
     */
    public $weight_gross_total;
    /**
     * The attachments
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GLS\CCustomsAttachedFilesArray
     */
    public $attachments;
    /**
     * Constructor method for cCustomsDeclaration
     * @uses CCustomsDeclaration::setEname1()
     * @uses CCustomsDeclaration::setEcountry()
     * @uses CCustomsDeclaration::setEzipcode()
     * @uses CCustomsDeclaration::setEcity()
     * @uses CCustomsDeclaration::setEstreet()
     * @uses CCustomsDeclaration::setIname1()
     * @uses CCustomsDeclaration::setIcountry()
     * @uses CCustomsDeclaration::setIzipcode()
     * @uses CCustomsDeclaration::setIcity()
     * @uses CCustomsDeclaration::setIstreet()
     * @uses CCustomsDeclaration::setReason()
     * @uses CCustomsDeclaration::setInvoice_value()
     * @uses CCustomsDeclaration::setIncoterm()
     * @uses CCustomsDeclaration::setMrn()
     * @uses CCustomsDeclaration::setArticles()
     * @uses CCustomsDeclaration::setEname2()
     * @uses CCustomsDeclaration::setEname3()
     * @uses CCustomsDeclaration::setEphone()
     * @uses CCustomsDeclaration::setEcontact()
     * @uses CCustomsDeclaration::setEtaxid()
     * @uses CCustomsDeclaration::setEeori()
     * @uses CCustomsDeclaration::setEbn()
     * @uses CCustomsDeclaration::setIname2()
     * @uses CCustomsDeclaration::setIname3()
     * @uses CCustomsDeclaration::setIphone()
     * @uses CCustomsDeclaration::setIcontact()
     * @uses CCustomsDeclaration::setItaxid()
     * @uses CCustomsDeclaration::setIeori()
     * @uses CCustomsDeclaration::setInvoice_num()
     * @uses CCustomsDeclaration::setInvoice_date()
     * @uses CCustomsDeclaration::setInvoice_curr()
     * @uses CCustomsDeclaration::setWeight_gross_total()
     * @uses CCustomsDeclaration::setAttachments()
     * @param string $ename1
     * @param string $ecountry
     * @param string $ezipcode
     * @param string $ecity
     * @param string $estreet
     * @param string $iname1
     * @param string $icountry
     * @param string $izipcode
     * @param string $icity
     * @param string $istreet
     * @param int $reason
     * @param float $invoice_value
     * @param string $incoterm
     * @param string $mrn
     * @param \GLS\CCustomsArticlesArray $articles
     * @param string $ename2
     * @param string $ename3
     * @param string $ephone
     * @param string $econtact
     * @param string $etaxid
     * @param string $eeori
     * @param string $ebn
     * @param string $iname2
     * @param string $iname3
     * @param string $iphone
     * @param string $icontact
     * @param string $itaxid
     * @param string $ieori
     * @param string $invoice_num
     * @param string $invoice_date
     * @param string $invoice_curr
     * @param float $weight_gross_total
     * @param \GLS\CCustomsAttachedFilesArray $attachments
     */
    public function __construct($ename1 = null, $ecountry = null, $ezipcode = null, $ecity = null, $estreet = null, $iname1 = null, $icountry = null, $izipcode = null, $icity = null, $istreet = null, $reason = null, $invoice_value = null, $incoterm = null, $mrn = null, \GLS\CCustomsArticlesArray $articles = null, $ename2 = null, $ename3 = null, $ephone = null, $econtact = null, $etaxid = null, $eeori = null, $ebn = null, $iname2 = null, $iname3 = null, $iphone = null, $icontact = null, $itaxid = null, $ieori = null, $invoice_num = null, $invoice_date = null, $invoice_curr = null, $weight_gross_total = null, \GLS\CCustomsAttachedFilesArray $attachments = null)
    {
        $this
            ->setEname1($ename1)
            ->setEcountry($ecountry)
            ->setEzipcode($ezipcode)
            ->setEcity($ecity)
            ->setEstreet($estreet)
            ->setIname1($iname1)
            ->setIcountry($icountry)
            ->setIzipcode($izipcode)
            ->setIcity($icity)
            ->setIstreet($istreet)
            ->setReason($reason)
            ->setInvoice_value($invoice_value)
            ->setIncoterm($incoterm)
            ->setMrn($mrn)
            ->setArticles($articles)
            ->setEname2($ename2)
            ->setEname3($ename3)
            ->setEphone($ephone)
            ->setEcontact($econtact)
            ->setEtaxid($etaxid)
            ->setEeori($eeori)
            ->setEbn($ebn)
            ->setIname2($iname2)
            ->setIname3($iname3)
            ->setIphone($iphone)
            ->setIcontact($icontact)
            ->setItaxid($itaxid)
            ->setIeori($ieori)
            ->setInvoice_num($invoice_num)
            ->setInvoice_date($invoice_date)
            ->setInvoice_curr($invoice_curr)
            ->setWeight_gross_total($weight_gross_total)
            ->setAttachments($attachments);
    }
    /**
     * Get ename1 value
     * @return string
     */
    public function getEname1()
    {
        return $this->ename1;
    }
    /**
     * Set ename1 value
     * @param string $ename1
     * @return \GLS\CCustomsDeclaration
     */
    public function setEname1($ename1 = null)
    {
        // validation for constraint: string
        if (!is_null($ename1) && !is_string($ename1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ename1, true), gettype($ename1)), __LINE__);
        }
        $this->ename1 = $ename1;
        return $this;
    }
    /**
     * Get ecountry value
     * @return string
     */
    public function getEcountry()
    {
        return $this->ecountry;
    }
    /**
     * Set ecountry value
     * @param string $ecountry
     * @return \GLS\CCustomsDeclaration
     */
    public function setEcountry($ecountry = null)
    {
        // validation for constraint: string
        if (!is_null($ecountry) && !is_string($ecountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ecountry, true), gettype($ecountry)), __LINE__);
        }
        $this->ecountry = $ecountry;
        return $this;
    }
    /**
     * Get ezipcode value
     * @return string
     */
    public function getEzipcode()
    {
        return $this->ezipcode;
    }
    /**
     * Set ezipcode value
     * @param string $ezipcode
     * @return \GLS\CCustomsDeclaration
     */
    public function setEzipcode($ezipcode = null)
    {
        // validation for constraint: string
        if (!is_null($ezipcode) && !is_string($ezipcode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ezipcode, true), gettype($ezipcode)), __LINE__);
        }
        $this->ezipcode = $ezipcode;
        return $this;
    }
    /**
     * Get ecity value
     * @return string
     */
    public function getEcity()
    {
        return $this->ecity;
    }
    /**
     * Set ecity value
     * @param string $ecity
     * @return \GLS\CCustomsDeclaration
     */
    public function setEcity($ecity = null)
    {
        // validation for constraint: string
        if (!is_null($ecity) && !is_string($ecity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ecity, true), gettype($ecity)), __LINE__);
        }
        $this->ecity = $ecity;
        return $this;
    }
    /**
     * Get estreet value
     * @return string
     */
    public function getEstreet()
    {
        return $this->estreet;
    }
    /**
     * Set estreet value
     * @param string $estreet
     * @return \GLS\CCustomsDeclaration
     */
    public function setEstreet($estreet = null)
    {
        // validation for constraint: string
        if (!is_null($estreet) && !is_string($estreet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($estreet, true), gettype($estreet)), __LINE__);
        }
        $this->estreet = $estreet;
        return $this;
    }
    /**
     * Get iname1 value
     * @return string
     */
    public function getIname1()
    {
        return $this->iname1;
    }
    /**
     * Set iname1 value
     * @param string $iname1
     * @return \GLS\CCustomsDeclaration
     */
    public function setIname1($iname1 = null)
    {
        // validation for constraint: string
        if (!is_null($iname1) && !is_string($iname1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($iname1, true), gettype($iname1)), __LINE__);
        }
        $this->iname1 = $iname1;
        return $this;
    }
    /**
     * Get icountry value
     * @return string
     */
    public function getIcountry()
    {
        return $this->icountry;
    }
    /**
     * Set icountry value
     * @param string $icountry
     * @return \GLS\CCustomsDeclaration
     */
    public function setIcountry($icountry = null)
    {
        // validation for constraint: string
        if (!is_null($icountry) && !is_string($icountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($icountry, true), gettype($icountry)), __LINE__);
        }
        $this->icountry = $icountry;
        return $this;
    }
    /**
     * Get izipcode value
     * @return string
     */
    public function getIzipcode()
    {
        return $this->izipcode;
    }
    /**
     * Set izipcode value
     * @param string $izipcode
     * @return \GLS\CCustomsDeclaration
     */
    public function setIzipcode($izipcode = null)
    {
        // validation for constraint: string
        if (!is_null($izipcode) && !is_string($izipcode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($izipcode, true), gettype($izipcode)), __LINE__);
        }
        $this->izipcode = $izipcode;
        return $this;
    }
    /**
     * Get icity value
     * @return string
     */
    public function getIcity()
    {
        return $this->icity;
    }
    /**
     * Set icity value
     * @param string $icity
     * @return \GLS\CCustomsDeclaration
     */
    public function setIcity($icity = null)
    {
        // validation for constraint: string
        if (!is_null($icity) && !is_string($icity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($icity, true), gettype($icity)), __LINE__);
        }
        $this->icity = $icity;
        return $this;
    }
    /**
     * Get istreet value
     * @return string
     */
    public function getIstreet()
    {
        return $this->istreet;
    }
    /**
     * Set istreet value
     * @param string $istreet
     * @return \GLS\CCustomsDeclaration
     */
    public function setIstreet($istreet = null)
    {
        // validation for constraint: string
        if (!is_null($istreet) && !is_string($istreet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($istreet, true), gettype($istreet)), __LINE__);
        }
        $this->istreet = $istreet;
        return $this;
    }
    /**
     * Get reason value
     * @return int
     */
    public function getReason()
    {
        return $this->reason;
    }
    /**
     * Set reason value
     * @param int $reason
     * @return \GLS\CCustomsDeclaration
     */
    public function setReason($reason = null)
    {
        // validation for constraint: int
        if (!is_null($reason) && !(is_int($reason) || ctype_digit($reason))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($reason, true), gettype($reason)), __LINE__);
        }
        $this->reason = $reason;
        return $this;
    }
    /**
     * Get invoice_value value
     * @return float
     */
    public function getInvoice_value()
    {
        return $this->invoice_value;
    }
    /**
     * Set invoice_value value
     * @param float $invoice_value
     * @return \GLS\CCustomsDeclaration
     */
    public function setInvoice_value($invoice_value = null)
    {
        // validation for constraint: float
        if (!is_null($invoice_value) && !(is_float($invoice_value) || is_numeric($invoice_value))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($invoice_value, true), gettype($invoice_value)), __LINE__);
        }
        $this->invoice_value = $invoice_value;
        return $this;
    }
    /**
     * Get incoterm value
     * @return string
     */
    public function getIncoterm()
    {
        return $this->incoterm;
    }
    /**
     * Set incoterm value
     * @param string $incoterm
     * @return \GLS\CCustomsDeclaration
     */
    public function setIncoterm($incoterm = null)
    {
        // validation for constraint: string
        if (!is_null($incoterm) && !is_string($incoterm)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($incoterm, true), gettype($incoterm)), __LINE__);
        }
        $this->incoterm = $incoterm;
        return $this;
    }
    /**
     * Get mrn value
     * @return string
     */
    public function getMrn()
    {
        return $this->mrn;
    }
    /**
     * Set mrn value
     * @param string $mrn
     * @return \GLS\CCustomsDeclaration
     */
    public function setMrn($mrn = null)
    {
        // validation for constraint: string
        if (!is_null($mrn) && !is_string($mrn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mrn, true), gettype($mrn)), __LINE__);
        }
        $this->mrn = $mrn;
        return $this;
    }
    /**
     * Get articles value
     * @return \GLS\CCustomsArticlesArray
     */
    public function getArticles()
    {
        return $this->articles;
    }
    /**
     * Set articles value
     * @param \GLS\CCustomsArticlesArray $articles
     * @return \GLS\CCustomsDeclaration
     */
    public function setArticles(\GLS\CCustomsArticlesArray $articles = null)
    {
        $this->articles = $articles;
        return $this;
    }
    /**
     * Get ename2 value
     * @return string|null
     */
    public function getEname2()
    {
        return $this->ename2;
    }
    /**
     * Set ename2 value
     * @param string $ename2
     * @return \GLS\CCustomsDeclaration
     */
    public function setEname2($ename2 = null)
    {
        // validation for constraint: string
        if (!is_null($ename2) && !is_string($ename2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ename2, true), gettype($ename2)), __LINE__);
        }
        $this->ename2 = $ename2;
        return $this;
    }
    /**
     * Get ename3 value
     * @return string|null
     */
    public function getEname3()
    {
        return $this->ename3;
    }
    /**
     * Set ename3 value
     * @param string $ename3
     * @return \GLS\CCustomsDeclaration
     */
    public function setEname3($ename3 = null)
    {
        // validation for constraint: string
        if (!is_null($ename3) && !is_string($ename3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ename3, true), gettype($ename3)), __LINE__);
        }
        $this->ename3 = $ename3;
        return $this;
    }
    /**
     * Get ephone value
     * @return string|null
     */
    public function getEphone()
    {
        return $this->ephone;
    }
    /**
     * Set ephone value
     * @param string $ephone
     * @return \GLS\CCustomsDeclaration
     */
    public function setEphone($ephone = null)
    {
        // validation for constraint: string
        if (!is_null($ephone) && !is_string($ephone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ephone, true), gettype($ephone)), __LINE__);
        }
        $this->ephone = $ephone;
        return $this;
    }
    /**
     * Get econtact value
     * @return string|null
     */
    public function getEcontact()
    {
        return $this->econtact;
    }
    /**
     * Set econtact value
     * @param string $econtact
     * @return \GLS\CCustomsDeclaration
     */
    public function setEcontact($econtact = null)
    {
        // validation for constraint: string
        if (!is_null($econtact) && !is_string($econtact)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($econtact, true), gettype($econtact)), __LINE__);
        }
        $this->econtact = $econtact;
        return $this;
    }
    /**
     * Get etaxid value
     * @return string|null
     */
    public function getEtaxid()
    {
        return $this->etaxid;
    }
    /**
     * Set etaxid value
     * @param string $etaxid
     * @return \GLS\CCustomsDeclaration
     */
    public function setEtaxid($etaxid = null)
    {
        // validation for constraint: string
        if (!is_null($etaxid) && !is_string($etaxid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($etaxid, true), gettype($etaxid)), __LINE__);
        }
        $this->etaxid = $etaxid;
        return $this;
    }
    /**
     * Get eeori value
     * @return string|null
     */
    public function getEeori()
    {
        return $this->eeori;
    }
    /**
     * Set eeori value
     * @param string $eeori
     * @return \GLS\CCustomsDeclaration
     */
    public function setEeori($eeori = null)
    {
        // validation for constraint: string
        if (!is_null($eeori) && !is_string($eeori)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($eeori, true), gettype($eeori)), __LINE__);
        }
        $this->eeori = $eeori;
        return $this;
    }
    /**
     * Get ebn value
     * @return string|null
     */
    public function getEbn()
    {
        return $this->ebn;
    }
    /**
     * Set ebn value
     * @param string $ebn
     * @return \GLS\CCustomsDeclaration
     */
    public function setEbn($ebn = null)
    {
        // validation for constraint: string
        if (!is_null($ebn) && !is_string($ebn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ebn, true), gettype($ebn)), __LINE__);
        }
        $this->ebn = $ebn;
        return $this;
    }
    /**
     * Get iname2 value
     * @return string|null
     */
    public function getIname2()
    {
        return $this->iname2;
    }
    /**
     * Set iname2 value
     * @param string $iname2
     * @return \GLS\CCustomsDeclaration
     */
    public function setIname2($iname2 = null)
    {
        // validation for constraint: string
        if (!is_null($iname2) && !is_string($iname2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($iname2, true), gettype($iname2)), __LINE__);
        }
        $this->iname2 = $iname2;
        return $this;
    }
    /**
     * Get iname3 value
     * @return string|null
     */
    public function getIname3()
    {
        return $this->iname3;
    }
    /**
     * Set iname3 value
     * @param string $iname3
     * @return \GLS\CCustomsDeclaration
     */
    public function setIname3($iname3 = null)
    {
        // validation for constraint: string
        if (!is_null($iname3) && !is_string($iname3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($iname3, true), gettype($iname3)), __LINE__);
        }
        $this->iname3 = $iname3;
        return $this;
    }
    /**
     * Get iphone value
     * @return string|null
     */
    public function getIphone()
    {
        return $this->iphone;
    }
    /**
     * Set iphone value
     * @param string $iphone
     * @return \GLS\CCustomsDeclaration
     */
    public function setIphone($iphone = null)
    {
        // validation for constraint: string
        if (!is_null($iphone) && !is_string($iphone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($iphone, true), gettype($iphone)), __LINE__);
        }
        $this->iphone = $iphone;
        return $this;
    }
    /**
     * Get icontact value
     * @return string|null
     */
    public function getIcontact()
    {
        return $this->icontact;
    }
    /**
     * Set icontact value
     * @param string $icontact
     * @return \GLS\CCustomsDeclaration
     */
    public function setIcontact($icontact = null)
    {
        // validation for constraint: string
        if (!is_null($icontact) && !is_string($icontact)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($icontact, true), gettype($icontact)), __LINE__);
        }
        $this->icontact = $icontact;
        return $this;
    }
    /**
     * Get itaxid value
     * @return string|null
     */
    public function getItaxid()
    {
        return $this->itaxid;
    }
    /**
     * Set itaxid value
     * @param string $itaxid
     * @return \GLS\CCustomsDeclaration
     */
    public function setItaxid($itaxid = null)
    {
        // validation for constraint: string
        if (!is_null($itaxid) && !is_string($itaxid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itaxid, true), gettype($itaxid)), __LINE__);
        }
        $this->itaxid = $itaxid;
        return $this;
    }
    /**
     * Get ieori value
     * @return string|null
     */
    public function getIeori()
    {
        return $this->ieori;
    }
    /**
     * Set ieori value
     * @param string $ieori
     * @return \GLS\CCustomsDeclaration
     */
    public function setIeori($ieori = null)
    {
        // validation for constraint: string
        if (!is_null($ieori) && !is_string($ieori)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ieori, true), gettype($ieori)), __LINE__);
        }
        $this->ieori = $ieori;
        return $this;
    }
    /**
     * Get invoice_num value
     * @return string|null
     */
    public function getInvoice_num()
    {
        return $this->invoice_num;
    }
    /**
     * Set invoice_num value
     * @param string $invoice_num
     * @return \GLS\CCustomsDeclaration
     */
    public function setInvoice_num($invoice_num = null)
    {
        // validation for constraint: string
        if (!is_null($invoice_num) && !is_string($invoice_num)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoice_num, true), gettype($invoice_num)), __LINE__);
        }
        $this->invoice_num = $invoice_num;
        return $this;
    }
    /**
     * Get invoice_date value
     * @return string|null
     */
    public function getInvoice_date()
    {
        return $this->invoice_date;
    }
    /**
     * Set invoice_date value
     * @param string $invoice_date
     * @return \GLS\CCustomsDeclaration
     */
    public function setInvoice_date($invoice_date = null)
    {
        // validation for constraint: string
        if (!is_null($invoice_date) && !is_string($invoice_date)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoice_date, true), gettype($invoice_date)), __LINE__);
        }
        $this->invoice_date = $invoice_date;
        return $this;
    }
    /**
     * Get invoice_curr value
     * @return string|null
     */
    public function getInvoice_curr()
    {
        return $this->invoice_curr;
    }
    /**
     * Set invoice_curr value
     * @param string $invoice_curr
     * @return \GLS\CCustomsDeclaration
     */
    public function setInvoice_curr($invoice_curr = null)
    {
        // validation for constraint: string
        if (!is_null($invoice_curr) && !is_string($invoice_curr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($invoice_curr, true), gettype($invoice_curr)), __LINE__);
        }
        $this->invoice_curr = $invoice_curr;
        return $this;
    }
    /**
     * Get weight_gross_total value
     * @return float|null
     */
    public function getWeight_gross_total()
    {
        return $this->weight_gross_total;
    }
    /**
     * Set weight_gross_total value
     * @param float $weight_gross_total
     * @return \GLS\CCustomsDeclaration
     */
    public function setWeight_gross_total($weight_gross_total = null)
    {
        // validation for constraint: float
        if (!is_null($weight_gross_total) && !(is_float($weight_gross_total) || is_numeric($weight_gross_total))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($weight_gross_total, true), gettype($weight_gross_total)), __LINE__);
        }
        $this->weight_gross_total = $weight_gross_total;
        return $this;
    }
    /**
     * Get attachments value
     * @return \GLS\CCustomsAttachedFilesArray|null
     */
    public function getAttachments()
    {
        return $this->attachments;
    }
    /**
     * Set attachments value
     * @param \GLS\CCustomsAttachedFilesArray $attachments
     * @return \GLS\CCustomsDeclaration
     */
    public function setAttachments(\GLS\CCustomsAttachedFilesArray $attachments = null)
    {
        $this->attachments = $attachments;
        return $this;
    }
}
