<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Customer StructType
 * Meta information extracted from the WSDL
 * - type: listRel:Customer
 * @subpackage Structs
 */
class Customer extends Record
{
    /**
     * The customForm
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $customForm;
    /**
     * The entityId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $entityId;
    /**
     * The altName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $altName;
    /**
     * The isPerson
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isPerson;
    /**
     * The phoneticName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $phoneticName;
    /**
     * The salutation
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $salutation;
    /**
     * The firstName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $firstName;
    /**
     * The middleName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $middleName;
    /**
     * The lastName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastName;
    /**
     * The companyName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $companyName;
    /**
     * The entityStatus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $entityStatus;
    /**
     * The parent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $parent;
    /**
     * The phone
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $phone;
    /**
     * The fax
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $fax;
    /**
     * The email
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $email;
    /**
     * The url
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $url;
    /**
     * The defaultAddress
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $defaultAddress;
    /**
     * The isInactive
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isInactive;
    /**
     * The category
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $category;
    /**
     * The title
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $title;
    /**
     * The printOnCheckAs
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $printOnCheckAs;
    /**
     * The altPhone
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $altPhone;
    /**
     * The homePhone
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $homePhone;
    /**
     * The mobilePhone
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $mobilePhone;
    /**
     * The altEmail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $altEmail;
    /**
     * The language
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $language;
    /**
     * The comments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $comments;
    /**
     * The numberFormat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $numberFormat;
    /**
     * The negativeNumberFormat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $negativeNumberFormat;
    /**
     * The dateCreated
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dateCreated;
    /**
     * The image
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $image;
    /**
     * The emailPreference
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $emailPreference;
    /**
     * The subsidiary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $subsidiary;
    /**
     * The representingSubsidiary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $representingSubsidiary;
    /**
     * The salesRep
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesRep;
    /**
     * The territory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $territory;
    /**
     * The contribPct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $contribPct;
    /**
     * The partner
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $partner;
    /**
     * The salesGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesGroup;
    /**
     * The vatRegNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vatRegNumber;
    /**
     * The accountNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $accountNumber;
    /**
     * The taxExempt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $taxExempt;
    /**
     * The terms
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $terms;
    /**
     * The creditLimit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $creditLimit;
    /**
     * The creditHoldOverride
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $creditHoldOverride;
    /**
     * The monthlyClosing
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $monthlyClosing;
    /**
     * The overrideCurrencyFormat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $overrideCurrencyFormat;
    /**
     * The displaySymbol
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $displaySymbol;
    /**
     * The symbolPlacement
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $symbolPlacement;
    /**
     * The balance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $balance;
    /**
     * The overdueBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $overdueBalance;
    /**
     * The daysOverdue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $daysOverdue;
    /**
     * The unbilledOrders
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $unbilledOrders;
    /**
     * The consolUnbilledOrders
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolUnbilledOrders;
    /**
     * The consolOverdueBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolOverdueBalance;
    /**
     * The consolDepositBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolDepositBalance;
    /**
     * The consolBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolBalance;
    /**
     * The consolAging
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolAging;
    /**
     * The consolAging1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolAging1;
    /**
     * The consolAging2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolAging2;
    /**
     * The consolAging3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolAging3;
    /**
     * The consolAging4
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $consolAging4;
    /**
     * The consolDaysOverdue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $consolDaysOverdue;
    /**
     * The priceLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $priceLevel;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $currency;
    /**
     * The prefCCProcessor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $prefCCProcessor;
    /**
     * The depositBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $depositBalance;
    /**
     * The shipComplete
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $shipComplete;
    /**
     * The taxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $taxable;
    /**
     * The taxItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $taxItem;
    /**
     * The resaleNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $resaleNumber;
    /**
     * The aging
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $aging;
    /**
     * The aging1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $aging1;
    /**
     * The aging2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $aging2;
    /**
     * The aging3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $aging3;
    /**
     * The aging4
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $aging4;
    /**
     * The startDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $startDate;
    /**
     * The alcoholRecipientType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $alcoholRecipientType;
    /**
     * The endDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $endDate;
    /**
     * The reminderDays
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $reminderDays;
    /**
     * The shippingItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $shippingItem;
    /**
     * The thirdPartyAcct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $thirdPartyAcct;
    /**
     * The thirdPartyZipcode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $thirdPartyZipcode;
    /**
     * The thirdPartyCountry
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $thirdPartyCountry;
    /**
     * The giveAccess
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $giveAccess;
    /**
     * The estimatedBudget
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $estimatedBudget;
    /**
     * The accessRole
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $accessRole;
    /**
     * The sendEmail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $sendEmail;
    /**
     * The assignedWebSite
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $assignedWebSite;
    /**
     * The password
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $password;
    /**
     * The password2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $password2;
    /**
     * The requirePwdChange
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $requirePwdChange;
    /**
     * The campaignCategory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $campaignCategory;
    /**
     * The sourceWebSite
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $sourceWebSite;
    /**
     * The leadSource
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $leadSource;
    /**
     * The receivablesAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $receivablesAccount;
    /**
     * The drAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $drAccount;
    /**
     * The fxAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $fxAccount;
    /**
     * The defaultOrderPriority
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $defaultOrderPriority;
    /**
     * The webLead
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $webLead;
    /**
     * The referrer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $referrer;
    /**
     * The keywords
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $keywords;
    /**
     * The clickStream
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $clickStream;
    /**
     * The lastPageVisited
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastPageVisited;
    /**
     * The visits
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $visits;
    /**
     * The firstVisit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $firstVisit;
    /**
     * The lastVisit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastVisit;
    /**
     * The billPay
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $billPay;
    /**
     * The openingBalance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $openingBalance;
    /**
     * The lastModifiedDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastModifiedDate;
    /**
     * The openingBalanceDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $openingBalanceDate;
    /**
     * The openingBalanceAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $openingBalanceAccount;
    /**
     * The stage
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $stage;
    /**
     * The emailTransactions
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $emailTransactions;
    /**
     * The printTransactions
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $printTransactions;
    /**
     * The faxTransactions
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $faxTransactions;
    /**
     * The defaultTaxReg
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $defaultTaxReg;
    /**
     * The syncPartnerTeams
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $syncPartnerTeams;
    /**
     * The isBudgetApproved
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isBudgetApproved;
    /**
     * The globalSubscriptionStatus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $globalSubscriptionStatus;
    /**
     * The salesReadiness
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesReadiness;
    /**
     * The salesTeamList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerSalesTeamList
     */
    public $salesTeamList;
    /**
     * The buyingReason
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $buyingReason;
    /**
     * The downloadList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerDownloadList
     */
    public $downloadList;
    /**
     * The buyingTimeFrame
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $buyingTimeFrame;
    /**
     * The addressbookList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerAddressbookList
     */
    public $addressbookList;
    /**
     * The subscriptionsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SubscriptionsList
     */
    public $subscriptionsList;
    /**
     * The contactRolesList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ContactAccessRolesList
     */
    public $contactRolesList;
    /**
     * The currencyList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerCurrencyList
     */
    public $currencyList;
    /**
     * The creditCardsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerCreditCardsList
     */
    public $creditCardsList;
    /**
     * The partnersList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerPartnersList
     */
    public $partnersList;
    /**
     * The groupPricingList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerGroupPricingList
     */
    public $groupPricingList;
    /**
     * The itemPricingList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerItemPricingList
     */
    public $itemPricingList;
    /**
     * The taxRegistrationList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomerTaxRegistrationList
     */
    public $taxRegistrationList;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldList
     */
    public $customFieldList;
    /**
     * The internalId
     * @var string
     */
    public $internalId;
    /**
     * The externalId
     * @var string
     */
    public $externalId;
    /**
     * Constructor method for Customer
     * @uses Customer::setCustomForm()
     * @uses Customer::setEntityId()
     * @uses Customer::setAltName()
     * @uses Customer::setIsPerson()
     * @uses Customer::setPhoneticName()
     * @uses Customer::setSalutation()
     * @uses Customer::setFirstName()
     * @uses Customer::setMiddleName()
     * @uses Customer::setLastName()
     * @uses Customer::setCompanyName()
     * @uses Customer::setEntityStatus()
     * @uses Customer::setParent()
     * @uses Customer::setPhone()
     * @uses Customer::setFax()
     * @uses Customer::setEmail()
     * @uses Customer::setUrl()
     * @uses Customer::setDefaultAddress()
     * @uses Customer::setIsInactive()
     * @uses Customer::setCategory()
     * @uses Customer::setTitle()
     * @uses Customer::setPrintOnCheckAs()
     * @uses Customer::setAltPhone()
     * @uses Customer::setHomePhone()
     * @uses Customer::setMobilePhone()
     * @uses Customer::setAltEmail()
     * @uses Customer::setLanguage()
     * @uses Customer::setComments()
     * @uses Customer::setNumberFormat()
     * @uses Customer::setNegativeNumberFormat()
     * @uses Customer::setDateCreated()
     * @uses Customer::setImage()
     * @uses Customer::setEmailPreference()
     * @uses Customer::setSubsidiary()
     * @uses Customer::setRepresentingSubsidiary()
     * @uses Customer::setSalesRep()
     * @uses Customer::setTerritory()
     * @uses Customer::setContribPct()
     * @uses Customer::setPartner()
     * @uses Customer::setSalesGroup()
     * @uses Customer::setVatRegNumber()
     * @uses Customer::setAccountNumber()
     * @uses Customer::setTaxExempt()
     * @uses Customer::setTerms()
     * @uses Customer::setCreditLimit()
     * @uses Customer::setCreditHoldOverride()
     * @uses Customer::setMonthlyClosing()
     * @uses Customer::setOverrideCurrencyFormat()
     * @uses Customer::setDisplaySymbol()
     * @uses Customer::setSymbolPlacement()
     * @uses Customer::setBalance()
     * @uses Customer::setOverdueBalance()
     * @uses Customer::setDaysOverdue()
     * @uses Customer::setUnbilledOrders()
     * @uses Customer::setConsolUnbilledOrders()
     * @uses Customer::setConsolOverdueBalance()
     * @uses Customer::setConsolDepositBalance()
     * @uses Customer::setConsolBalance()
     * @uses Customer::setConsolAging()
     * @uses Customer::setConsolAging1()
     * @uses Customer::setConsolAging2()
     * @uses Customer::setConsolAging3()
     * @uses Customer::setConsolAging4()
     * @uses Customer::setConsolDaysOverdue()
     * @uses Customer::setPriceLevel()
     * @uses Customer::setCurrency()
     * @uses Customer::setPrefCCProcessor()
     * @uses Customer::setDepositBalance()
     * @uses Customer::setShipComplete()
     * @uses Customer::setTaxable()
     * @uses Customer::setTaxItem()
     * @uses Customer::setResaleNumber()
     * @uses Customer::setAging()
     * @uses Customer::setAging1()
     * @uses Customer::setAging2()
     * @uses Customer::setAging3()
     * @uses Customer::setAging4()
     * @uses Customer::setStartDate()
     * @uses Customer::setAlcoholRecipientType()
     * @uses Customer::setEndDate()
     * @uses Customer::setReminderDays()
     * @uses Customer::setShippingItem()
     * @uses Customer::setThirdPartyAcct()
     * @uses Customer::setThirdPartyZipcode()
     * @uses Customer::setThirdPartyCountry()
     * @uses Customer::setGiveAccess()
     * @uses Customer::setEstimatedBudget()
     * @uses Customer::setAccessRole()
     * @uses Customer::setSendEmail()
     * @uses Customer::setAssignedWebSite()
     * @uses Customer::setPassword()
     * @uses Customer::setPassword2()
     * @uses Customer::setRequirePwdChange()
     * @uses Customer::setCampaignCategory()
     * @uses Customer::setSourceWebSite()
     * @uses Customer::setLeadSource()
     * @uses Customer::setReceivablesAccount()
     * @uses Customer::setDrAccount()
     * @uses Customer::setFxAccount()
     * @uses Customer::setDefaultOrderPriority()
     * @uses Customer::setWebLead()
     * @uses Customer::setReferrer()
     * @uses Customer::setKeywords()
     * @uses Customer::setClickStream()
     * @uses Customer::setLastPageVisited()
     * @uses Customer::setVisits()
     * @uses Customer::setFirstVisit()
     * @uses Customer::setLastVisit()
     * @uses Customer::setBillPay()
     * @uses Customer::setOpeningBalance()
     * @uses Customer::setLastModifiedDate()
     * @uses Customer::setOpeningBalanceDate()
     * @uses Customer::setOpeningBalanceAccount()
     * @uses Customer::setStage()
     * @uses Customer::setEmailTransactions()
     * @uses Customer::setPrintTransactions()
     * @uses Customer::setFaxTransactions()
     * @uses Customer::setDefaultTaxReg()
     * @uses Customer::setSyncPartnerTeams()
     * @uses Customer::setIsBudgetApproved()
     * @uses Customer::setGlobalSubscriptionStatus()
     * @uses Customer::setSalesReadiness()
     * @uses Customer::setSalesTeamList()
     * @uses Customer::setBuyingReason()
     * @uses Customer::setDownloadList()
     * @uses Customer::setBuyingTimeFrame()
     * @uses Customer::setAddressbookList()
     * @uses Customer::setSubscriptionsList()
     * @uses Customer::setContactRolesList()
     * @uses Customer::setCurrencyList()
     * @uses Customer::setCreditCardsList()
     * @uses Customer::setPartnersList()
     * @uses Customer::setGroupPricingList()
     * @uses Customer::setItemPricingList()
     * @uses Customer::setTaxRegistrationList()
     * @uses Customer::setCustomFieldList()
     * @uses Customer::setInternalId()
     * @uses Customer::setExternalId()
     * @param \StructType\RecordRef $customForm
     * @param string $entityId
     * @param string $altName
     * @param bool $isPerson
     * @param string $phoneticName
     * @param string $salutation
     * @param string $firstName
     * @param string $middleName
     * @param string $lastName
     * @param string $companyName
     * @param \StructType\RecordRef $entityStatus
     * @param \StructType\RecordRef $parent
     * @param string $phone
     * @param string $fax
     * @param string $email
     * @param string $url
     * @param string $defaultAddress
     * @param bool $isInactive
     * @param \StructType\RecordRef $category
     * @param string $title
     * @param string $printOnCheckAs
     * @param string $altPhone
     * @param string $homePhone
     * @param string $mobilePhone
     * @param string $altEmail
     * @param string $language
     * @param string $comments
     * @param string $numberFormat
     * @param string $negativeNumberFormat
     * @param string $dateCreated
     * @param \StructType\RecordRef $image
     * @param string $emailPreference
     * @param \StructType\RecordRef $subsidiary
     * @param \StructType\RecordRef $representingSubsidiary
     * @param \StructType\RecordRef $salesRep
     * @param \StructType\RecordRef $territory
     * @param string $contribPct
     * @param \StructType\RecordRef $partner
     * @param \StructType\RecordRef $salesGroup
     * @param string $vatRegNumber
     * @param string $accountNumber
     * @param bool $taxExempt
     * @param \StructType\RecordRef $terms
     * @param float $creditLimit
     * @param string $creditHoldOverride
     * @param string $monthlyClosing
     * @param bool $overrideCurrencyFormat
     * @param string $displaySymbol
     * @param string $symbolPlacement
     * @param float $balance
     * @param float $overdueBalance
     * @param int $daysOverdue
     * @param float $unbilledOrders
     * @param float $consolUnbilledOrders
     * @param float $consolOverdueBalance
     * @param float $consolDepositBalance
     * @param float $consolBalance
     * @param float $consolAging
     * @param float $consolAging1
     * @param float $consolAging2
     * @param float $consolAging3
     * @param float $consolAging4
     * @param int $consolDaysOverdue
     * @param \StructType\RecordRef $priceLevel
     * @param \StructType\RecordRef $currency
     * @param \StructType\RecordRef $prefCCProcessor
     * @param float $depositBalance
     * @param bool $shipComplete
     * @param bool $taxable
     * @param \StructType\RecordRef $taxItem
     * @param string $resaleNumber
     * @param float $aging
     * @param float $aging1
     * @param float $aging2
     * @param float $aging3
     * @param float $aging4
     * @param string $startDate
     * @param string $alcoholRecipientType
     * @param string $endDate
     * @param int $reminderDays
     * @param \StructType\RecordRef $shippingItem
     * @param string $thirdPartyAcct
     * @param string $thirdPartyZipcode
     * @param string $thirdPartyCountry
     * @param bool $giveAccess
     * @param float $estimatedBudget
     * @param \StructType\RecordRef $accessRole
     * @param bool $sendEmail
     * @param \StructType\RecordRef $assignedWebSite
     * @param string $password
     * @param string $password2
     * @param bool $requirePwdChange
     * @param \StructType\RecordRef $campaignCategory
     * @param \StructType\RecordRef $sourceWebSite
     * @param \StructType\RecordRef $leadSource
     * @param \StructType\RecordRef $receivablesAccount
     * @param \StructType\RecordRef $drAccount
     * @param \StructType\RecordRef $fxAccount
     * @param float $defaultOrderPriority
     * @param string $webLead
     * @param string $referrer
     * @param string $keywords
     * @param string $clickStream
     * @param string $lastPageVisited
     * @param int $visits
     * @param string $firstVisit
     * @param string $lastVisit
     * @param bool $billPay
     * @param float $openingBalance
     * @param string $lastModifiedDate
     * @param string $openingBalanceDate
     * @param \StructType\RecordRef $openingBalanceAccount
     * @param string $stage
     * @param bool $emailTransactions
     * @param bool $printTransactions
     * @param bool $faxTransactions
     * @param \StructType\RecordRef $defaultTaxReg
     * @param bool $syncPartnerTeams
     * @param bool $isBudgetApproved
     * @param string $globalSubscriptionStatus
     * @param \StructType\RecordRef $salesReadiness
     * @param \StructType\CustomerSalesTeamList $salesTeamList
     * @param \StructType\RecordRef $buyingReason
     * @param \StructType\CustomerDownloadList $downloadList
     * @param \StructType\RecordRef $buyingTimeFrame
     * @param \StructType\CustomerAddressbookList $addressbookList
     * @param \StructType\SubscriptionsList $subscriptionsList
     * @param \StructType\ContactAccessRolesList $contactRolesList
     * @param \StructType\CustomerCurrencyList $currencyList
     * @param \StructType\CustomerCreditCardsList $creditCardsList
     * @param \StructType\CustomerPartnersList $partnersList
     * @param \StructType\CustomerGroupPricingList $groupPricingList
     * @param \StructType\CustomerItemPricingList $itemPricingList
     * @param \StructType\CustomerTaxRegistrationList $taxRegistrationList
     * @param \StructType\CustomFieldList $customFieldList
     * @param string $internalId
     * @param string $externalId
     */
    public function __construct(\StructType\RecordRef $customForm = null, $entityId = null, $altName = null, $isPerson = null, $phoneticName = null, $salutation = null, $firstName = null, $middleName = null, $lastName = null, $companyName = null, \StructType\RecordRef $entityStatus = null, \StructType\RecordRef $parent = null, $phone = null, $fax = null, $email = null, $url = null, $defaultAddress = null, $isInactive = null, \StructType\RecordRef $category = null, $title = null, $printOnCheckAs = null, $altPhone = null, $homePhone = null, $mobilePhone = null, $altEmail = null, $language = null, $comments = null, $numberFormat = null, $negativeNumberFormat = null, $dateCreated = null, \StructType\RecordRef $image = null, $emailPreference = null, \StructType\RecordRef $subsidiary = null, \StructType\RecordRef $representingSubsidiary = null, \StructType\RecordRef $salesRep = null, \StructType\RecordRef $territory = null, $contribPct = null, \StructType\RecordRef $partner = null, \StructType\RecordRef $salesGroup = null, $vatRegNumber = null, $accountNumber = null, $taxExempt = null, \StructType\RecordRef $terms = null, $creditLimit = null, $creditHoldOverride = null, $monthlyClosing = null, $overrideCurrencyFormat = null, $displaySymbol = null, $symbolPlacement = null, $balance = null, $overdueBalance = null, $daysOverdue = null, $unbilledOrders = null, $consolUnbilledOrders = null, $consolOverdueBalance = null, $consolDepositBalance = null, $consolBalance = null, $consolAging = null, $consolAging1 = null, $consolAging2 = null, $consolAging3 = null, $consolAging4 = null, $consolDaysOverdue = null, \StructType\RecordRef $priceLevel = null, \StructType\RecordRef $currency = null, \StructType\RecordRef $prefCCProcessor = null, $depositBalance = null, $shipComplete = null, $taxable = null, \StructType\RecordRef $taxItem = null, $resaleNumber = null, $aging = null, $aging1 = null, $aging2 = null, $aging3 = null, $aging4 = null, $startDate = null, $alcoholRecipientType = null, $endDate = null, $reminderDays = null, \StructType\RecordRef $shippingItem = null, $thirdPartyAcct = null, $thirdPartyZipcode = null, $thirdPartyCountry = null, $giveAccess = null, $estimatedBudget = null, \StructType\RecordRef $accessRole = null, $sendEmail = null, \StructType\RecordRef $assignedWebSite = null, $password = null, $password2 = null, $requirePwdChange = null, \StructType\RecordRef $campaignCategory = null, \StructType\RecordRef $sourceWebSite = null, \StructType\RecordRef $leadSource = null, \StructType\RecordRef $receivablesAccount = null, \StructType\RecordRef $drAccount = null, \StructType\RecordRef $fxAccount = null, $defaultOrderPriority = null, $webLead = null, $referrer = null, $keywords = null, $clickStream = null, $lastPageVisited = null, $visits = null, $firstVisit = null, $lastVisit = null, $billPay = null, $openingBalance = null, $lastModifiedDate = null, $openingBalanceDate = null, \StructType\RecordRef $openingBalanceAccount = null, $stage = null, $emailTransactions = null, $printTransactions = null, $faxTransactions = null, \StructType\RecordRef $defaultTaxReg = null, $syncPartnerTeams = null, $isBudgetApproved = null, $globalSubscriptionStatus = null, \StructType\RecordRef $salesReadiness = null, \StructType\CustomerSalesTeamList $salesTeamList = null, \StructType\RecordRef $buyingReason = null, \StructType\CustomerDownloadList $downloadList = null, \StructType\RecordRef $buyingTimeFrame = null, \StructType\CustomerAddressbookList $addressbookList = null, \StructType\SubscriptionsList $subscriptionsList = null, \StructType\ContactAccessRolesList $contactRolesList = null, \StructType\CustomerCurrencyList $currencyList = null, \StructType\CustomerCreditCardsList $creditCardsList = null, \StructType\CustomerPartnersList $partnersList = null, \StructType\CustomerGroupPricingList $groupPricingList = null, \StructType\CustomerItemPricingList $itemPricingList = null, \StructType\CustomerTaxRegistrationList $taxRegistrationList = null, \StructType\CustomFieldList $customFieldList = null, $internalId = null, $externalId = null)
    {
        $this
            ->setCustomForm($customForm)
            ->setEntityId($entityId)
            ->setAltName($altName)
            ->setIsPerson($isPerson)
            ->setPhoneticName($phoneticName)
            ->setSalutation($salutation)
            ->setFirstName($firstName)
            ->setMiddleName($middleName)
            ->setLastName($lastName)
            ->setCompanyName($companyName)
            ->setEntityStatus($entityStatus)
            ->setParent($parent)
            ->setPhone($phone)
            ->setFax($fax)
            ->setEmail($email)
            ->setUrl($url)
            ->setDefaultAddress($defaultAddress)
            ->setIsInactive($isInactive)
            ->setCategory($category)
            ->setTitle($title)
            ->setPrintOnCheckAs($printOnCheckAs)
            ->setAltPhone($altPhone)
            ->setHomePhone($homePhone)
            ->setMobilePhone($mobilePhone)
            ->setAltEmail($altEmail)
            ->setLanguage($language)
            ->setComments($comments)
            ->setNumberFormat($numberFormat)
            ->setNegativeNumberFormat($negativeNumberFormat)
            ->setDateCreated($dateCreated)
            ->setImage($image)
            ->setEmailPreference($emailPreference)
            ->setSubsidiary($subsidiary)
            ->setRepresentingSubsidiary($representingSubsidiary)
            ->setSalesRep($salesRep)
            ->setTerritory($territory)
            ->setContribPct($contribPct)
            ->setPartner($partner)
            ->setSalesGroup($salesGroup)
            ->setVatRegNumber($vatRegNumber)
            ->setAccountNumber($accountNumber)
            ->setTaxExempt($taxExempt)
            ->setTerms($terms)
            ->setCreditLimit($creditLimit)
            ->setCreditHoldOverride($creditHoldOverride)
            ->setMonthlyClosing($monthlyClosing)
            ->setOverrideCurrencyFormat($overrideCurrencyFormat)
            ->setDisplaySymbol($displaySymbol)
            ->setSymbolPlacement($symbolPlacement)
            ->setBalance($balance)
            ->setOverdueBalance($overdueBalance)
            ->setDaysOverdue($daysOverdue)
            ->setUnbilledOrders($unbilledOrders)
            ->setConsolUnbilledOrders($consolUnbilledOrders)
            ->setConsolOverdueBalance($consolOverdueBalance)
            ->setConsolDepositBalance($consolDepositBalance)
            ->setConsolBalance($consolBalance)
            ->setConsolAging($consolAging)
            ->setConsolAging1($consolAging1)
            ->setConsolAging2($consolAging2)
            ->setConsolAging3($consolAging3)
            ->setConsolAging4($consolAging4)
            ->setConsolDaysOverdue($consolDaysOverdue)
            ->setPriceLevel($priceLevel)
            ->setCurrency($currency)
            ->setPrefCCProcessor($prefCCProcessor)
            ->setDepositBalance($depositBalance)
            ->setShipComplete($shipComplete)
            ->setTaxable($taxable)
            ->setTaxItem($taxItem)
            ->setResaleNumber($resaleNumber)
            ->setAging($aging)
            ->setAging1($aging1)
            ->setAging2($aging2)
            ->setAging3($aging3)
            ->setAging4($aging4)
            ->setStartDate($startDate)
            ->setAlcoholRecipientType($alcoholRecipientType)
            ->setEndDate($endDate)
            ->setReminderDays($reminderDays)
            ->setShippingItem($shippingItem)
            ->setThirdPartyAcct($thirdPartyAcct)
            ->setThirdPartyZipcode($thirdPartyZipcode)
            ->setThirdPartyCountry($thirdPartyCountry)
            ->setGiveAccess($giveAccess)
            ->setEstimatedBudget($estimatedBudget)
            ->setAccessRole($accessRole)
            ->setSendEmail($sendEmail)
            ->setAssignedWebSite($assignedWebSite)
            ->setPassword($password)
            ->setPassword2($password2)
            ->setRequirePwdChange($requirePwdChange)
            ->setCampaignCategory($campaignCategory)
            ->setSourceWebSite($sourceWebSite)
            ->setLeadSource($leadSource)
            ->setReceivablesAccount($receivablesAccount)
            ->setDrAccount($drAccount)
            ->setFxAccount($fxAccount)
            ->setDefaultOrderPriority($defaultOrderPriority)
            ->setWebLead($webLead)
            ->setReferrer($referrer)
            ->setKeywords($keywords)
            ->setClickStream($clickStream)
            ->setLastPageVisited($lastPageVisited)
            ->setVisits($visits)
            ->setFirstVisit($firstVisit)
            ->setLastVisit($lastVisit)
            ->setBillPay($billPay)
            ->setOpeningBalance($openingBalance)
            ->setLastModifiedDate($lastModifiedDate)
            ->setOpeningBalanceDate($openingBalanceDate)
            ->setOpeningBalanceAccount($openingBalanceAccount)
            ->setStage($stage)
            ->setEmailTransactions($emailTransactions)
            ->setPrintTransactions($printTransactions)
            ->setFaxTransactions($faxTransactions)
            ->setDefaultTaxReg($defaultTaxReg)
            ->setSyncPartnerTeams($syncPartnerTeams)
            ->setIsBudgetApproved($isBudgetApproved)
            ->setGlobalSubscriptionStatus($globalSubscriptionStatus)
            ->setSalesReadiness($salesReadiness)
            ->setSalesTeamList($salesTeamList)
            ->setBuyingReason($buyingReason)
            ->setDownloadList($downloadList)
            ->setBuyingTimeFrame($buyingTimeFrame)
            ->setAddressbookList($addressbookList)
            ->setSubscriptionsList($subscriptionsList)
            ->setContactRolesList($contactRolesList)
            ->setCurrencyList($currencyList)
            ->setCreditCardsList($creditCardsList)
            ->setPartnersList($partnersList)
            ->setGroupPricingList($groupPricingList)
            ->setItemPricingList($itemPricingList)
            ->setTaxRegistrationList($taxRegistrationList)
            ->setCustomFieldList($customFieldList)
            ->setInternalId($internalId)
            ->setExternalId($externalId);
    }
    /**
     * Get customForm value
     * @return \StructType\RecordRef|null
     */
    public function getCustomForm()
    {
        return $this->customForm;
    }
    /**
     * Set customForm value
     * @param \StructType\RecordRef $customForm
     * @return \StructType\Customer
     */
    public function setCustomForm(\StructType\RecordRef $customForm = null)
    {
        $this->customForm = $customForm;
        return $this;
    }
    /**
     * Get entityId value
     * @return string|null
     */
    public function getEntityId()
    {
        return $this->entityId;
    }
    /**
     * Set entityId value
     * @param string $entityId
     * @return \StructType\Customer
     */
    public function setEntityId($entityId = null)
    {
        // validation for constraint: string
        if (!is_null($entityId) && !is_string($entityId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($entityId, true), gettype($entityId)), __LINE__);
        }
        $this->entityId = $entityId;
        return $this;
    }
    /**
     * Get altName value
     * @return string|null
     */
    public function getAltName()
    {
        return $this->altName;
    }
    /**
     * Set altName value
     * @param string $altName
     * @return \StructType\Customer
     */
    public function setAltName($altName = null)
    {
        // validation for constraint: string
        if (!is_null($altName) && !is_string($altName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($altName, true), gettype($altName)), __LINE__);
        }
        $this->altName = $altName;
        return $this;
    }
    /**
     * Get isPerson value
     * @return bool|null
     */
    public function getIsPerson()
    {
        return $this->isPerson;
    }
    /**
     * Set isPerson value
     * @param bool $isPerson
     * @return \StructType\Customer
     */
    public function setIsPerson($isPerson = null)
    {
        // validation for constraint: boolean
        if (!is_null($isPerson) && !is_bool($isPerson)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isPerson, true), gettype($isPerson)), __LINE__);
        }
        $this->isPerson = $isPerson;
        return $this;
    }
    /**
     * Get phoneticName value
     * @return string|null
     */
    public function getPhoneticName()
    {
        return $this->phoneticName;
    }
    /**
     * Set phoneticName value
     * @param string $phoneticName
     * @return \StructType\Customer
     */
    public function setPhoneticName($phoneticName = null)
    {
        // validation for constraint: string
        if (!is_null($phoneticName) && !is_string($phoneticName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($phoneticName, true), gettype($phoneticName)), __LINE__);
        }
        $this->phoneticName = $phoneticName;
        return $this;
    }
    /**
     * Get salutation value
     * @return string|null
     */
    public function getSalutation()
    {
        return $this->salutation;
    }
    /**
     * Set salutation value
     * @param string $salutation
     * @return \StructType\Customer
     */
    public function setSalutation($salutation = null)
    {
        // validation for constraint: string
        if (!is_null($salutation) && !is_string($salutation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($salutation, true), gettype($salutation)), __LINE__);
        }
        $this->salutation = $salutation;
        return $this;
    }
    /**
     * Get firstName value
     * @return string|null
     */
    public function getFirstName()
    {
        return $this->firstName;
    }
    /**
     * Set firstName value
     * @param string $firstName
     * @return \StructType\Customer
     */
    public function setFirstName($firstName = null)
    {
        // validation for constraint: string
        if (!is_null($firstName) && !is_string($firstName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($firstName, true), gettype($firstName)), __LINE__);
        }
        $this->firstName = $firstName;
        return $this;
    }
    /**
     * Get middleName value
     * @return string|null
     */
    public function getMiddleName()
    {
        return $this->middleName;
    }
    /**
     * Set middleName value
     * @param string $middleName
     * @return \StructType\Customer
     */
    public function setMiddleName($middleName = null)
    {
        // validation for constraint: string
        if (!is_null($middleName) && !is_string($middleName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($middleName, true), gettype($middleName)), __LINE__);
        }
        $this->middleName = $middleName;
        return $this;
    }
    /**
     * Get lastName value
     * @return string|null
     */
    public function getLastName()
    {
        return $this->lastName;
    }
    /**
     * Set lastName value
     * @param string $lastName
     * @return \StructType\Customer
     */
    public function setLastName($lastName = null)
    {
        // validation for constraint: string
        if (!is_null($lastName) && !is_string($lastName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastName, true), gettype($lastName)), __LINE__);
        }
        $this->lastName = $lastName;
        return $this;
    }
    /**
     * Get companyName value
     * @return string|null
     */
    public function getCompanyName()
    {
        return $this->companyName;
    }
    /**
     * Set companyName value
     * @param string $companyName
     * @return \StructType\Customer
     */
    public function setCompanyName($companyName = null)
    {
        // validation for constraint: string
        if (!is_null($companyName) && !is_string($companyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($companyName, true), gettype($companyName)), __LINE__);
        }
        $this->companyName = $companyName;
        return $this;
    }
    /**
     * Get entityStatus value
     * @return \StructType\RecordRef|null
     */
    public function getEntityStatus()
    {
        return $this->entityStatus;
    }
    /**
     * Set entityStatus value
     * @param \StructType\RecordRef $entityStatus
     * @return \StructType\Customer
     */
    public function setEntityStatus(\StructType\RecordRef $entityStatus = null)
    {
        $this->entityStatus = $entityStatus;
        return $this;
    }
    /**
     * Get parent value
     * @return \StructType\RecordRef|null
     */
    public function getParent()
    {
        return $this->parent;
    }
    /**
     * Set parent value
     * @param \StructType\RecordRef $parent
     * @return \StructType\Customer
     */
    public function setParent(\StructType\RecordRef $parent = null)
    {
        $this->parent = $parent;
        return $this;
    }
    /**
     * Get phone value
     * @return string|null
     */
    public function getPhone()
    {
        return $this->phone;
    }
    /**
     * Set phone value
     * @param string $phone
     * @return \StructType\Customer
     */
    public function setPhone($phone = null)
    {
        // validation for constraint: string
        if (!is_null($phone) && !is_string($phone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($phone, true), gettype($phone)), __LINE__);
        }
        $this->phone = $phone;
        return $this;
    }
    /**
     * Get fax value
     * @return string|null
     */
    public function getFax()
    {
        return $this->fax;
    }
    /**
     * Set fax value
     * @param string $fax
     * @return \StructType\Customer
     */
    public function setFax($fax = null)
    {
        // validation for constraint: string
        if (!is_null($fax) && !is_string($fax)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fax, true), gettype($fax)), __LINE__);
        }
        $this->fax = $fax;
        return $this;
    }
    /**
     * Get email value
     * @return string|null
     */
    public function getEmail()
    {
        return $this->email;
    }
    /**
     * Set email value
     * @param string $email
     * @return \StructType\Customer
     */
    public function setEmail($email = null)
    {
        // validation for constraint: string
        if (!is_null($email) && !is_string($email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($email, true), gettype($email)), __LINE__);
        }
        $this->email = $email;
        return $this;
    }
    /**
     * Get url value
     * @return string|null
     */
    public function getUrl()
    {
        return $this->url;
    }
    /**
     * Set url value
     * @param string $url
     * @return \StructType\Customer
     */
    public function setUrl($url = null)
    {
        // validation for constraint: string
        if (!is_null($url) && !is_string($url)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($url, true), gettype($url)), __LINE__);
        }
        $this->url = $url;
        return $this;
    }
    /**
     * Get defaultAddress value
     * @return string|null
     */
    public function getDefaultAddress()
    {
        return $this->defaultAddress;
    }
    /**
     * Set defaultAddress value
     * @param string $defaultAddress
     * @return \StructType\Customer
     */
    public function setDefaultAddress($defaultAddress = null)
    {
        // validation for constraint: string
        if (!is_null($defaultAddress) && !is_string($defaultAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($defaultAddress, true), gettype($defaultAddress)), __LINE__);
        }
        $this->defaultAddress = $defaultAddress;
        return $this;
    }
    /**
     * Get isInactive value
     * @return bool|null
     */
    public function getIsInactive()
    {
        return $this->isInactive;
    }
    /**
     * Set isInactive value
     * @param bool $isInactive
     * @return \StructType\Customer
     */
    public function setIsInactive($isInactive = null)
    {
        // validation for constraint: boolean
        if (!is_null($isInactive) && !is_bool($isInactive)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isInactive, true), gettype($isInactive)), __LINE__);
        }
        $this->isInactive = $isInactive;
        return $this;
    }
    /**
     * Get category value
     * @return \StructType\RecordRef|null
     */
    public function getCategory()
    {
        return $this->category;
    }
    /**
     * Set category value
     * @param \StructType\RecordRef $category
     * @return \StructType\Customer
     */
    public function setCategory(\StructType\RecordRef $category = null)
    {
        $this->category = $category;
        return $this;
    }
    /**
     * Get title value
     * @return string|null
     */
    public function getTitle()
    {
        return $this->title;
    }
    /**
     * Set title value
     * @param string $title
     * @return \StructType\Customer
     */
    public function setTitle($title = null)
    {
        // validation for constraint: string
        if (!is_null($title) && !is_string($title)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($title, true), gettype($title)), __LINE__);
        }
        $this->title = $title;
        return $this;
    }
    /**
     * Get printOnCheckAs value
     * @return string|null
     */
    public function getPrintOnCheckAs()
    {
        return $this->printOnCheckAs;
    }
    /**
     * Set printOnCheckAs value
     * @param string $printOnCheckAs
     * @return \StructType\Customer
     */
    public function setPrintOnCheckAs($printOnCheckAs = null)
    {
        // validation for constraint: string
        if (!is_null($printOnCheckAs) && !is_string($printOnCheckAs)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($printOnCheckAs, true), gettype($printOnCheckAs)), __LINE__);
        }
        $this->printOnCheckAs = $printOnCheckAs;
        return $this;
    }
    /**
     * Get altPhone value
     * @return string|null
     */
    public function getAltPhone()
    {
        return $this->altPhone;
    }
    /**
     * Set altPhone value
     * @param string $altPhone
     * @return \StructType\Customer
     */
    public function setAltPhone($altPhone = null)
    {
        // validation for constraint: string
        if (!is_null($altPhone) && !is_string($altPhone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($altPhone, true), gettype($altPhone)), __LINE__);
        }
        $this->altPhone = $altPhone;
        return $this;
    }
    /**
     * Get homePhone value
     * @return string|null
     */
    public function getHomePhone()
    {
        return $this->homePhone;
    }
    /**
     * Set homePhone value
     * @param string $homePhone
     * @return \StructType\Customer
     */
    public function setHomePhone($homePhone = null)
    {
        // validation for constraint: string
        if (!is_null($homePhone) && !is_string($homePhone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($homePhone, true), gettype($homePhone)), __LINE__);
        }
        $this->homePhone = $homePhone;
        return $this;
    }
    /**
     * Get mobilePhone value
     * @return string|null
     */
    public function getMobilePhone()
    {
        return $this->mobilePhone;
    }
    /**
     * Set mobilePhone value
     * @param string $mobilePhone
     * @return \StructType\Customer
     */
    public function setMobilePhone($mobilePhone = null)
    {
        // validation for constraint: string
        if (!is_null($mobilePhone) && !is_string($mobilePhone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($mobilePhone, true), gettype($mobilePhone)), __LINE__);
        }
        $this->mobilePhone = $mobilePhone;
        return $this;
    }
    /**
     * Get altEmail value
     * @return string|null
     */
    public function getAltEmail()
    {
        return $this->altEmail;
    }
    /**
     * Set altEmail value
     * @param string $altEmail
     * @return \StructType\Customer
     */
    public function setAltEmail($altEmail = null)
    {
        // validation for constraint: string
        if (!is_null($altEmail) && !is_string($altEmail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($altEmail, true), gettype($altEmail)), __LINE__);
        }
        $this->altEmail = $altEmail;
        return $this;
    }
    /**
     * Get language value
     * @return string|null
     */
    public function getLanguage()
    {
        return $this->language;
    }
    /**
     * Set language value
     * @uses \EnumType\Language::valueIsValid()
     * @uses \EnumType\Language::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $language
     * @return \StructType\Customer
     */
    public function setLanguage($language = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\Language::valueIsValid($language)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\Language', is_array($language) ? implode(', ', $language) : var_export($language, true), implode(', ', \EnumType\Language::getValidValues())), __LINE__);
        }
        $this->language = $language;
        return $this;
    }
    /**
     * Get comments value
     * @return string|null
     */
    public function getComments()
    {
        return $this->comments;
    }
    /**
     * Set comments value
     * @param string $comments
     * @return \StructType\Customer
     */
    public function setComments($comments = null)
    {
        // validation for constraint: string
        if (!is_null($comments) && !is_string($comments)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($comments, true), gettype($comments)), __LINE__);
        }
        $this->comments = $comments;
        return $this;
    }
    /**
     * Get numberFormat value
     * @return string|null
     */
    public function getNumberFormat()
    {
        return $this->numberFormat;
    }
    /**
     * Set numberFormat value
     * @uses \EnumType\CustomerNumberFormat::valueIsValid()
     * @uses \EnumType\CustomerNumberFormat::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $numberFormat
     * @return \StructType\Customer
     */
    public function setNumberFormat($numberFormat = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomerNumberFormat::valueIsValid($numberFormat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomerNumberFormat', is_array($numberFormat) ? implode(', ', $numberFormat) : var_export($numberFormat, true), implode(', ', \EnumType\CustomerNumberFormat::getValidValues())), __LINE__);
        }
        $this->numberFormat = $numberFormat;
        return $this;
    }
    /**
     * Get negativeNumberFormat value
     * @return string|null
     */
    public function getNegativeNumberFormat()
    {
        return $this->negativeNumberFormat;
    }
    /**
     * Set negativeNumberFormat value
     * @uses \EnumType\CustomerNegativeNumberFormat::valueIsValid()
     * @uses \EnumType\CustomerNegativeNumberFormat::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $negativeNumberFormat
     * @return \StructType\Customer
     */
    public function setNegativeNumberFormat($negativeNumberFormat = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomerNegativeNumberFormat::valueIsValid($negativeNumberFormat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomerNegativeNumberFormat', is_array($negativeNumberFormat) ? implode(', ', $negativeNumberFormat) : var_export($negativeNumberFormat, true), implode(', ', \EnumType\CustomerNegativeNumberFormat::getValidValues())), __LINE__);
        }
        $this->negativeNumberFormat = $negativeNumberFormat;
        return $this;
    }
    /**
     * Get dateCreated value
     * @return string|null
     */
    public function getDateCreated()
    {
        return $this->dateCreated;
    }
    /**
     * Set dateCreated value
     * @param string $dateCreated
     * @return \StructType\Customer
     */
    public function setDateCreated($dateCreated = null)
    {
        // validation for constraint: string
        if (!is_null($dateCreated) && !is_string($dateCreated)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dateCreated, true), gettype($dateCreated)), __LINE__);
        }
        $this->dateCreated = $dateCreated;
        return $this;
    }
    /**
     * Get image value
     * @return \StructType\RecordRef|null
     */
    public function getImage()
    {
        return $this->image;
    }
    /**
     * Set image value
     * @param \StructType\RecordRef $image
     * @return \StructType\Customer
     */
    public function setImage(\StructType\RecordRef $image = null)
    {
        $this->image = $image;
        return $this;
    }
    /**
     * Get emailPreference value
     * @return string|null
     */
    public function getEmailPreference()
    {
        return $this->emailPreference;
    }
    /**
     * Set emailPreference value
     * @uses \EnumType\EmailPreference::valueIsValid()
     * @uses \EnumType\EmailPreference::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $emailPreference
     * @return \StructType\Customer
     */
    public function setEmailPreference($emailPreference = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\EmailPreference::valueIsValid($emailPreference)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\EmailPreference', is_array($emailPreference) ? implode(', ', $emailPreference) : var_export($emailPreference, true), implode(', ', \EnumType\EmailPreference::getValidValues())), __LINE__);
        }
        $this->emailPreference = $emailPreference;
        return $this;
    }
    /**
     * Get subsidiary value
     * @return \StructType\RecordRef|null
     */
    public function getSubsidiary()
    {
        return $this->subsidiary;
    }
    /**
     * Set subsidiary value
     * @param \StructType\RecordRef $subsidiary
     * @return \StructType\Customer
     */
    public function setSubsidiary(\StructType\RecordRef $subsidiary = null)
    {
        $this->subsidiary = $subsidiary;
        return $this;
    }
    /**
     * Get representingSubsidiary value
     * @return \StructType\RecordRef|null
     */
    public function getRepresentingSubsidiary()
    {
        return $this->representingSubsidiary;
    }
    /**
     * Set representingSubsidiary value
     * @param \StructType\RecordRef $representingSubsidiary
     * @return \StructType\Customer
     */
    public function setRepresentingSubsidiary(\StructType\RecordRef $representingSubsidiary = null)
    {
        $this->representingSubsidiary = $representingSubsidiary;
        return $this;
    }
    /**
     * Get salesRep value
     * @return \StructType\RecordRef|null
     */
    public function getSalesRep()
    {
        return $this->salesRep;
    }
    /**
     * Set salesRep value
     * @param \StructType\RecordRef $salesRep
     * @return \StructType\Customer
     */
    public function setSalesRep(\StructType\RecordRef $salesRep = null)
    {
        $this->salesRep = $salesRep;
        return $this;
    }
    /**
     * Get territory value
     * @return \StructType\RecordRef|null
     */
    public function getTerritory()
    {
        return $this->territory;
    }
    /**
     * Set territory value
     * @param \StructType\RecordRef $territory
     * @return \StructType\Customer
     */
    public function setTerritory(\StructType\RecordRef $territory = null)
    {
        $this->territory = $territory;
        return $this;
    }
    /**
     * Get contribPct value
     * @return string|null
     */
    public function getContribPct()
    {
        return $this->contribPct;
    }
    /**
     * Set contribPct value
     * @param string $contribPct
     * @return \StructType\Customer
     */
    public function setContribPct($contribPct = null)
    {
        // validation for constraint: string
        if (!is_null($contribPct) && !is_string($contribPct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contribPct, true), gettype($contribPct)), __LINE__);
        }
        $this->contribPct = $contribPct;
        return $this;
    }
    /**
     * Get partner value
     * @return \StructType\RecordRef|null
     */
    public function getPartner()
    {
        return $this->partner;
    }
    /**
     * Set partner value
     * @param \StructType\RecordRef $partner
     * @return \StructType\Customer
     */
    public function setPartner(\StructType\RecordRef $partner = null)
    {
        $this->partner = $partner;
        return $this;
    }
    /**
     * Get salesGroup value
     * @return \StructType\RecordRef|null
     */
    public function getSalesGroup()
    {
        return $this->salesGroup;
    }
    /**
     * Set salesGroup value
     * @param \StructType\RecordRef $salesGroup
     * @return \StructType\Customer
     */
    public function setSalesGroup(\StructType\RecordRef $salesGroup = null)
    {
        $this->salesGroup = $salesGroup;
        return $this;
    }
    /**
     * Get vatRegNumber value
     * @return string|null
     */
    public function getVatRegNumber()
    {
        return $this->vatRegNumber;
    }
    /**
     * Set vatRegNumber value
     * @param string $vatRegNumber
     * @return \StructType\Customer
     */
    public function setVatRegNumber($vatRegNumber = null)
    {
        // validation for constraint: string
        if (!is_null($vatRegNumber) && !is_string($vatRegNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($vatRegNumber, true), gettype($vatRegNumber)), __LINE__);
        }
        $this->vatRegNumber = $vatRegNumber;
        return $this;
    }
    /**
     * Get accountNumber value
     * @return string|null
     */
    public function getAccountNumber()
    {
        return $this->accountNumber;
    }
    /**
     * Set accountNumber value
     * @param string $accountNumber
     * @return \StructType\Customer
     */
    public function setAccountNumber($accountNumber = null)
    {
        // validation for constraint: string
        if (!is_null($accountNumber) && !is_string($accountNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($accountNumber, true), gettype($accountNumber)), __LINE__);
        }
        $this->accountNumber = $accountNumber;
        return $this;
    }
    /**
     * Get taxExempt value
     * @return bool|null
     */
    public function getTaxExempt()
    {
        return $this->taxExempt;
    }
    /**
     * Set taxExempt value
     * @param bool $taxExempt
     * @return \StructType\Customer
     */
    public function setTaxExempt($taxExempt = null)
    {
        // validation for constraint: boolean
        if (!is_null($taxExempt) && !is_bool($taxExempt)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($taxExempt, true), gettype($taxExempt)), __LINE__);
        }
        $this->taxExempt = $taxExempt;
        return $this;
    }
    /**
     * Get terms value
     * @return \StructType\RecordRef|null
     */
    public function getTerms()
    {
        return $this->terms;
    }
    /**
     * Set terms value
     * @param \StructType\RecordRef $terms
     * @return \StructType\Customer
     */
    public function setTerms(\StructType\RecordRef $terms = null)
    {
        $this->terms = $terms;
        return $this;
    }
    /**
     * Get creditLimit value
     * @return float|null
     */
    public function getCreditLimit()
    {
        return $this->creditLimit;
    }
    /**
     * Set creditLimit value
     * @param float $creditLimit
     * @return \StructType\Customer
     */
    public function setCreditLimit($creditLimit = null)
    {
        // validation for constraint: float
        if (!is_null($creditLimit) && !(is_float($creditLimit) || is_numeric($creditLimit))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($creditLimit, true), gettype($creditLimit)), __LINE__);
        }
        $this->creditLimit = $creditLimit;
        return $this;
    }
    /**
     * Get creditHoldOverride value
     * @return string|null
     */
    public function getCreditHoldOverride()
    {
        return $this->creditHoldOverride;
    }
    /**
     * Set creditHoldOverride value
     * @uses \EnumType\CustomerCreditHoldOverride::valueIsValid()
     * @uses \EnumType\CustomerCreditHoldOverride::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $creditHoldOverride
     * @return \StructType\Customer
     */
    public function setCreditHoldOverride($creditHoldOverride = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomerCreditHoldOverride::valueIsValid($creditHoldOverride)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomerCreditHoldOverride', is_array($creditHoldOverride) ? implode(', ', $creditHoldOverride) : var_export($creditHoldOverride, true), implode(', ', \EnumType\CustomerCreditHoldOverride::getValidValues())), __LINE__);
        }
        $this->creditHoldOverride = $creditHoldOverride;
        return $this;
    }
    /**
     * Get monthlyClosing value
     * @return string|null
     */
    public function getMonthlyClosing()
    {
        return $this->monthlyClosing;
    }
    /**
     * Set monthlyClosing value
     * @uses \EnumType\CustomerMonthlyClosing::valueIsValid()
     * @uses \EnumType\CustomerMonthlyClosing::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $monthlyClosing
     * @return \StructType\Customer
     */
    public function setMonthlyClosing($monthlyClosing = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomerMonthlyClosing::valueIsValid($monthlyClosing)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomerMonthlyClosing', is_array($monthlyClosing) ? implode(', ', $monthlyClosing) : var_export($monthlyClosing, true), implode(', ', \EnumType\CustomerMonthlyClosing::getValidValues())), __LINE__);
        }
        $this->monthlyClosing = $monthlyClosing;
        return $this;
    }
    /**
     * Get overrideCurrencyFormat value
     * @return bool|null
     */
    public function getOverrideCurrencyFormat()
    {
        return $this->overrideCurrencyFormat;
    }
    /**
     * Set overrideCurrencyFormat value
     * @param bool $overrideCurrencyFormat
     * @return \StructType\Customer
     */
    public function setOverrideCurrencyFormat($overrideCurrencyFormat = null)
    {
        // validation for constraint: boolean
        if (!is_null($overrideCurrencyFormat) && !is_bool($overrideCurrencyFormat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($overrideCurrencyFormat, true), gettype($overrideCurrencyFormat)), __LINE__);
        }
        $this->overrideCurrencyFormat = $overrideCurrencyFormat;
        return $this;
    }
    /**
     * Get displaySymbol value
     * @return string|null
     */
    public function getDisplaySymbol()
    {
        return $this->displaySymbol;
    }
    /**
     * Set displaySymbol value
     * @param string $displaySymbol
     * @return \StructType\Customer
     */
    public function setDisplaySymbol($displaySymbol = null)
    {
        // validation for constraint: string
        if (!is_null($displaySymbol) && !is_string($displaySymbol)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($displaySymbol, true), gettype($displaySymbol)), __LINE__);
        }
        $this->displaySymbol = $displaySymbol;
        return $this;
    }
    /**
     * Get symbolPlacement value
     * @return string|null
     */
    public function getSymbolPlacement()
    {
        return $this->symbolPlacement;
    }
    /**
     * Set symbolPlacement value
     * @uses \EnumType\CurrencySymbolPlacement::valueIsValid()
     * @uses \EnumType\CurrencySymbolPlacement::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $symbolPlacement
     * @return \StructType\Customer
     */
    public function setSymbolPlacement($symbolPlacement = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CurrencySymbolPlacement::valueIsValid($symbolPlacement)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CurrencySymbolPlacement', is_array($symbolPlacement) ? implode(', ', $symbolPlacement) : var_export($symbolPlacement, true), implode(', ', \EnumType\CurrencySymbolPlacement::getValidValues())), __LINE__);
        }
        $this->symbolPlacement = $symbolPlacement;
        return $this;
    }
    /**
     * Get balance value
     * @return float|null
     */
    public function getBalance()
    {
        return $this->balance;
    }
    /**
     * Set balance value
     * @param float $balance
     * @return \StructType\Customer
     */
    public function setBalance($balance = null)
    {
        // validation for constraint: float
        if (!is_null($balance) && !(is_float($balance) || is_numeric($balance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($balance, true), gettype($balance)), __LINE__);
        }
        $this->balance = $balance;
        return $this;
    }
    /**
     * Get overdueBalance value
     * @return float|null
     */
    public function getOverdueBalance()
    {
        return $this->overdueBalance;
    }
    /**
     * Set overdueBalance value
     * @param float $overdueBalance
     * @return \StructType\Customer
     */
    public function setOverdueBalance($overdueBalance = null)
    {
        // validation for constraint: float
        if (!is_null($overdueBalance) && !(is_float($overdueBalance) || is_numeric($overdueBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($overdueBalance, true), gettype($overdueBalance)), __LINE__);
        }
        $this->overdueBalance = $overdueBalance;
        return $this;
    }
    /**
     * Get daysOverdue value
     * @return int|null
     */
    public function getDaysOverdue()
    {
        return $this->daysOverdue;
    }
    /**
     * Set daysOverdue value
     * @param int $daysOverdue
     * @return \StructType\Customer
     */
    public function setDaysOverdue($daysOverdue = null)
    {
        // validation for constraint: int
        if (!is_null($daysOverdue) && !(is_int($daysOverdue) || ctype_digit($daysOverdue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($daysOverdue, true), gettype($daysOverdue)), __LINE__);
        }
        $this->daysOverdue = $daysOverdue;
        return $this;
    }
    /**
     * Get unbilledOrders value
     * @return float|null
     */
    public function getUnbilledOrders()
    {
        return $this->unbilledOrders;
    }
    /**
     * Set unbilledOrders value
     * @param float $unbilledOrders
     * @return \StructType\Customer
     */
    public function setUnbilledOrders($unbilledOrders = null)
    {
        // validation for constraint: float
        if (!is_null($unbilledOrders) && !(is_float($unbilledOrders) || is_numeric($unbilledOrders))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($unbilledOrders, true), gettype($unbilledOrders)), __LINE__);
        }
        $this->unbilledOrders = $unbilledOrders;
        return $this;
    }
    /**
     * Get consolUnbilledOrders value
     * @return float|null
     */
    public function getConsolUnbilledOrders()
    {
        return $this->consolUnbilledOrders;
    }
    /**
     * Set consolUnbilledOrders value
     * @param float $consolUnbilledOrders
     * @return \StructType\Customer
     */
    public function setConsolUnbilledOrders($consolUnbilledOrders = null)
    {
        // validation for constraint: float
        if (!is_null($consolUnbilledOrders) && !(is_float($consolUnbilledOrders) || is_numeric($consolUnbilledOrders))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolUnbilledOrders, true), gettype($consolUnbilledOrders)), __LINE__);
        }
        $this->consolUnbilledOrders = $consolUnbilledOrders;
        return $this;
    }
    /**
     * Get consolOverdueBalance value
     * @return float|null
     */
    public function getConsolOverdueBalance()
    {
        return $this->consolOverdueBalance;
    }
    /**
     * Set consolOverdueBalance value
     * @param float $consolOverdueBalance
     * @return \StructType\Customer
     */
    public function setConsolOverdueBalance($consolOverdueBalance = null)
    {
        // validation for constraint: float
        if (!is_null($consolOverdueBalance) && !(is_float($consolOverdueBalance) || is_numeric($consolOverdueBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolOverdueBalance, true), gettype($consolOverdueBalance)), __LINE__);
        }
        $this->consolOverdueBalance = $consolOverdueBalance;
        return $this;
    }
    /**
     * Get consolDepositBalance value
     * @return float|null
     */
    public function getConsolDepositBalance()
    {
        return $this->consolDepositBalance;
    }
    /**
     * Set consolDepositBalance value
     * @param float $consolDepositBalance
     * @return \StructType\Customer
     */
    public function setConsolDepositBalance($consolDepositBalance = null)
    {
        // validation for constraint: float
        if (!is_null($consolDepositBalance) && !(is_float($consolDepositBalance) || is_numeric($consolDepositBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolDepositBalance, true), gettype($consolDepositBalance)), __LINE__);
        }
        $this->consolDepositBalance = $consolDepositBalance;
        return $this;
    }
    /**
     * Get consolBalance value
     * @return float|null
     */
    public function getConsolBalance()
    {
        return $this->consolBalance;
    }
    /**
     * Set consolBalance value
     * @param float $consolBalance
     * @return \StructType\Customer
     */
    public function setConsolBalance($consolBalance = null)
    {
        // validation for constraint: float
        if (!is_null($consolBalance) && !(is_float($consolBalance) || is_numeric($consolBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolBalance, true), gettype($consolBalance)), __LINE__);
        }
        $this->consolBalance = $consolBalance;
        return $this;
    }
    /**
     * Get consolAging value
     * @return float|null
     */
    public function getConsolAging()
    {
        return $this->consolAging;
    }
    /**
     * Set consolAging value
     * @param float $consolAging
     * @return \StructType\Customer
     */
    public function setConsolAging($consolAging = null)
    {
        // validation for constraint: float
        if (!is_null($consolAging) && !(is_float($consolAging) || is_numeric($consolAging))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolAging, true), gettype($consolAging)), __LINE__);
        }
        $this->consolAging = $consolAging;
        return $this;
    }
    /**
     * Get consolAging1 value
     * @return float|null
     */
    public function getConsolAging1()
    {
        return $this->consolAging1;
    }
    /**
     * Set consolAging1 value
     * @param float $consolAging1
     * @return \StructType\Customer
     */
    public function setConsolAging1($consolAging1 = null)
    {
        // validation for constraint: float
        if (!is_null($consolAging1) && !(is_float($consolAging1) || is_numeric($consolAging1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolAging1, true), gettype($consolAging1)), __LINE__);
        }
        $this->consolAging1 = $consolAging1;
        return $this;
    }
    /**
     * Get consolAging2 value
     * @return float|null
     */
    public function getConsolAging2()
    {
        return $this->consolAging2;
    }
    /**
     * Set consolAging2 value
     * @param float $consolAging2
     * @return \StructType\Customer
     */
    public function setConsolAging2($consolAging2 = null)
    {
        // validation for constraint: float
        if (!is_null($consolAging2) && !(is_float($consolAging2) || is_numeric($consolAging2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolAging2, true), gettype($consolAging2)), __LINE__);
        }
        $this->consolAging2 = $consolAging2;
        return $this;
    }
    /**
     * Get consolAging3 value
     * @return float|null
     */
    public function getConsolAging3()
    {
        return $this->consolAging3;
    }
    /**
     * Set consolAging3 value
     * @param float $consolAging3
     * @return \StructType\Customer
     */
    public function setConsolAging3($consolAging3 = null)
    {
        // validation for constraint: float
        if (!is_null($consolAging3) && !(is_float($consolAging3) || is_numeric($consolAging3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolAging3, true), gettype($consolAging3)), __LINE__);
        }
        $this->consolAging3 = $consolAging3;
        return $this;
    }
    /**
     * Get consolAging4 value
     * @return float|null
     */
    public function getConsolAging4()
    {
        return $this->consolAging4;
    }
    /**
     * Set consolAging4 value
     * @param float $consolAging4
     * @return \StructType\Customer
     */
    public function setConsolAging4($consolAging4 = null)
    {
        // validation for constraint: float
        if (!is_null($consolAging4) && !(is_float($consolAging4) || is_numeric($consolAging4))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consolAging4, true), gettype($consolAging4)), __LINE__);
        }
        $this->consolAging4 = $consolAging4;
        return $this;
    }
    /**
     * Get consolDaysOverdue value
     * @return int|null
     */
    public function getConsolDaysOverdue()
    {
        return $this->consolDaysOverdue;
    }
    /**
     * Set consolDaysOverdue value
     * @param int $consolDaysOverdue
     * @return \StructType\Customer
     */
    public function setConsolDaysOverdue($consolDaysOverdue = null)
    {
        // validation for constraint: int
        if (!is_null($consolDaysOverdue) && !(is_int($consolDaysOverdue) || ctype_digit($consolDaysOverdue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($consolDaysOverdue, true), gettype($consolDaysOverdue)), __LINE__);
        }
        $this->consolDaysOverdue = $consolDaysOverdue;
        return $this;
    }
    /**
     * Get priceLevel value
     * @return \StructType\RecordRef|null
     */
    public function getPriceLevel()
    {
        return $this->priceLevel;
    }
    /**
     * Set priceLevel value
     * @param \StructType\RecordRef $priceLevel
     * @return \StructType\Customer
     */
    public function setPriceLevel(\StructType\RecordRef $priceLevel = null)
    {
        $this->priceLevel = $priceLevel;
        return $this;
    }
    /**
     * Get currency value
     * @return \StructType\RecordRef|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * Set currency value
     * @param \StructType\RecordRef $currency
     * @return \StructType\Customer
     */
    public function setCurrency(\StructType\RecordRef $currency = null)
    {
        $this->currency = $currency;
        return $this;
    }
    /**
     * Get prefCCProcessor value
     * @return \StructType\RecordRef|null
     */
    public function getPrefCCProcessor()
    {
        return $this->prefCCProcessor;
    }
    /**
     * Set prefCCProcessor value
     * @param \StructType\RecordRef $prefCCProcessor
     * @return \StructType\Customer
     */
    public function setPrefCCProcessor(\StructType\RecordRef $prefCCProcessor = null)
    {
        $this->prefCCProcessor = $prefCCProcessor;
        return $this;
    }
    /**
     * Get depositBalance value
     * @return float|null
     */
    public function getDepositBalance()
    {
        return $this->depositBalance;
    }
    /**
     * Set depositBalance value
     * @param float $depositBalance
     * @return \StructType\Customer
     */
    public function setDepositBalance($depositBalance = null)
    {
        // validation for constraint: float
        if (!is_null($depositBalance) && !(is_float($depositBalance) || is_numeric($depositBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($depositBalance, true), gettype($depositBalance)), __LINE__);
        }
        $this->depositBalance = $depositBalance;
        return $this;
    }
    /**
     * Get shipComplete value
     * @return bool|null
     */
    public function getShipComplete()
    {
        return $this->shipComplete;
    }
    /**
     * Set shipComplete value
     * @param bool $shipComplete
     * @return \StructType\Customer
     */
    public function setShipComplete($shipComplete = null)
    {
        // validation for constraint: boolean
        if (!is_null($shipComplete) && !is_bool($shipComplete)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($shipComplete, true), gettype($shipComplete)), __LINE__);
        }
        $this->shipComplete = $shipComplete;
        return $this;
    }
    /**
     * Get taxable value
     * @return bool|null
     */
    public function getTaxable()
    {
        return $this->taxable;
    }
    /**
     * Set taxable value
     * @param bool $taxable
     * @return \StructType\Customer
     */
    public function setTaxable($taxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($taxable) && !is_bool($taxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($taxable, true), gettype($taxable)), __LINE__);
        }
        $this->taxable = $taxable;
        return $this;
    }
    /**
     * Get taxItem value
     * @return \StructType\RecordRef|null
     */
    public function getTaxItem()
    {
        return $this->taxItem;
    }
    /**
     * Set taxItem value
     * @param \StructType\RecordRef $taxItem
     * @return \StructType\Customer
     */
    public function setTaxItem(\StructType\RecordRef $taxItem = null)
    {
        $this->taxItem = $taxItem;
        return $this;
    }
    /**
     * Get resaleNumber value
     * @return string|null
     */
    public function getResaleNumber()
    {
        return $this->resaleNumber;
    }
    /**
     * Set resaleNumber value
     * @param string $resaleNumber
     * @return \StructType\Customer
     */
    public function setResaleNumber($resaleNumber = null)
    {
        // validation for constraint: string
        if (!is_null($resaleNumber) && !is_string($resaleNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($resaleNumber, true), gettype($resaleNumber)), __LINE__);
        }
        $this->resaleNumber = $resaleNumber;
        return $this;
    }
    /**
     * Get aging value
     * @return float|null
     */
    public function getAging()
    {
        return $this->aging;
    }
    /**
     * Set aging value
     * @param float $aging
     * @return \StructType\Customer
     */
    public function setAging($aging = null)
    {
        // validation for constraint: float
        if (!is_null($aging) && !(is_float($aging) || is_numeric($aging))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($aging, true), gettype($aging)), __LINE__);
        }
        $this->aging = $aging;
        return $this;
    }
    /**
     * Get aging1 value
     * @return float|null
     */
    public function getAging1()
    {
        return $this->aging1;
    }
    /**
     * Set aging1 value
     * @param float $aging1
     * @return \StructType\Customer
     */
    public function setAging1($aging1 = null)
    {
        // validation for constraint: float
        if (!is_null($aging1) && !(is_float($aging1) || is_numeric($aging1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($aging1, true), gettype($aging1)), __LINE__);
        }
        $this->aging1 = $aging1;
        return $this;
    }
    /**
     * Get aging2 value
     * @return float|null
     */
    public function getAging2()
    {
        return $this->aging2;
    }
    /**
     * Set aging2 value
     * @param float $aging2
     * @return \StructType\Customer
     */
    public function setAging2($aging2 = null)
    {
        // validation for constraint: float
        if (!is_null($aging2) && !(is_float($aging2) || is_numeric($aging2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($aging2, true), gettype($aging2)), __LINE__);
        }
        $this->aging2 = $aging2;
        return $this;
    }
    /**
     * Get aging3 value
     * @return float|null
     */
    public function getAging3()
    {
        return $this->aging3;
    }
    /**
     * Set aging3 value
     * @param float $aging3
     * @return \StructType\Customer
     */
    public function setAging3($aging3 = null)
    {
        // validation for constraint: float
        if (!is_null($aging3) && !(is_float($aging3) || is_numeric($aging3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($aging3, true), gettype($aging3)), __LINE__);
        }
        $this->aging3 = $aging3;
        return $this;
    }
    /**
     * Get aging4 value
     * @return float|null
     */
    public function getAging4()
    {
        return $this->aging4;
    }
    /**
     * Set aging4 value
     * @param float $aging4
     * @return \StructType\Customer
     */
    public function setAging4($aging4 = null)
    {
        // validation for constraint: float
        if (!is_null($aging4) && !(is_float($aging4) || is_numeric($aging4))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($aging4, true), gettype($aging4)), __LINE__);
        }
        $this->aging4 = $aging4;
        return $this;
    }
    /**
     * Get startDate value
     * @return string|null
     */
    public function getStartDate()
    {
        return $this->startDate;
    }
    /**
     * Set startDate value
     * @param string $startDate
     * @return \StructType\Customer
     */
    public function setStartDate($startDate = null)
    {
        // validation for constraint: string
        if (!is_null($startDate) && !is_string($startDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($startDate, true), gettype($startDate)), __LINE__);
        }
        $this->startDate = $startDate;
        return $this;
    }
    /**
     * Get alcoholRecipientType value
     * @return string|null
     */
    public function getAlcoholRecipientType()
    {
        return $this->alcoholRecipientType;
    }
    /**
     * Set alcoholRecipientType value
     * @uses \EnumType\AlcoholRecipientType::valueIsValid()
     * @uses \EnumType\AlcoholRecipientType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $alcoholRecipientType
     * @return \StructType\Customer
     */
    public function setAlcoholRecipientType($alcoholRecipientType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\AlcoholRecipientType::valueIsValid($alcoholRecipientType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\AlcoholRecipientType', is_array($alcoholRecipientType) ? implode(', ', $alcoholRecipientType) : var_export($alcoholRecipientType, true), implode(', ', \EnumType\AlcoholRecipientType::getValidValues())), __LINE__);
        }
        $this->alcoholRecipientType = $alcoholRecipientType;
        return $this;
    }
    /**
     * Get endDate value
     * @return string|null
     */
    public function getEndDate()
    {
        return $this->endDate;
    }
    /**
     * Set endDate value
     * @param string $endDate
     * @return \StructType\Customer
     */
    public function setEndDate($endDate = null)
    {
        // validation for constraint: string
        if (!is_null($endDate) && !is_string($endDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($endDate, true), gettype($endDate)), __LINE__);
        }
        $this->endDate = $endDate;
        return $this;
    }
    /**
     * Get reminderDays value
     * @return int|null
     */
    public function getReminderDays()
    {
        return $this->reminderDays;
    }
    /**
     * Set reminderDays value
     * @param int $reminderDays
     * @return \StructType\Customer
     */
    public function setReminderDays($reminderDays = null)
    {
        // validation for constraint: int
        if (!is_null($reminderDays) && !(is_int($reminderDays) || ctype_digit($reminderDays))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($reminderDays, true), gettype($reminderDays)), __LINE__);
        }
        $this->reminderDays = $reminderDays;
        return $this;
    }
    /**
     * Get shippingItem value
     * @return \StructType\RecordRef|null
     */
    public function getShippingItem()
    {
        return $this->shippingItem;
    }
    /**
     * Set shippingItem value
     * @param \StructType\RecordRef $shippingItem
     * @return \StructType\Customer
     */
    public function setShippingItem(\StructType\RecordRef $shippingItem = null)
    {
        $this->shippingItem = $shippingItem;
        return $this;
    }
    /**
     * Get thirdPartyAcct value
     * @return string|null
     */
    public function getThirdPartyAcct()
    {
        return $this->thirdPartyAcct;
    }
    /**
     * Set thirdPartyAcct value
     * @param string $thirdPartyAcct
     * @return \StructType\Customer
     */
    public function setThirdPartyAcct($thirdPartyAcct = null)
    {
        // validation for constraint: string
        if (!is_null($thirdPartyAcct) && !is_string($thirdPartyAcct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($thirdPartyAcct, true), gettype($thirdPartyAcct)), __LINE__);
        }
        $this->thirdPartyAcct = $thirdPartyAcct;
        return $this;
    }
    /**
     * Get thirdPartyZipcode value
     * @return string|null
     */
    public function getThirdPartyZipcode()
    {
        return $this->thirdPartyZipcode;
    }
    /**
     * Set thirdPartyZipcode value
     * @param string $thirdPartyZipcode
     * @return \StructType\Customer
     */
    public function setThirdPartyZipcode($thirdPartyZipcode = null)
    {
        // validation for constraint: string
        if (!is_null($thirdPartyZipcode) && !is_string($thirdPartyZipcode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($thirdPartyZipcode, true), gettype($thirdPartyZipcode)), __LINE__);
        }
        $this->thirdPartyZipcode = $thirdPartyZipcode;
        return $this;
    }
    /**
     * Get thirdPartyCountry value
     * @return string|null
     */
    public function getThirdPartyCountry()
    {
        return $this->thirdPartyCountry;
    }
    /**
     * Set thirdPartyCountry value
     * @uses \EnumType\Country::valueIsValid()
     * @uses \EnumType\Country::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $thirdPartyCountry
     * @return \StructType\Customer
     */
    public function setThirdPartyCountry($thirdPartyCountry = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\Country::valueIsValid($thirdPartyCountry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\Country', is_array($thirdPartyCountry) ? implode(', ', $thirdPartyCountry) : var_export($thirdPartyCountry, true), implode(', ', \EnumType\Country::getValidValues())), __LINE__);
        }
        $this->thirdPartyCountry = $thirdPartyCountry;
        return $this;
    }
    /**
     * Get giveAccess value
     * @return bool|null
     */
    public function getGiveAccess()
    {
        return $this->giveAccess;
    }
    /**
     * Set giveAccess value
     * @param bool $giveAccess
     * @return \StructType\Customer
     */
    public function setGiveAccess($giveAccess = null)
    {
        // validation for constraint: boolean
        if (!is_null($giveAccess) && !is_bool($giveAccess)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($giveAccess, true), gettype($giveAccess)), __LINE__);
        }
        $this->giveAccess = $giveAccess;
        return $this;
    }
    /**
     * Get estimatedBudget value
     * @return float|null
     */
    public function getEstimatedBudget()
    {
        return $this->estimatedBudget;
    }
    /**
     * Set estimatedBudget value
     * @param float $estimatedBudget
     * @return \StructType\Customer
     */
    public function setEstimatedBudget($estimatedBudget = null)
    {
        // validation for constraint: float
        if (!is_null($estimatedBudget) && !(is_float($estimatedBudget) || is_numeric($estimatedBudget))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($estimatedBudget, true), gettype($estimatedBudget)), __LINE__);
        }
        $this->estimatedBudget = $estimatedBudget;
        return $this;
    }
    /**
     * Get accessRole value
     * @return \StructType\RecordRef|null
     */
    public function getAccessRole()
    {
        return $this->accessRole;
    }
    /**
     * Set accessRole value
     * @param \StructType\RecordRef $accessRole
     * @return \StructType\Customer
     */
    public function setAccessRole(\StructType\RecordRef $accessRole = null)
    {
        $this->accessRole = $accessRole;
        return $this;
    }
    /**
     * Get sendEmail value
     * @return bool|null
     */
    public function getSendEmail()
    {
        return $this->sendEmail;
    }
    /**
     * Set sendEmail value
     * @param bool $sendEmail
     * @return \StructType\Customer
     */
    public function setSendEmail($sendEmail = null)
    {
        // validation for constraint: boolean
        if (!is_null($sendEmail) && !is_bool($sendEmail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($sendEmail, true), gettype($sendEmail)), __LINE__);
        }
        $this->sendEmail = $sendEmail;
        return $this;
    }
    /**
     * Get assignedWebSite value
     * @return \StructType\RecordRef|null
     */
    public function getAssignedWebSite()
    {
        return $this->assignedWebSite;
    }
    /**
     * Set assignedWebSite value
     * @param \StructType\RecordRef $assignedWebSite
     * @return \StructType\Customer
     */
    public function setAssignedWebSite(\StructType\RecordRef $assignedWebSite = null)
    {
        $this->assignedWebSite = $assignedWebSite;
        return $this;
    }
    /**
     * Get password value
     * @return string|null
     */
    public function getPassword()
    {
        return $this->password;
    }
    /**
     * Set password value
     * @param string $password
     * @return \StructType\Customer
     */
    public function setPassword($password = null)
    {
        // validation for constraint: string
        if (!is_null($password) && !is_string($password)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($password, true), gettype($password)), __LINE__);
        }
        $this->password = $password;
        return $this;
    }
    /**
     * Get password2 value
     * @return string|null
     */
    public function getPassword2()
    {
        return $this->password2;
    }
    /**
     * Set password2 value
     * @param string $password2
     * @return \StructType\Customer
     */
    public function setPassword2($password2 = null)
    {
        // validation for constraint: string
        if (!is_null($password2) && !is_string($password2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($password2, true), gettype($password2)), __LINE__);
        }
        $this->password2 = $password2;
        return $this;
    }
    /**
     * Get requirePwdChange value
     * @return bool|null
     */
    public function getRequirePwdChange()
    {
        return $this->requirePwdChange;
    }
    /**
     * Set requirePwdChange value
     * @param bool $requirePwdChange
     * @return \StructType\Customer
     */
    public function setRequirePwdChange($requirePwdChange = null)
    {
        // validation for constraint: boolean
        if (!is_null($requirePwdChange) && !is_bool($requirePwdChange)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($requirePwdChange, true), gettype($requirePwdChange)), __LINE__);
        }
        $this->requirePwdChange = $requirePwdChange;
        return $this;
    }
    /**
     * Get campaignCategory value
     * @return \StructType\RecordRef|null
     */
    public function getCampaignCategory()
    {
        return $this->campaignCategory;
    }
    /**
     * Set campaignCategory value
     * @param \StructType\RecordRef $campaignCategory
     * @return \StructType\Customer
     */
    public function setCampaignCategory(\StructType\RecordRef $campaignCategory = null)
    {
        $this->campaignCategory = $campaignCategory;
        return $this;
    }
    /**
     * Get sourceWebSite value
     * @return \StructType\RecordRef|null
     */
    public function getSourceWebSite()
    {
        return $this->sourceWebSite;
    }
    /**
     * Set sourceWebSite value
     * @param \StructType\RecordRef $sourceWebSite
     * @return \StructType\Customer
     */
    public function setSourceWebSite(\StructType\RecordRef $sourceWebSite = null)
    {
        $this->sourceWebSite = $sourceWebSite;
        return $this;
    }
    /**
     * Get leadSource value
     * @return \StructType\RecordRef|null
     */
    public function getLeadSource()
    {
        return $this->leadSource;
    }
    /**
     * Set leadSource value
     * @param \StructType\RecordRef $leadSource
     * @return \StructType\Customer
     */
    public function setLeadSource(\StructType\RecordRef $leadSource = null)
    {
        $this->leadSource = $leadSource;
        return $this;
    }
    /**
     * Get receivablesAccount value
     * @return \StructType\RecordRef|null
     */
    public function getReceivablesAccount()
    {
        return $this->receivablesAccount;
    }
    /**
     * Set receivablesAccount value
     * @param \StructType\RecordRef $receivablesAccount
     * @return \StructType\Customer
     */
    public function setReceivablesAccount(\StructType\RecordRef $receivablesAccount = null)
    {
        $this->receivablesAccount = $receivablesAccount;
        return $this;
    }
    /**
     * Get drAccount value
     * @return \StructType\RecordRef|null
     */
    public function getDrAccount()
    {
        return $this->drAccount;
    }
    /**
     * Set drAccount value
     * @param \StructType\RecordRef $drAccount
     * @return \StructType\Customer
     */
    public function setDrAccount(\StructType\RecordRef $drAccount = null)
    {
        $this->drAccount = $drAccount;
        return $this;
    }
    /**
     * Get fxAccount value
     * @return \StructType\RecordRef|null
     */
    public function getFxAccount()
    {
        return $this->fxAccount;
    }
    /**
     * Set fxAccount value
     * @param \StructType\RecordRef $fxAccount
     * @return \StructType\Customer
     */
    public function setFxAccount(\StructType\RecordRef $fxAccount = null)
    {
        $this->fxAccount = $fxAccount;
        return $this;
    }
    /**
     * Get defaultOrderPriority value
     * @return float|null
     */
    public function getDefaultOrderPriority()
    {
        return $this->defaultOrderPriority;
    }
    /**
     * Set defaultOrderPriority value
     * @param float $defaultOrderPriority
     * @return \StructType\Customer
     */
    public function setDefaultOrderPriority($defaultOrderPriority = null)
    {
        // validation for constraint: float
        if (!is_null($defaultOrderPriority) && !(is_float($defaultOrderPriority) || is_numeric($defaultOrderPriority))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($defaultOrderPriority, true), gettype($defaultOrderPriority)), __LINE__);
        }
        $this->defaultOrderPriority = $defaultOrderPriority;
        return $this;
    }
    /**
     * Get webLead value
     * @return string|null
     */
    public function getWebLead()
    {
        return $this->webLead;
    }
    /**
     * Set webLead value
     * @param string $webLead
     * @return \StructType\Customer
     */
    public function setWebLead($webLead = null)
    {
        // validation for constraint: string
        if (!is_null($webLead) && !is_string($webLead)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($webLead, true), gettype($webLead)), __LINE__);
        }
        $this->webLead = $webLead;
        return $this;
    }
    /**
     * Get referrer value
     * @return string|null
     */
    public function getReferrer()
    {
        return $this->referrer;
    }
    /**
     * Set referrer value
     * @param string $referrer
     * @return \StructType\Customer
     */
    public function setReferrer($referrer = null)
    {
        // validation for constraint: string
        if (!is_null($referrer) && !is_string($referrer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($referrer, true), gettype($referrer)), __LINE__);
        }
        $this->referrer = $referrer;
        return $this;
    }
    /**
     * Get keywords value
     * @return string|null
     */
    public function getKeywords()
    {
        return $this->keywords;
    }
    /**
     * Set keywords value
     * @param string $keywords
     * @return \StructType\Customer
     */
    public function setKeywords($keywords = null)
    {
        // validation for constraint: string
        if (!is_null($keywords) && !is_string($keywords)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($keywords, true), gettype($keywords)), __LINE__);
        }
        $this->keywords = $keywords;
        return $this;
    }
    /**
     * Get clickStream value
     * @return string|null
     */
    public function getClickStream()
    {
        return $this->clickStream;
    }
    /**
     * Set clickStream value
     * @param string $clickStream
     * @return \StructType\Customer
     */
    public function setClickStream($clickStream = null)
    {
        // validation for constraint: string
        if (!is_null($clickStream) && !is_string($clickStream)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($clickStream, true), gettype($clickStream)), __LINE__);
        }
        $this->clickStream = $clickStream;
        return $this;
    }
    /**
     * Get lastPageVisited value
     * @return string|null
     */
    public function getLastPageVisited()
    {
        return $this->lastPageVisited;
    }
    /**
     * Set lastPageVisited value
     * @param string $lastPageVisited
     * @return \StructType\Customer
     */
    public function setLastPageVisited($lastPageVisited = null)
    {
        // validation for constraint: string
        if (!is_null($lastPageVisited) && !is_string($lastPageVisited)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastPageVisited, true), gettype($lastPageVisited)), __LINE__);
        }
        $this->lastPageVisited = $lastPageVisited;
        return $this;
    }
    /**
     * Get visits value
     * @return int|null
     */
    public function getVisits()
    {
        return $this->visits;
    }
    /**
     * Set visits value
     * @param int $visits
     * @return \StructType\Customer
     */
    public function setVisits($visits = null)
    {
        // validation for constraint: int
        if (!is_null($visits) && !(is_int($visits) || ctype_digit($visits))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($visits, true), gettype($visits)), __LINE__);
        }
        $this->visits = $visits;
        return $this;
    }
    /**
     * Get firstVisit value
     * @return string|null
     */
    public function getFirstVisit()
    {
        return $this->firstVisit;
    }
    /**
     * Set firstVisit value
     * @param string $firstVisit
     * @return \StructType\Customer
     */
    public function setFirstVisit($firstVisit = null)
    {
        // validation for constraint: string
        if (!is_null($firstVisit) && !is_string($firstVisit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($firstVisit, true), gettype($firstVisit)), __LINE__);
        }
        $this->firstVisit = $firstVisit;
        return $this;
    }
    /**
     * Get lastVisit value
     * @return string|null
     */
    public function getLastVisit()
    {
        return $this->lastVisit;
    }
    /**
     * Set lastVisit value
     * @param string $lastVisit
     * @return \StructType\Customer
     */
    public function setLastVisit($lastVisit = null)
    {
        // validation for constraint: string
        if (!is_null($lastVisit) && !is_string($lastVisit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastVisit, true), gettype($lastVisit)), __LINE__);
        }
        $this->lastVisit = $lastVisit;
        return $this;
    }
    /**
     * Get billPay value
     * @return bool|null
     */
    public function getBillPay()
    {
        return $this->billPay;
    }
    /**
     * Set billPay value
     * @param bool $billPay
     * @return \StructType\Customer
     */
    public function setBillPay($billPay = null)
    {
        // validation for constraint: boolean
        if (!is_null($billPay) && !is_bool($billPay)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($billPay, true), gettype($billPay)), __LINE__);
        }
        $this->billPay = $billPay;
        return $this;
    }
    /**
     * Get openingBalance value
     * @return float|null
     */
    public function getOpeningBalance()
    {
        return $this->openingBalance;
    }
    /**
     * Set openingBalance value
     * @param float $openingBalance
     * @return \StructType\Customer
     */
    public function setOpeningBalance($openingBalance = null)
    {
        // validation for constraint: float
        if (!is_null($openingBalance) && !(is_float($openingBalance) || is_numeric($openingBalance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($openingBalance, true), gettype($openingBalance)), __LINE__);
        }
        $this->openingBalance = $openingBalance;
        return $this;
    }
    /**
     * Get lastModifiedDate value
     * @return string|null
     */
    public function getLastModifiedDate()
    {
        return $this->lastModifiedDate;
    }
    /**
     * Set lastModifiedDate value
     * @param string $lastModifiedDate
     * @return \StructType\Customer
     */
    public function setLastModifiedDate($lastModifiedDate = null)
    {
        // validation for constraint: string
        if (!is_null($lastModifiedDate) && !is_string($lastModifiedDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastModifiedDate, true), gettype($lastModifiedDate)), __LINE__);
        }
        $this->lastModifiedDate = $lastModifiedDate;
        return $this;
    }
    /**
     * Get openingBalanceDate value
     * @return string|null
     */
    public function getOpeningBalanceDate()
    {
        return $this->openingBalanceDate;
    }
    /**
     * Set openingBalanceDate value
     * @param string $openingBalanceDate
     * @return \StructType\Customer
     */
    public function setOpeningBalanceDate($openingBalanceDate = null)
    {
        // validation for constraint: string
        if (!is_null($openingBalanceDate) && !is_string($openingBalanceDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($openingBalanceDate, true), gettype($openingBalanceDate)), __LINE__);
        }
        $this->openingBalanceDate = $openingBalanceDate;
        return $this;
    }
    /**
     * Get openingBalanceAccount value
     * @return \StructType\RecordRef|null
     */
    public function getOpeningBalanceAccount()
    {
        return $this->openingBalanceAccount;
    }
    /**
     * Set openingBalanceAccount value
     * @param \StructType\RecordRef $openingBalanceAccount
     * @return \StructType\Customer
     */
    public function setOpeningBalanceAccount(\StructType\RecordRef $openingBalanceAccount = null)
    {
        $this->openingBalanceAccount = $openingBalanceAccount;
        return $this;
    }
    /**
     * Get stage value
     * @return string|null
     */
    public function getStage()
    {
        return $this->stage;
    }
    /**
     * Set stage value
     * @uses \EnumType\CustomerStage::valueIsValid()
     * @uses \EnumType\CustomerStage::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $stage
     * @return \StructType\Customer
     */
    public function setStage($stage = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomerStage::valueIsValid($stage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomerStage', is_array($stage) ? implode(', ', $stage) : var_export($stage, true), implode(', ', \EnumType\CustomerStage::getValidValues())), __LINE__);
        }
        $this->stage = $stage;
        return $this;
    }
    /**
     * Get emailTransactions value
     * @return bool|null
     */
    public function getEmailTransactions()
    {
        return $this->emailTransactions;
    }
    /**
     * Set emailTransactions value
     * @param bool $emailTransactions
     * @return \StructType\Customer
     */
    public function setEmailTransactions($emailTransactions = null)
    {
        // validation for constraint: boolean
        if (!is_null($emailTransactions) && !is_bool($emailTransactions)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($emailTransactions, true), gettype($emailTransactions)), __LINE__);
        }
        $this->emailTransactions = $emailTransactions;
        return $this;
    }
    /**
     * Get printTransactions value
     * @return bool|null
     */
    public function getPrintTransactions()
    {
        return $this->printTransactions;
    }
    /**
     * Set printTransactions value
     * @param bool $printTransactions
     * @return \StructType\Customer
     */
    public function setPrintTransactions($printTransactions = null)
    {
        // validation for constraint: boolean
        if (!is_null($printTransactions) && !is_bool($printTransactions)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($printTransactions, true), gettype($printTransactions)), __LINE__);
        }
        $this->printTransactions = $printTransactions;
        return $this;
    }
    /**
     * Get faxTransactions value
     * @return bool|null
     */
    public function getFaxTransactions()
    {
        return $this->faxTransactions;
    }
    /**
     * Set faxTransactions value
     * @param bool $faxTransactions
     * @return \StructType\Customer
     */
    public function setFaxTransactions($faxTransactions = null)
    {
        // validation for constraint: boolean
        if (!is_null($faxTransactions) && !is_bool($faxTransactions)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($faxTransactions, true), gettype($faxTransactions)), __LINE__);
        }
        $this->faxTransactions = $faxTransactions;
        return $this;
    }
    /**
     * Get defaultTaxReg value
     * @return \StructType\RecordRef|null
     */
    public function getDefaultTaxReg()
    {
        return $this->defaultTaxReg;
    }
    /**
     * Set defaultTaxReg value
     * @param \StructType\RecordRef $defaultTaxReg
     * @return \StructType\Customer
     */
    public function setDefaultTaxReg(\StructType\RecordRef $defaultTaxReg = null)
    {
        $this->defaultTaxReg = $defaultTaxReg;
        return $this;
    }
    /**
     * Get syncPartnerTeams value
     * @return bool|null
     */
    public function getSyncPartnerTeams()
    {
        return $this->syncPartnerTeams;
    }
    /**
     * Set syncPartnerTeams value
     * @param bool $syncPartnerTeams
     * @return \StructType\Customer
     */
    public function setSyncPartnerTeams($syncPartnerTeams = null)
    {
        // validation for constraint: boolean
        if (!is_null($syncPartnerTeams) && !is_bool($syncPartnerTeams)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($syncPartnerTeams, true), gettype($syncPartnerTeams)), __LINE__);
        }
        $this->syncPartnerTeams = $syncPartnerTeams;
        return $this;
    }
    /**
     * Get isBudgetApproved value
     * @return bool|null
     */
    public function getIsBudgetApproved()
    {
        return $this->isBudgetApproved;
    }
    /**
     * Set isBudgetApproved value
     * @param bool $isBudgetApproved
     * @return \StructType\Customer
     */
    public function setIsBudgetApproved($isBudgetApproved = null)
    {
        // validation for constraint: boolean
        if (!is_null($isBudgetApproved) && !is_bool($isBudgetApproved)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isBudgetApproved, true), gettype($isBudgetApproved)), __LINE__);
        }
        $this->isBudgetApproved = $isBudgetApproved;
        return $this;
    }
    /**
     * Get globalSubscriptionStatus value
     * @return string|null
     */
    public function getGlobalSubscriptionStatus()
    {
        return $this->globalSubscriptionStatus;
    }
    /**
     * Set globalSubscriptionStatus value
     * @uses \EnumType\GlobalSubscriptionStatus::valueIsValid()
     * @uses \EnumType\GlobalSubscriptionStatus::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $globalSubscriptionStatus
     * @return \StructType\Customer
     */
    public function setGlobalSubscriptionStatus($globalSubscriptionStatus = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\GlobalSubscriptionStatus::valueIsValid($globalSubscriptionStatus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\GlobalSubscriptionStatus', is_array($globalSubscriptionStatus) ? implode(', ', $globalSubscriptionStatus) : var_export($globalSubscriptionStatus, true), implode(', ', \EnumType\GlobalSubscriptionStatus::getValidValues())), __LINE__);
        }
        $this->globalSubscriptionStatus = $globalSubscriptionStatus;
        return $this;
    }
    /**
     * Get salesReadiness value
     * @return \StructType\RecordRef|null
     */
    public function getSalesReadiness()
    {
        return $this->salesReadiness;
    }
    /**
     * Set salesReadiness value
     * @param \StructType\RecordRef $salesReadiness
     * @return \StructType\Customer
     */
    public function setSalesReadiness(\StructType\RecordRef $salesReadiness = null)
    {
        $this->salesReadiness = $salesReadiness;
        return $this;
    }
    /**
     * Get salesTeamList value
     * @return \StructType\CustomerSalesTeamList|null
     */
    public function getSalesTeamList()
    {
        return $this->salesTeamList;
    }
    /**
     * Set salesTeamList value
     * @param \StructType\CustomerSalesTeamList $salesTeamList
     * @return \StructType\Customer
     */
    public function setSalesTeamList(\StructType\CustomerSalesTeamList $salesTeamList = null)
    {
        $this->salesTeamList = $salesTeamList;
        return $this;
    }
    /**
     * Get buyingReason value
     * @return \StructType\RecordRef|null
     */
    public function getBuyingReason()
    {
        return $this->buyingReason;
    }
    /**
     * Set buyingReason value
     * @param \StructType\RecordRef $buyingReason
     * @return \StructType\Customer
     */
    public function setBuyingReason(\StructType\RecordRef $buyingReason = null)
    {
        $this->buyingReason = $buyingReason;
        return $this;
    }
    /**
     * Get downloadList value
     * @return \StructType\CustomerDownloadList|null
     */
    public function getDownloadList()
    {
        return $this->downloadList;
    }
    /**
     * Set downloadList value
     * @param \StructType\CustomerDownloadList $downloadList
     * @return \StructType\Customer
     */
    public function setDownloadList(\StructType\CustomerDownloadList $downloadList = null)
    {
        $this->downloadList = $downloadList;
        return $this;
    }
    /**
     * Get buyingTimeFrame value
     * @return \StructType\RecordRef|null
     */
    public function getBuyingTimeFrame()
    {
        return $this->buyingTimeFrame;
    }
    /**
     * Set buyingTimeFrame value
     * @param \StructType\RecordRef $buyingTimeFrame
     * @return \StructType\Customer
     */
    public function setBuyingTimeFrame(\StructType\RecordRef $buyingTimeFrame = null)
    {
        $this->buyingTimeFrame = $buyingTimeFrame;
        return $this;
    }
    /**
     * Get addressbookList value
     * @return \StructType\CustomerAddressbookList|null
     */
    public function getAddressbookList()
    {
        return $this->addressbookList;
    }
    /**
     * Set addressbookList value
     * @param \StructType\CustomerAddressbookList $addressbookList
     * @return \StructType\Customer
     */
    public function setAddressbookList(\StructType\CustomerAddressbookList $addressbookList = null)
    {
        $this->addressbookList = $addressbookList;
        return $this;
    }
    /**
     * Get subscriptionsList value
     * @return \StructType\SubscriptionsList|null
     */
    public function getSubscriptionsList()
    {
        return $this->subscriptionsList;
    }
    /**
     * Set subscriptionsList value
     * @param \StructType\SubscriptionsList $subscriptionsList
     * @return \StructType\Customer
     */
    public function setSubscriptionsList(\StructType\SubscriptionsList $subscriptionsList = null)
    {
        $this->subscriptionsList = $subscriptionsList;
        return $this;
    }
    /**
     * Get contactRolesList value
     * @return \StructType\ContactAccessRolesList|null
     */
    public function getContactRolesList()
    {
        return $this->contactRolesList;
    }
    /**
     * Set contactRolesList value
     * @param \StructType\ContactAccessRolesList $contactRolesList
     * @return \StructType\Customer
     */
    public function setContactRolesList(\StructType\ContactAccessRolesList $contactRolesList = null)
    {
        $this->contactRolesList = $contactRolesList;
        return $this;
    }
    /**
     * Get currencyList value
     * @return \StructType\CustomerCurrencyList|null
     */
    public function getCurrencyList()
    {
        return $this->currencyList;
    }
    /**
     * Set currencyList value
     * @param \StructType\CustomerCurrencyList $currencyList
     * @return \StructType\Customer
     */
    public function setCurrencyList(\StructType\CustomerCurrencyList $currencyList = null)
    {
        $this->currencyList = $currencyList;
        return $this;
    }
    /**
     * Get creditCardsList value
     * @return \StructType\CustomerCreditCardsList|null
     */
    public function getCreditCardsList()
    {
        return $this->creditCardsList;
    }
    /**
     * Set creditCardsList value
     * @param \StructType\CustomerCreditCardsList $creditCardsList
     * @return \StructType\Customer
     */
    public function setCreditCardsList(\StructType\CustomerCreditCardsList $creditCardsList = null)
    {
        $this->creditCardsList = $creditCardsList;
        return $this;
    }
    /**
     * Get partnersList value
     * @return \StructType\CustomerPartnersList|null
     */
    public function getPartnersList()
    {
        return $this->partnersList;
    }
    /**
     * Set partnersList value
     * @param \StructType\CustomerPartnersList $partnersList
     * @return \StructType\Customer
     */
    public function setPartnersList(\StructType\CustomerPartnersList $partnersList = null)
    {
        $this->partnersList = $partnersList;
        return $this;
    }
    /**
     * Get groupPricingList value
     * @return \StructType\CustomerGroupPricingList|null
     */
    public function getGroupPricingList()
    {
        return $this->groupPricingList;
    }
    /**
     * Set groupPricingList value
     * @param \StructType\CustomerGroupPricingList $groupPricingList
     * @return \StructType\Customer
     */
    public function setGroupPricingList(\StructType\CustomerGroupPricingList $groupPricingList = null)
    {
        $this->groupPricingList = $groupPricingList;
        return $this;
    }
    /**
     * Get itemPricingList value
     * @return \StructType\CustomerItemPricingList|null
     */
    public function getItemPricingList()
    {
        return $this->itemPricingList;
    }
    /**
     * Set itemPricingList value
     * @param \StructType\CustomerItemPricingList $itemPricingList
     * @return \StructType\Customer
     */
    public function setItemPricingList(\StructType\CustomerItemPricingList $itemPricingList = null)
    {
        $this->itemPricingList = $itemPricingList;
        return $this;
    }
    /**
     * Get taxRegistrationList value
     * @return \StructType\CustomerTaxRegistrationList|null
     */
    public function getTaxRegistrationList()
    {
        return $this->taxRegistrationList;
    }
    /**
     * Set taxRegistrationList value
     * @param \StructType\CustomerTaxRegistrationList $taxRegistrationList
     * @return \StructType\Customer
     */
    public function setTaxRegistrationList(\StructType\CustomerTaxRegistrationList $taxRegistrationList = null)
    {
        $this->taxRegistrationList = $taxRegistrationList;
        return $this;
    }
    /**
     * Get customFieldList value
     * @return \StructType\CustomFieldList|null
     */
    public function getCustomFieldList()
    {
        return $this->customFieldList;
    }
    /**
     * Set customFieldList value
     * @param \StructType\CustomFieldList $customFieldList
     * @return \StructType\Customer
     */
    public function setCustomFieldList(\StructType\CustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
    /**
     * Get internalId value
     * @return string|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\Customer
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get externalId value
     * @return string|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * Set externalId value
     * @param string $externalId
     * @return \StructType\Customer
     */
    public function setExternalId($externalId = null)
    {
        // validation for constraint: string
        if (!is_null($externalId) && !is_string($externalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($externalId, true), gettype($externalId)), __LINE__);
        }
        $this->externalId = $externalId;
        return $this;
    }
}
