<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TipoContactosERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:TipoContactosERP
 * @subpackage Structs
 */
class TipoContactosERP extends AbstractStructBase
{
    /**
     * The Bancos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Bancos;
    /**
     * The CDU_AgregadoFamiliar
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_AgregadoFamiliar;
    /**
     * The CDU_DebitoDireto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_DebitoDireto;
    /**
     * The CDU_DescontoAssociado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CDU_DescontoAssociado;
    /**
     * The CDU_PagamentoMB
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_PagamentoMB;
    /**
     * The CDU_PagamentoSEPA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_PagamentoSEPA;
    /**
     * The CDU_TipoAvenca
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_TipoAvenca;
    /**
     * The CDU_Titular
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_Titular;
    /**
     * The Clientes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Clientes;
    /**
     * The Colaboradores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Colaboradores;
    /**
     * The Companhias
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Companhias;
    /**
     * The Consultores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Consultores;
    /**
     * The Credores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Credores;
    /**
     * The CredoresSubscricoesNaoLiberadas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CredoresSubscricoesNaoLiberadas;
    /**
     * The DataUltimaActualizacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimaActualizacao;
    /**
     * The Descricao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The EntidadesExternas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $EntidadesExternas;
    /**
     * The EntidadesFormadoras
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $EntidadesFormadoras;
    /**
     * The EntidadesPublicas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $EntidadesPublicas;
    /**
     * The Fornecedores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Fornecedores;
    /**
     * The FornecedoresImobilizado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $FornecedoresImobilizado;
    /**
     * The Funcionarios
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Funcionarios;
    /**
     * The Independentes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Independentes;
    /**
     * The Obrigacionistas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Obrigacionistas;
    /**
     * The OutrosCredores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $OutrosCredores;
    /**
     * The OutrosDevedores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $OutrosDevedores;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The Segurados
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Segurados;
    /**
     * The SegurancaSocial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SegurancaSocial;
    /**
     * The Sindicatos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Sindicatos;
    /**
     * The Sinistrados
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Sinistrados;
    /**
     * The Socios
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Socios;
    /**
     * The SubscritoresCapital
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SubscritoresCapital;
    /**
     * The TipoContacto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoContacto;
    /**
     * The Vendedores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Vendedores;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * Constructor method for TipoContactosERP
     * @uses TipoContactosERP::setBancos()
     * @uses TipoContactosERP::setCDU_AgregadoFamiliar()
     * @uses TipoContactosERP::setCDU_DebitoDireto()
     * @uses TipoContactosERP::setCDU_DescontoAssociado()
     * @uses TipoContactosERP::setCDU_PagamentoMB()
     * @uses TipoContactosERP::setCDU_PagamentoSEPA()
     * @uses TipoContactosERP::setCDU_TipoAvenca()
     * @uses TipoContactosERP::setCDU_Titular()
     * @uses TipoContactosERP::setClientes()
     * @uses TipoContactosERP::setColaboradores()
     * @uses TipoContactosERP::setCompanhias()
     * @uses TipoContactosERP::setConsultores()
     * @uses TipoContactosERP::setCredores()
     * @uses TipoContactosERP::setCredoresSubscricoesNaoLiberadas()
     * @uses TipoContactosERP::setDataUltimaActualizacao()
     * @uses TipoContactosERP::setDescricao()
     * @uses TipoContactosERP::setEntidadesExternas()
     * @uses TipoContactosERP::setEntidadesFormadoras()
     * @uses TipoContactosERP::setEntidadesPublicas()
     * @uses TipoContactosERP::setFornecedores()
     * @uses TipoContactosERP::setFornecedoresImobilizado()
     * @uses TipoContactosERP::setFuncionarios()
     * @uses TipoContactosERP::setIndependentes()
     * @uses TipoContactosERP::setObrigacionistas()
     * @uses TipoContactosERP::setOutrosCredores()
     * @uses TipoContactosERP::setOutrosDevedores()
     * @uses TipoContactosERP::setProtegida()
     * @uses TipoContactosERP::setSegurados()
     * @uses TipoContactosERP::setSegurancaSocial()
     * @uses TipoContactosERP::setSindicatos()
     * @uses TipoContactosERP::setSinistrados()
     * @uses TipoContactosERP::setSocios()
     * @uses TipoContactosERP::setSubscritoresCapital()
     * @uses TipoContactosERP::setTipoContacto()
     * @uses TipoContactosERP::setVendedores()
     * @uses TipoContactosERP::setVersaoUltAct()
     * @param bool $bancos
     * @param bool $cDU_AgregadoFamiliar
     * @param bool $cDU_DebitoDireto
     * @param float $cDU_DescontoAssociado
     * @param bool $cDU_PagamentoMB
     * @param bool $cDU_PagamentoSEPA
     * @param string $cDU_TipoAvenca
     * @param bool $cDU_Titular
     * @param bool $clientes
     * @param bool $colaboradores
     * @param bool $companhias
     * @param bool $consultores
     * @param bool $credores
     * @param bool $credoresSubscricoesNaoLiberadas
     * @param string $dataUltimaActualizacao
     * @param string $descricao
     * @param bool $entidadesExternas
     * @param bool $entidadesFormadoras
     * @param bool $entidadesPublicas
     * @param bool $fornecedores
     * @param bool $fornecedoresImobilizado
     * @param bool $funcionarios
     * @param bool $independentes
     * @param bool $obrigacionistas
     * @param bool $outrosCredores
     * @param bool $outrosDevedores
     * @param bool $protegida
     * @param bool $segurados
     * @param bool $segurancaSocial
     * @param bool $sindicatos
     * @param bool $sinistrados
     * @param bool $socios
     * @param bool $subscritoresCapital
     * @param string $tipoContacto
     * @param bool $vendedores
     * @param string $versaoUltAct
     */
    public function __construct($bancos = null, $cDU_AgregadoFamiliar = null, $cDU_DebitoDireto = null, $cDU_DescontoAssociado = null, $cDU_PagamentoMB = null, $cDU_PagamentoSEPA = null, $cDU_TipoAvenca = null, $cDU_Titular = null, $clientes = null, $colaboradores = null, $companhias = null, $consultores = null, $credores = null, $credoresSubscricoesNaoLiberadas = null, $dataUltimaActualizacao = null, $descricao = null, $entidadesExternas = null, $entidadesFormadoras = null, $entidadesPublicas = null, $fornecedores = null, $fornecedoresImobilizado = null, $funcionarios = null, $independentes = null, $obrigacionistas = null, $outrosCredores = null, $outrosDevedores = null, $protegida = null, $segurados = null, $segurancaSocial = null, $sindicatos = null, $sinistrados = null, $socios = null, $subscritoresCapital = null, $tipoContacto = null, $vendedores = null, $versaoUltAct = null)
    {
        $this
            ->setBancos($bancos)
            ->setCDU_AgregadoFamiliar($cDU_AgregadoFamiliar)
            ->setCDU_DebitoDireto($cDU_DebitoDireto)
            ->setCDU_DescontoAssociado($cDU_DescontoAssociado)
            ->setCDU_PagamentoMB($cDU_PagamentoMB)
            ->setCDU_PagamentoSEPA($cDU_PagamentoSEPA)
            ->setCDU_TipoAvenca($cDU_TipoAvenca)
            ->setCDU_Titular($cDU_Titular)
            ->setClientes($clientes)
            ->setColaboradores($colaboradores)
            ->setCompanhias($companhias)
            ->setConsultores($consultores)
            ->setCredores($credores)
            ->setCredoresSubscricoesNaoLiberadas($credoresSubscricoesNaoLiberadas)
            ->setDataUltimaActualizacao($dataUltimaActualizacao)
            ->setDescricao($descricao)
            ->setEntidadesExternas($entidadesExternas)
            ->setEntidadesFormadoras($entidadesFormadoras)
            ->setEntidadesPublicas($entidadesPublicas)
            ->setFornecedores($fornecedores)
            ->setFornecedoresImobilizado($fornecedoresImobilizado)
            ->setFuncionarios($funcionarios)
            ->setIndependentes($independentes)
            ->setObrigacionistas($obrigacionistas)
            ->setOutrosCredores($outrosCredores)
            ->setOutrosDevedores($outrosDevedores)
            ->setProtegida($protegida)
            ->setSegurados($segurados)
            ->setSegurancaSocial($segurancaSocial)
            ->setSindicatos($sindicatos)
            ->setSinistrados($sinistrados)
            ->setSocios($socios)
            ->setSubscritoresCapital($subscritoresCapital)
            ->setTipoContacto($tipoContacto)
            ->setVendedores($vendedores)
            ->setVersaoUltAct($versaoUltAct);
    }
    /**
     * Get Bancos value
     * @return bool|null
     */
    public function getBancos()
    {
        return $this->Bancos;
    }
    /**
     * Set Bancos value
     * @param bool $bancos
     * @return \StructType\TipoContactosERP
     */
    public function setBancos($bancos = null)
    {
        // validation for constraint: boolean
        if (!is_null($bancos) && !is_bool($bancos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($bancos)), __LINE__);
        }
        $this->Bancos = $bancos;
        return $this;
    }
    /**
     * Get CDU_AgregadoFamiliar value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCDU_AgregadoFamiliar()
    {
        return isset($this->CDU_AgregadoFamiliar) ? $this->CDU_AgregadoFamiliar : null;
    }
    /**
     * Set CDU_AgregadoFamiliar value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $cDU_AgregadoFamiliar
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_AgregadoFamiliar($cDU_AgregadoFamiliar = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_AgregadoFamiliar) && !is_bool($cDU_AgregadoFamiliar)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_AgregadoFamiliar)), __LINE__);
        }
        if (is_null($cDU_AgregadoFamiliar) || (is_array($cDU_AgregadoFamiliar) && empty($cDU_AgregadoFamiliar))) {
            unset($this->CDU_AgregadoFamiliar);
        } else {
            $this->CDU_AgregadoFamiliar = $cDU_AgregadoFamiliar;
        }
        return $this;
    }
    /**
     * Get CDU_DebitoDireto value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCDU_DebitoDireto()
    {
        return isset($this->CDU_DebitoDireto) ? $this->CDU_DebitoDireto : null;
    }
    /**
     * Set CDU_DebitoDireto value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $cDU_DebitoDireto
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_DebitoDireto($cDU_DebitoDireto = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_DebitoDireto) && !is_bool($cDU_DebitoDireto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_DebitoDireto)), __LINE__);
        }
        if (is_null($cDU_DebitoDireto) || (is_array($cDU_DebitoDireto) && empty($cDU_DebitoDireto))) {
            unset($this->CDU_DebitoDireto);
        } else {
            $this->CDU_DebitoDireto = $cDU_DebitoDireto;
        }
        return $this;
    }
    /**
     * Get CDU_DescontoAssociado value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getCDU_DescontoAssociado()
    {
        return isset($this->CDU_DescontoAssociado) ? $this->CDU_DescontoAssociado : null;
    }
    /**
     * Set CDU_DescontoAssociado value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $cDU_DescontoAssociado
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_DescontoAssociado($cDU_DescontoAssociado = null)
    {
        if (is_null($cDU_DescontoAssociado) || (is_array($cDU_DescontoAssociado) && empty($cDU_DescontoAssociado))) {
            unset($this->CDU_DescontoAssociado);
        } else {
            $this->CDU_DescontoAssociado = $cDU_DescontoAssociado;
        }
        return $this;
    }
    /**
     * Get CDU_PagamentoMB value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCDU_PagamentoMB()
    {
        return isset($this->CDU_PagamentoMB) ? $this->CDU_PagamentoMB : null;
    }
    /**
     * Set CDU_PagamentoMB value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $cDU_PagamentoMB
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_PagamentoMB($cDU_PagamentoMB = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_PagamentoMB) && !is_bool($cDU_PagamentoMB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_PagamentoMB)), __LINE__);
        }
        if (is_null($cDU_PagamentoMB) || (is_array($cDU_PagamentoMB) && empty($cDU_PagamentoMB))) {
            unset($this->CDU_PagamentoMB);
        } else {
            $this->CDU_PagamentoMB = $cDU_PagamentoMB;
        }
        return $this;
    }
    /**
     * Get CDU_PagamentoSEPA value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCDU_PagamentoSEPA()
    {
        return isset($this->CDU_PagamentoSEPA) ? $this->CDU_PagamentoSEPA : null;
    }
    /**
     * Set CDU_PagamentoSEPA value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $cDU_PagamentoSEPA
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_PagamentoSEPA($cDU_PagamentoSEPA = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_PagamentoSEPA) && !is_bool($cDU_PagamentoSEPA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_PagamentoSEPA)), __LINE__);
        }
        if (is_null($cDU_PagamentoSEPA) || (is_array($cDU_PagamentoSEPA) && empty($cDU_PagamentoSEPA))) {
            unset($this->CDU_PagamentoSEPA);
        } else {
            $this->CDU_PagamentoSEPA = $cDU_PagamentoSEPA;
        }
        return $this;
    }
    /**
     * Get CDU_TipoAvenca value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getCDU_TipoAvenca()
    {
        return isset($this->CDU_TipoAvenca) ? $this->CDU_TipoAvenca : null;
    }
    /**
     * Set CDU_TipoAvenca value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $cDU_TipoAvenca
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_TipoAvenca($cDU_TipoAvenca = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_TipoAvenca) && !is_string($cDU_TipoAvenca)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_TipoAvenca)), __LINE__);
        }
        if (is_null($cDU_TipoAvenca) || (is_array($cDU_TipoAvenca) && empty($cDU_TipoAvenca))) {
            unset($this->CDU_TipoAvenca);
        } else {
            $this->CDU_TipoAvenca = $cDU_TipoAvenca;
        }
        return $this;
    }
    /**
     * Get CDU_Titular value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCDU_Titular()
    {
        return isset($this->CDU_Titular) ? $this->CDU_Titular : null;
    }
    /**
     * Set CDU_Titular value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $cDU_Titular
     * @return \StructType\TipoContactosERP
     */
    public function setCDU_Titular($cDU_Titular = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_Titular) && !is_bool($cDU_Titular)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_Titular)), __LINE__);
        }
        if (is_null($cDU_Titular) || (is_array($cDU_Titular) && empty($cDU_Titular))) {
            unset($this->CDU_Titular);
        } else {
            $this->CDU_Titular = $cDU_Titular;
        }
        return $this;
    }
    /**
     * Get Clientes value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getClientes()
    {
        return isset($this->Clientes) ? $this->Clientes : null;
    }
    /**
     * Set Clientes value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $clientes
     * @return \StructType\TipoContactosERP
     */
    public function setClientes($clientes = null)
    {
        // validation for constraint: boolean
        if (!is_null($clientes) && !is_bool($clientes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($clientes)), __LINE__);
        }
        if (is_null($clientes) || (is_array($clientes) && empty($clientes))) {
            unset($this->Clientes);
        } else {
            $this->Clientes = $clientes;
        }
        return $this;
    }
    /**
     * Get Colaboradores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getColaboradores()
    {
        return isset($this->Colaboradores) ? $this->Colaboradores : null;
    }
    /**
     * Set Colaboradores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $colaboradores
     * @return \StructType\TipoContactosERP
     */
    public function setColaboradores($colaboradores = null)
    {
        // validation for constraint: boolean
        if (!is_null($colaboradores) && !is_bool($colaboradores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($colaboradores)), __LINE__);
        }
        if (is_null($colaboradores) || (is_array($colaboradores) && empty($colaboradores))) {
            unset($this->Colaboradores);
        } else {
            $this->Colaboradores = $colaboradores;
        }
        return $this;
    }
    /**
     * Get Companhias value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCompanhias()
    {
        return isset($this->Companhias) ? $this->Companhias : null;
    }
    /**
     * Set Companhias value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $companhias
     * @return \StructType\TipoContactosERP
     */
    public function setCompanhias($companhias = null)
    {
        // validation for constraint: boolean
        if (!is_null($companhias) && !is_bool($companhias)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($companhias)), __LINE__);
        }
        if (is_null($companhias) || (is_array($companhias) && empty($companhias))) {
            unset($this->Companhias);
        } else {
            $this->Companhias = $companhias;
        }
        return $this;
    }
    /**
     * Get Consultores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getConsultores()
    {
        return isset($this->Consultores) ? $this->Consultores : null;
    }
    /**
     * Set Consultores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $consultores
     * @return \StructType\TipoContactosERP
     */
    public function setConsultores($consultores = null)
    {
        // validation for constraint: boolean
        if (!is_null($consultores) && !is_bool($consultores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($consultores)), __LINE__);
        }
        if (is_null($consultores) || (is_array($consultores) && empty($consultores))) {
            unset($this->Consultores);
        } else {
            $this->Consultores = $consultores;
        }
        return $this;
    }
    /**
     * Get Credores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCredores()
    {
        return isset($this->Credores) ? $this->Credores : null;
    }
    /**
     * Set Credores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $credores
     * @return \StructType\TipoContactosERP
     */
    public function setCredores($credores = null)
    {
        // validation for constraint: boolean
        if (!is_null($credores) && !is_bool($credores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($credores)), __LINE__);
        }
        if (is_null($credores) || (is_array($credores) && empty($credores))) {
            unset($this->Credores);
        } else {
            $this->Credores = $credores;
        }
        return $this;
    }
    /**
     * Get CredoresSubscricoesNaoLiberadas value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getCredoresSubscricoesNaoLiberadas()
    {
        return isset($this->CredoresSubscricoesNaoLiberadas) ? $this->CredoresSubscricoesNaoLiberadas : null;
    }
    /**
     * Set CredoresSubscricoesNaoLiberadas value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $credoresSubscricoesNaoLiberadas
     * @return \StructType\TipoContactosERP
     */
    public function setCredoresSubscricoesNaoLiberadas($credoresSubscricoesNaoLiberadas = null)
    {
        // validation for constraint: boolean
        if (!is_null($credoresSubscricoesNaoLiberadas) && !is_bool($credoresSubscricoesNaoLiberadas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($credoresSubscricoesNaoLiberadas)), __LINE__);
        }
        if (is_null($credoresSubscricoesNaoLiberadas) || (is_array($credoresSubscricoesNaoLiberadas) && empty($credoresSubscricoesNaoLiberadas))) {
            unset($this->CredoresSubscricoesNaoLiberadas);
        } else {
            $this->CredoresSubscricoesNaoLiberadas = $credoresSubscricoesNaoLiberadas;
        }
        return $this;
    }
    /**
     * Get DataUltimaActualizacao value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getDataUltimaActualizacao()
    {
        return isset($this->DataUltimaActualizacao) ? $this->DataUltimaActualizacao : null;
    }
    /**
     * Set DataUltimaActualizacao value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $dataUltimaActualizacao
     * @return \StructType\TipoContactosERP
     */
    public function setDataUltimaActualizacao($dataUltimaActualizacao = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltimaActualizacao) && !is_string($dataUltimaActualizacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltimaActualizacao)), __LINE__);
        }
        if (is_null($dataUltimaActualizacao) || (is_array($dataUltimaActualizacao) && empty($dataUltimaActualizacao))) {
            unset($this->DataUltimaActualizacao);
        } else {
            $this->DataUltimaActualizacao = $dataUltimaActualizacao;
        }
        return $this;
    }
    /**
     * Get Descricao value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getDescricao()
    {
        return isset($this->Descricao) ? $this->Descricao : null;
    }
    /**
     * Set Descricao value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $descricao
     * @return \StructType\TipoContactosERP
     */
    public function setDescricao($descricao = null)
    {
        // validation for constraint: string
        if (!is_null($descricao) && !is_string($descricao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricao)), __LINE__);
        }
        if (is_null($descricao) || (is_array($descricao) && empty($descricao))) {
            unset($this->Descricao);
        } else {
            $this->Descricao = $descricao;
        }
        return $this;
    }
    /**
     * Get EntidadesExternas value
     * @return bool|null
     */
    public function getEntidadesExternas()
    {
        return $this->EntidadesExternas;
    }
    /**
     * Set EntidadesExternas value
     * @param bool $entidadesExternas
     * @return \StructType\TipoContactosERP
     */
    public function setEntidadesExternas($entidadesExternas = null)
    {
        // validation for constraint: boolean
        if (!is_null($entidadesExternas) && !is_bool($entidadesExternas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($entidadesExternas)), __LINE__);
        }
        $this->EntidadesExternas = $entidadesExternas;
        return $this;
    }
    /**
     * Get EntidadesFormadoras value
     * @return bool|null
     */
    public function getEntidadesFormadoras()
    {
        return $this->EntidadesFormadoras;
    }
    /**
     * Set EntidadesFormadoras value
     * @param bool $entidadesFormadoras
     * @return \StructType\TipoContactosERP
     */
    public function setEntidadesFormadoras($entidadesFormadoras = null)
    {
        // validation for constraint: boolean
        if (!is_null($entidadesFormadoras) && !is_bool($entidadesFormadoras)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($entidadesFormadoras)), __LINE__);
        }
        $this->EntidadesFormadoras = $entidadesFormadoras;
        return $this;
    }
    /**
     * Get EntidadesPublicas value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getEntidadesPublicas()
    {
        return isset($this->EntidadesPublicas) ? $this->EntidadesPublicas : null;
    }
    /**
     * Set EntidadesPublicas value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $entidadesPublicas
     * @return \StructType\TipoContactosERP
     */
    public function setEntidadesPublicas($entidadesPublicas = null)
    {
        // validation for constraint: boolean
        if (!is_null($entidadesPublicas) && !is_bool($entidadesPublicas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($entidadesPublicas)), __LINE__);
        }
        if (is_null($entidadesPublicas) || (is_array($entidadesPublicas) && empty($entidadesPublicas))) {
            unset($this->EntidadesPublicas);
        } else {
            $this->EntidadesPublicas = $entidadesPublicas;
        }
        return $this;
    }
    /**
     * Get Fornecedores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getFornecedores()
    {
        return isset($this->Fornecedores) ? $this->Fornecedores : null;
    }
    /**
     * Set Fornecedores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $fornecedores
     * @return \StructType\TipoContactosERP
     */
    public function setFornecedores($fornecedores = null)
    {
        // validation for constraint: boolean
        if (!is_null($fornecedores) && !is_bool($fornecedores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fornecedores)), __LINE__);
        }
        if (is_null($fornecedores) || (is_array($fornecedores) && empty($fornecedores))) {
            unset($this->Fornecedores);
        } else {
            $this->Fornecedores = $fornecedores;
        }
        return $this;
    }
    /**
     * Get FornecedoresImobilizado value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getFornecedoresImobilizado()
    {
        return isset($this->FornecedoresImobilizado) ? $this->FornecedoresImobilizado : null;
    }
    /**
     * Set FornecedoresImobilizado value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $fornecedoresImobilizado
     * @return \StructType\TipoContactosERP
     */
    public function setFornecedoresImobilizado($fornecedoresImobilizado = null)
    {
        // validation for constraint: boolean
        if (!is_null($fornecedoresImobilizado) && !is_bool($fornecedoresImobilizado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fornecedoresImobilizado)), __LINE__);
        }
        if (is_null($fornecedoresImobilizado) || (is_array($fornecedoresImobilizado) && empty($fornecedoresImobilizado))) {
            unset($this->FornecedoresImobilizado);
        } else {
            $this->FornecedoresImobilizado = $fornecedoresImobilizado;
        }
        return $this;
    }
    /**
     * Get Funcionarios value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getFuncionarios()
    {
        return isset($this->Funcionarios) ? $this->Funcionarios : null;
    }
    /**
     * Set Funcionarios value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $funcionarios
     * @return \StructType\TipoContactosERP
     */
    public function setFuncionarios($funcionarios = null)
    {
        // validation for constraint: boolean
        if (!is_null($funcionarios) && !is_bool($funcionarios)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($funcionarios)), __LINE__);
        }
        if (is_null($funcionarios) || (is_array($funcionarios) && empty($funcionarios))) {
            unset($this->Funcionarios);
        } else {
            $this->Funcionarios = $funcionarios;
        }
        return $this;
    }
    /**
     * Get Independentes value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getIndependentes()
    {
        return isset($this->Independentes) ? $this->Independentes : null;
    }
    /**
     * Set Independentes value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $independentes
     * @return \StructType\TipoContactosERP
     */
    public function setIndependentes($independentes = null)
    {
        // validation for constraint: boolean
        if (!is_null($independentes) && !is_bool($independentes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($independentes)), __LINE__);
        }
        if (is_null($independentes) || (is_array($independentes) && empty($independentes))) {
            unset($this->Independentes);
        } else {
            $this->Independentes = $independentes;
        }
        return $this;
    }
    /**
     * Get Obrigacionistas value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getObrigacionistas()
    {
        return isset($this->Obrigacionistas) ? $this->Obrigacionistas : null;
    }
    /**
     * Set Obrigacionistas value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $obrigacionistas
     * @return \StructType\TipoContactosERP
     */
    public function setObrigacionistas($obrigacionistas = null)
    {
        // validation for constraint: boolean
        if (!is_null($obrigacionistas) && !is_bool($obrigacionistas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($obrigacionistas)), __LINE__);
        }
        if (is_null($obrigacionistas) || (is_array($obrigacionistas) && empty($obrigacionistas))) {
            unset($this->Obrigacionistas);
        } else {
            $this->Obrigacionistas = $obrigacionistas;
        }
        return $this;
    }
    /**
     * Get OutrosCredores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getOutrosCredores()
    {
        return isset($this->OutrosCredores) ? $this->OutrosCredores : null;
    }
    /**
     * Set OutrosCredores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $outrosCredores
     * @return \StructType\TipoContactosERP
     */
    public function setOutrosCredores($outrosCredores = null)
    {
        // validation for constraint: boolean
        if (!is_null($outrosCredores) && !is_bool($outrosCredores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($outrosCredores)), __LINE__);
        }
        if (is_null($outrosCredores) || (is_array($outrosCredores) && empty($outrosCredores))) {
            unset($this->OutrosCredores);
        } else {
            $this->OutrosCredores = $outrosCredores;
        }
        return $this;
    }
    /**
     * Get OutrosDevedores value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getOutrosDevedores()
    {
        return isset($this->OutrosDevedores) ? $this->OutrosDevedores : null;
    }
    /**
     * Set OutrosDevedores value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $outrosDevedores
     * @return \StructType\TipoContactosERP
     */
    public function setOutrosDevedores($outrosDevedores = null)
    {
        // validation for constraint: boolean
        if (!is_null($outrosDevedores) && !is_bool($outrosDevedores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($outrosDevedores)), __LINE__);
        }
        if (is_null($outrosDevedores) || (is_array($outrosDevedores) && empty($outrosDevedores))) {
            unset($this->OutrosDevedores);
        } else {
            $this->OutrosDevedores = $outrosDevedores;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\TipoContactosERP
     */
    public function setProtegida($protegida = null)
    {
        // validation for constraint: boolean
        if (!is_null($protegida) && !is_bool($protegida)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($protegida)), __LINE__);
        }
        $this->Protegida = $protegida;
        return $this;
    }
    /**
     * Get Segurados value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getSegurados()
    {
        return isset($this->Segurados) ? $this->Segurados : null;
    }
    /**
     * Set Segurados value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $segurados
     * @return \StructType\TipoContactosERP
     */
    public function setSegurados($segurados = null)
    {
        // validation for constraint: boolean
        if (!is_null($segurados) && !is_bool($segurados)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($segurados)), __LINE__);
        }
        if (is_null($segurados) || (is_array($segurados) && empty($segurados))) {
            unset($this->Segurados);
        } else {
            $this->Segurados = $segurados;
        }
        return $this;
    }
    /**
     * Get SegurancaSocial value
     * @return bool|null
     */
    public function getSegurancaSocial()
    {
        return $this->SegurancaSocial;
    }
    /**
     * Set SegurancaSocial value
     * @param bool $segurancaSocial
     * @return \StructType\TipoContactosERP
     */
    public function setSegurancaSocial($segurancaSocial = null)
    {
        // validation for constraint: boolean
        if (!is_null($segurancaSocial) && !is_bool($segurancaSocial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($segurancaSocial)), __LINE__);
        }
        $this->SegurancaSocial = $segurancaSocial;
        return $this;
    }
    /**
     * Get Sindicatos value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getSindicatos()
    {
        return isset($this->Sindicatos) ? $this->Sindicatos : null;
    }
    /**
     * Set Sindicatos value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $sindicatos
     * @return \StructType\TipoContactosERP
     */
    public function setSindicatos($sindicatos = null)
    {
        // validation for constraint: boolean
        if (!is_null($sindicatos) && !is_bool($sindicatos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sindicatos)), __LINE__);
        }
        if (is_null($sindicatos) || (is_array($sindicatos) && empty($sindicatos))) {
            unset($this->Sindicatos);
        } else {
            $this->Sindicatos = $sindicatos;
        }
        return $this;
    }
    /**
     * Get Sinistrados value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getSinistrados()
    {
        return isset($this->Sinistrados) ? $this->Sinistrados : null;
    }
    /**
     * Set Sinistrados value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $sinistrados
     * @return \StructType\TipoContactosERP
     */
    public function setSinistrados($sinistrados = null)
    {
        // validation for constraint: boolean
        if (!is_null($sinistrados) && !is_bool($sinistrados)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sinistrados)), __LINE__);
        }
        if (is_null($sinistrados) || (is_array($sinistrados) && empty($sinistrados))) {
            unset($this->Sinistrados);
        } else {
            $this->Sinistrados = $sinistrados;
        }
        return $this;
    }
    /**
     * Get Socios value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getSocios()
    {
        return isset($this->Socios) ? $this->Socios : null;
    }
    /**
     * Set Socios value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $socios
     * @return \StructType\TipoContactosERP
     */
    public function setSocios($socios = null)
    {
        // validation for constraint: boolean
        if (!is_null($socios) && !is_bool($socios)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($socios)), __LINE__);
        }
        if (is_null($socios) || (is_array($socios) && empty($socios))) {
            unset($this->Socios);
        } else {
            $this->Socios = $socios;
        }
        return $this;
    }
    /**
     * Get SubscritoresCapital value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getSubscritoresCapital()
    {
        return isset($this->SubscritoresCapital) ? $this->SubscritoresCapital : null;
    }
    /**
     * Set SubscritoresCapital value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $subscritoresCapital
     * @return \StructType\TipoContactosERP
     */
    public function setSubscritoresCapital($subscritoresCapital = null)
    {
        // validation for constraint: boolean
        if (!is_null($subscritoresCapital) && !is_bool($subscritoresCapital)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($subscritoresCapital)), __LINE__);
        }
        if (is_null($subscritoresCapital) || (is_array($subscritoresCapital) && empty($subscritoresCapital))) {
            unset($this->SubscritoresCapital);
        } else {
            $this->SubscritoresCapital = $subscritoresCapital;
        }
        return $this;
    }
    /**
     * Get TipoContacto value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getTipoContacto()
    {
        return isset($this->TipoContacto) ? $this->TipoContacto : null;
    }
    /**
     * Set TipoContacto value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $tipoContacto
     * @return \StructType\TipoContactosERP
     */
    public function setTipoContacto($tipoContacto = null)
    {
        // validation for constraint: string
        if (!is_null($tipoContacto) && !is_string($tipoContacto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoContacto)), __LINE__);
        }
        if (is_null($tipoContacto) || (is_array($tipoContacto) && empty($tipoContacto))) {
            unset($this->TipoContacto);
        } else {
            $this->TipoContacto = $tipoContacto;
        }
        return $this;
    }
    /**
     * Get Vendedores value
     * @return bool|null
     */
    public function getVendedores()
    {
        return $this->Vendedores;
    }
    /**
     * Set Vendedores value
     * @param bool $vendedores
     * @return \StructType\TipoContactosERP
     */
    public function setVendedores($vendedores = null)
    {
        // validation for constraint: boolean
        if (!is_null($vendedores) && !is_bool($vendedores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($vendedores)), __LINE__);
        }
        $this->Vendedores = $vendedores;
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\TipoContactosERP
     */
    public function setVersaoUltAct($versaoUltAct = null)
    {
        // validation for constraint: string
        if (!is_null($versaoUltAct) && !is_string($versaoUltAct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($versaoUltAct)), __LINE__);
        }
        $this->VersaoUltAct = $versaoUltAct;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \StructType\TipoContactosERP
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
