<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for return StructType
 * Meta informations extracted from the WSDL
 * - pattern: (true)|(false)|(\{........-....-....-....-............\})
 * @subpackage Structs
 */
class _return extends AbstractStructBase
{
    /**
     * The sipProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipProfile[]
     */
    public $sipProfile;
    /**
     * The sipTrunkSecurityProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipTrunkSecurityProfile[]
     */
    public $sipTrunkSecurityProfile;
    /**
     * The timePeriod
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTimePeriod[]
     */
    public $timePeriod;
    /**
     * The timeSchedule
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTimeSchedule[]
     */
    public $timeSchedule;
    /**
     * The todAccess
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTodAccess[]
     */
    public $todAccess;
    /**
     * The voiceMailPilot
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVoiceMailPilot[]
     */
    public $voiceMailPilot;
    /**
     * The processNode
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RProcessNode[]
     */
    public $processNode;
    /**
     * The callerFilterList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallerFilterList[]
     */
    public $callerFilterList;
    /**
     * The routePartition
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRoutePartition[]
     */
    public $routePartition;
    /**
     * The css
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCss[]
     */
    public $css;
    /**
     * The callManager
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallManager[]
     */
    public $callManager;
    /**
     * The mediaResourceGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMediaResourceGroup[]
     */
    public $mediaResourceGroup;
    /**
     * The mediaResourceList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMediaResourceList[]
     */
    public $mediaResourceList;
    /**
     * The region
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRegion[]
     */
    public $region;
    /**
     * The aarGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RAarGroup[]
     */
    public $aarGroup;
    /**
     * The physicalLocation
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPhysicalLocation[]
     */
    public $physicalLocation;
    /**
     * The routeGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRouteGroup[]
     */
    public $routeGroup;
    /**
     * The devicePool
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDevicePool[]
     */
    public $devicePool;
    /**
     * The deviceMobilityGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDeviceMobilityGroup[]
     */
    public $deviceMobilityGroup;
    /**
     * The location
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLocation[]
     */
    public $location;
    /**
     * The softKeyTemplate
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSoftKeyTemplate[]
     */
    public $softKeyTemplate;
    /**
     * The transcoder
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTranscoder[]
     */
    public $transcoder;
    /**
     * The commonDeviceConfig
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCommonDeviceConfig[]
     */
    public $commonDeviceConfig;
    /**
     * The resourcePriorityNamespace
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RResourcePriorityNamespace[]
     */
    public $resourcePriorityNamespace;
    /**
     * The resourcePriorityNamespaceList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RResourcePriorityNamespaceList[]
     */
    public $resourcePriorityNamespaceList;
    /**
     * The deviceMobility
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDeviceMobility[]
     */
    public $deviceMobility;
    /**
     * The cmcInfo
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCmcInfo[]
     */
    public $cmcInfo;
    /**
     * The credentialPolicy
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCredentialPolicy[]
     */
    public $credentialPolicy;
    /**
     * The facInfo
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RFacInfo[]
     */
    public $facInfo;
    /**
     * The huntList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RHuntList[]
     */
    public $huntList;
    /**
     * The ivrUserLocale
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RIvrUserLocale[]
     */
    public $ivrUserLocale;
    /**
     * The lineGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLineGroup[]
     */
    public $lineGroup;
    /**
     * The recordingProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRecordingProfile[]
     */
    public $recordingProfile;
    /**
     * The routeFilter
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRouteFilter[]
     */
    public $routeFilter;
    /**
     * The callManagerGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallManagerGroup[]
     */
    public $callManagerGroup;
    /**
     * The userGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RUserGroup[]
     */
    public $userGroup;
    /**
     * The dialPlan
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDialPlan[]
     */
    public $dialPlan;
    /**
     * The dialPlanTag
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDialPlanTag[]
     */
    public $dialPlanTag;
    /**
     * The ddi
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDdi[]
     */
    public $ddi;
    /**
     * The mobileSmartClientProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMobileSmartClientProfile[]
     */
    public $mobileSmartClientProfile;
    /**
     * The processNodeService
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RProcessNodeService[]
     */
    public $processNodeService;
    /**
     * The mohAudioSource
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMohAudioSource[]
     */
    public $mohAudioSource;
    /**
     * The dhcpServer
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDhcpServer[]
     */
    public $dhcpServer;
    /**
     * The dhcpSubnet
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDhcpSubnet[]
     */
    public $dhcpSubnet;
    /**
     * The callPark
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallPark[]
     */
    public $callPark;
    /**
     * The directedCallPark
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDirectedCallPark[]
     */
    public $directedCallPark;
    /**
     * The meetMe
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMeetMe[]
     */
    public $meetMe;
    /**
     * The mobileVoiceAccess
     * @var RMobileVoiceAccess
     */
    public $mobileVoiceAccess;
    /**
     * The routeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRouteList[]
     */
    public $routeList;
    /**
     * The user
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RUser[]
     */
    public $user;
    /**
     * The licenseCapabilities
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLicenseCapabilities[]
     */
    public $licenseCapabilities;
    /**
     * The appUser
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RAppUser[]
     */
    public $appUser;
    /**
     * The sipRealm
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipRealm[]
     */
    public $sipRealm;
    /**
     * The phoneNtp
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPhoneNtp[]
     */
    public $phoneNtp;
    /**
     * The dateTimeGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDateTimeGroup[]
     */
    public $dateTimeGroup;
    /**
     * The presenceGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPresenceGroup[]
     */
    public $presenceGroup;
    /**
     * The geoLocation
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RGeoLocation[]
     */
    public $geoLocation;
    /**
     * The srst
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSrst[]
     */
    public $srst;
    /**
     * The mlppDomain
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMlppDomain[]
     */
    public $mlppDomain;
    /**
     * The cumaServerSecurityProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCumaServerSecurityProfile[]
     */
    public $cumaServerSecurityProfile;
    /**
     * The applicationServer
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RApplicationServer[]
     */
    public $applicationServer;
    /**
     * The applicationUserCapfProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RApplicationUserCapfProfile[]
     */
    public $applicationUserCapfProfile;
    /**
     * The endUserCapfProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var REndUserCapfProfile[]
     */
    public $endUserCapfProfile;
    /**
     * The serviceParameter
     * @var RServiceParameter
     */
    public $serviceParameter;
    /**
     * The geoLocationFilter
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RGeoLocationFilter[]
     */
    public $geoLocationFilter;
    /**
     * The voiceMailProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVoiceMailProfile[]
     */
    public $voiceMailProfile;
    /**
     * The voiceMailPort
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVoiceMailPort[]
     */
    public $voiceMailPort;
    /**
     * The gatekeeper
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RGatekeeper[]
     */
    public $gatekeeper;
    /**
     * The phoneButtonTemplate
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPhoneButtonTemplate[]
     */
    public $phoneButtonTemplate;
    /**
     * The commonPhoneConfig
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCommonPhoneConfig[]
     */
    public $commonPhoneConfig;
    /**
     * The messageWaiting
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMessageWaiting[]
     */
    public $messageWaiting;
    /**
     * The ipPhoneServices
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RIpPhoneServices[]
     */
    public $ipPhoneServices;
    /**
     * The ctiRoutePoint
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCtiRoutePoint[]
     */
    public $ctiRoutePoint;
    /**
     * The transPattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTransPattern[]
     */
    public $transPattern;
    /**
     * The callingPartyTransformationPattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallingPartyTransformationPattern[]
     */
    public $callingPartyTransformationPattern;
    /**
     * The sipRoutePattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipRoutePattern[]
     */
    public $sipRoutePattern;
    /**
     * The huntPilot
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RHuntPilot[]
     */
    public $huntPilot;
    /**
     * The routePattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRoutePattern[]
     */
    public $routePattern;
    /**
     * The applicationDialRules
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RApplicationDialRules[]
     */
    public $applicationDialRules;
    /**
     * The directoryLookupDialRules
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDirectoryLookupDialRules[]
     */
    public $directoryLookupDialRules;
    /**
     * The phoneSecurityProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPhoneSecurityProfile[]
     */
    public $phoneSecurityProfile;
    /**
     * The sipDialRules
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipDialRules[]
     */
    public $sipDialRules;
    /**
     * The conferenceBridge
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RConferenceBridge[]
     */
    public $conferenceBridge;
    /**
     * The annunciator
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RAnnunciator[]
     */
    public $annunciator;
    /**
     * The mtp
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMtp[]
     */
    public $mtp;
    /**
     * The fixedMohAudioSource
     * @var RFixedMohAudioSource
     */
    public $fixedMohAudioSource;
    /**
     * The remoteDestinationProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRemoteDestinationProfile[]
     */
    public $remoteDestinationProfile;
    /**
     * The line
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLine[]
     */
    public $line;
    /**
     * The defaultDeviceProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDefaultDeviceProfile[]
     */
    public $defaultDeviceProfile;
    /**
     * The h323Phone
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RH323Phone[]
     */
    public $h323Phone;
    /**
     * The mohServer
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMohServer[]
     */
    public $mohServer;
    /**
     * The h323Trunk
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RH323Trunk[]
     */
    public $h323Trunk;
    /**
     * The phone
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RPhone[]
     */
    public $phone;
    /**
     * The h323Gateway
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RH323Gateway[]
     */
    public $h323Gateway;
    /**
     * The deviceProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RDeviceProfile[]
     */
    public $deviceProfile;
    /**
     * The remoteDestination
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRemoteDestination[]
     */
    public $remoteDestination;
    /**
     * The gateway
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RGateway[]
     */
    public $gateway;
    /**
     * The gatewayEndpointAnalogAccess
     * @var RGatewayEndpointAnalogAccess
     */
    public $gatewayEndpointAnalogAccess;
    /**
     * The gatewayEndpointDigitalAccessPri
     * @var RGatewayEndpointDigitalAccessPri
     */
    public $gatewayEndpointDigitalAccessPri;
    /**
     * The gatewayEndpointDigitalAccessBri
     * @var RGatewayEndpointDigitalAccessBri
     */
    public $gatewayEndpointDigitalAccessBri;
    /**
     * The gatewayEndpointDigitalAccessT1
     * @var RGatewayEndpointDigitalAccessT1
     */
    public $gatewayEndpointDigitalAccessT1;
    /**
     * The vg224
     * @var RVg224
     */
    public $vg224;
    /**
     * The ciscoCatalyst600024PortFXSGateway
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCiscoCatalyst600024PortFXSGateway[]
     */
    public $ciscoCatalyst600024PortFXSGateway;
    /**
     * The ciscoCatalyst6000E1VoIPGateway
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCiscoCatalyst6000E1VoIPGateway[]
     */
    public $ciscoCatalyst6000E1VoIPGateway;
    /**
     * The ciscoCatalyst6000T1VoIPGatewayPri
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCiscoCatalyst6000T1VoIPGatewayPri[]
     */
    public $ciscoCatalyst6000T1VoIPGatewayPri;
    /**
     * The ciscoCatalyst6000T1VoIPGatewayT1
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCiscoCatalyst6000T1VoIPGatewayT1[]
     */
    public $ciscoCatalyst6000T1VoIPGatewayT1;
    /**
     * The callPickupGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCallPickupGroup[]
     */
    public $callPickupGroup;
    /**
     * The routePlan
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var LRoutePlan[]
     */
    public $routePlan;
    /**
     * The geoLocationPolicy
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RGeoLocationPolicy[]
     */
    public $geoLocationPolicy;
    /**
     * The sipTrunk
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSipTrunk[]
     */
    public $sipTrunk;
    /**
     * The calledPartyTransformationPattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCalledPartyTransformationPattern[]
     */
    public $calledPartyTransformationPattern;
    /**
     * The externalCallControlProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RExternalCallControlProfile[]
     */
    public $externalCallControlProfile;
    /**
     * The safSecurityProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSafSecurityProfile[]
     */
    public $safSecurityProfile;
    /**
     * The safForwarder
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSafForwarder[]
     */
    public $safForwarder;
    /**
     * The ccdHostedDN
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCcdHostedDN[]
     */
    public $ccdHostedDN;
    /**
     * The ccdHostedDNGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCcdHostedDNGroup[]
     */
    public $ccdHostedDNGroup;
    /**
     * The ccdRequestingService
     * @var RCcdRequestingService
     */
    public $ccdRequestingService;
    /**
     * The interClusterServiceProfile
     * @var RInterClusterServiceProfile
     */
    public $interClusterServiceProfile;
    /**
     * The remoteCluster
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RRemoteCluster[]
     */
    public $remoteCluster;
    /**
     * The ccdAdvertisingService
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCcdAdvertisingService[]
     */
    public $ccdAdvertisingService;
    /**
     * The ldapDirectory
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLdapDirectory[]
     */
    public $ldapDirectory;
    /**
     * The emccFeatureConfig
     * @var REmccFeatureConfig
     */
    public $emccFeatureConfig;
    /**
     * The safCcdPurgeBlockLearnedRoutes
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSafCcdPurgeBlockLearnedRoutes[]
     */
    public $safCcdPurgeBlockLearnedRoutes;
    /**
     * The vpnGateway
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVpnGateway[]
     */
    public $vpnGateway;
    /**
     * The vpnGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVpnGroup[]
     */
    public $vpnGroup;
    /**
     * The vpnProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RVpnProfile[]
     */
    public $vpnProfile;
    /**
     * The imeServer
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeServer[]
     */
    public $imeServer;
    /**
     * The imeRouteFilterGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeRouteFilterGroup[]
     */
    public $imeRouteFilterGroup;
    /**
     * The imeRouteFilterElement
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeRouteFilterElement[]
     */
    public $imeRouteFilterElement;
    /**
     * The imeClient
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeClient[]
     */
    public $imeClient;
    /**
     * The imeEnrolledPattern
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeEnrolledPattern[]
     */
    public $imeEnrolledPattern;
    /**
     * The imeEnrolledPatternGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeEnrolledPatternGroup[]
     */
    public $imeEnrolledPatternGroup;
    /**
     * The imeExclusionNumber
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeExclusionNumber[]
     */
    public $imeExclusionNumber;
    /**
     * The imeExclusionNumberGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeExclusionNumberGroup[]
     */
    public $imeExclusionNumberGroup;
    /**
     * The imeFirewall
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeFirewall[]
     */
    public $imeFirewall;
    /**
     * The imeE164Transformation
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImeE164Transformation[]
     */
    public $imeE164Transformation;
    /**
     * The transformationProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTransformationProfile[]
     */
    public $transformationProfile;
    /**
     * The fallbackProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RFallbackProfile[]
     */
    public $fallbackProfile;
    /**
     * The ldapFilter
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLdapFilter[]
     */
    public $ldapFilter;
    /**
     * The tvsCertificate
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RTvsCertificate[]
     */
    public $tvsCertificate;
    /**
     * The featureControlPolicy
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RFeatureControlPolicy[]
     */
    public $featureControlPolicy;
    /**
     * The mobilityProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RMobilityProfile[]
     */
    public $mobilityProfile;
    /**
     * The enterpriseFeatureAccessConfiguration
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var REnterpriseFeatureAccessConfiguration[]
     */
    public $enterpriseFeatureAccessConfiguration;
    /**
     * The handoffConfiguration
     * @var RHandoffConfiguration
     */
    public $handoffConfiguration;
    /**
     * The calledPartyTracing
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var LCalledPartyTracing[]
     */
    public $calledPartyTracing;
    /**
     * The sIPNormalizationScript
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RSIPNormalizationScript[]
     */
    public $sIPNormalizationScript;
    /**
     * The customUserField
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RCustomUserField[]
     */
    public $customUserField;
    /**
     * The gatewaySccpEndpoints
     * @var RGatewaySccpEndpoints
     */
    public $gatewaySccpEndpoints;
    /**
     * The billingServer
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var LBillingServer
     */
    public $billingServer;
    /**
     * The lbmGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLbmGroup[]
     */
    public $lbmGroup;
    /**
     * The announcement
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RAnnouncement[]
     */
    public $announcement;
    /**
     * The serviceProfile
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RServiceProfile[]
     */
    public $serviceProfile;
    /**
     * The ldapSyncCustomField
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLdapSyncCustomField[]
     */
    public $ldapSyncCustomField;
    /**
     * The audioCodecPreferenceList
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RAudioCodecPreferenceList[]
     */
    public $audioCodecPreferenceList;
    /**
     * The ucService
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RUcService[]
     */
    public $ucService;
    /**
     * The lbmHubGroup
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RLbmHubGroup[]
     */
    public $lbmHubGroup;
    /**
     * The importedDirectoryUriCatalogs
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var RImportedDirectoryUriCatalogs[]
     */
    public $importedDirectoryUriCatalogs;
    /**
     * The row
     * Meta informations extracted from the WSDL
     * - documentation: Each row element can contain any number of sub-elements, each sub-element is a column from that row in the result set.
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var mixed[]
     */
    public $row;
    /**
     * The rowsUpdated
     * Meta informations extracted from the WSDL
     * - documentation: Rows updated indicates the number of rows updated by the SQL update.
     * @var int
     */
    public $rowsUpdated;
    /**
     * The userAuthenticated
     * Meta informations extracted from the WSDL
     * - documentation: true indicates that user was authenticated and false indicates that user was not authenticated.
     * - pattern: (t)|(f)|(true)|(false)|(0)|(1)
     * @var string
     */
    public $userAuthenticated;
    /**
     * The code
     * Meta informations extracted from the WSDL
     * - documentation: This is the IMS result code that will be returned.
     * @var int
     */
    public $code;
    /**
     * The daysToExpiry
     * Meta informations extracted from the WSDL
     * - documentation: This is the number of days remaining for the credential to expire
     * - minOccurs: 0
     * @var int
     */
    public $daysToExpiry;
    /**
     * The os
     * @var XOSVersion
     */
    public $os;
    /**
     * The _
     * @var int
     */
    public $_;
    /**
     * The mobility
     * @var RMobility
     */
    public $mobility;
    /**
     * The enterprisePhoneConfig
     * @var XEnterprisePhoneConfig
     */
    public $enterprisePhoneConfig;
    /**
     * The licenseUnitReport
     * @var XLicenseUnitReport
     */
    public $licenseUnitReport;
    /**
     * The ldapSystem
     * @var XLdapSystem
     */
    public $ldapSystem;
    /**
     * The ldapAuthentication
     * @var XLdapAuthentication
     */
    public $ldapAuthentication;
    /**
     * The componentVersion
     * @var ComponentVersion
     */
    public $componentVersion;
    /**
     * The fallbackFeatureConfig
     * @var RFallbackFeatureConfig
     */
    public $fallbackFeatureConfig;
    /**
     * The imeLearnedRoutes
     * @var RImeLearnedRoutes
     */
    public $imeLearnedRoutes;
    /**
     * The imeFeatureConfig
     * @var RImeFeatureConfig
     */
    public $imeFeatureConfig;
    /**
     * The appServerInfo
     * @var RAppServerInfo
     */
    public $appServerInfo;
    /**
     * The softKeySet
     * @var RSoftKeySet
     */
    public $softKeySet;
    /**
     * The syslogConfiguration
     * @var RSyslogConfiguration
     */
    public $syslogConfiguration;
    /**
     * The ilsConfig
     * @var NewIlsConfig
     */
    public $ilsConfig;
    /**
     * The SNMPCommunityString
     * @var RSNMPCommunityString
     */
    public $SNMPCommunityString;
    /**
     * The SNMPUser
     * @var RSNMPGetUser
     */
    public $SNMPUser;
    /**
     * The SNMPMIB2List
     * @var RSNMPMIB2List
     */
    public $SNMPMIB2List;
    /**
     * Constructor method for return
     * @uses _return::setSipProfile()
     * @uses _return::setSipTrunkSecurityProfile()
     * @uses _return::setTimePeriod()
     * @uses _return::setTimeSchedule()
     * @uses _return::setTodAccess()
     * @uses _return::setVoiceMailPilot()
     * @uses _return::setProcessNode()
     * @uses _return::setCallerFilterList()
     * @uses _return::setRoutePartition()
     * @uses _return::setCss()
     * @uses _return::setCallManager()
     * @uses _return::setMediaResourceGroup()
     * @uses _return::setMediaResourceList()
     * @uses _return::setRegion()
     * @uses _return::setAarGroup()
     * @uses _return::setPhysicalLocation()
     * @uses _return::setRouteGroup()
     * @uses _return::setDevicePool()
     * @uses _return::setDeviceMobilityGroup()
     * @uses _return::setLocation()
     * @uses _return::setSoftKeyTemplate()
     * @uses _return::setTranscoder()
     * @uses _return::setCommonDeviceConfig()
     * @uses _return::setResourcePriorityNamespace()
     * @uses _return::setResourcePriorityNamespaceList()
     * @uses _return::setDeviceMobility()
     * @uses _return::setCmcInfo()
     * @uses _return::setCredentialPolicy()
     * @uses _return::setFacInfo()
     * @uses _return::setHuntList()
     * @uses _return::setIvrUserLocale()
     * @uses _return::setLineGroup()
     * @uses _return::setRecordingProfile()
     * @uses _return::setRouteFilter()
     * @uses _return::setCallManagerGroup()
     * @uses _return::setUserGroup()
     * @uses _return::setDialPlan()
     * @uses _return::setDialPlanTag()
     * @uses _return::setDdi()
     * @uses _return::setMobileSmartClientProfile()
     * @uses _return::setProcessNodeService()
     * @uses _return::setMohAudioSource()
     * @uses _return::setDhcpServer()
     * @uses _return::setDhcpSubnet()
     * @uses _return::setCallPark()
     * @uses _return::setDirectedCallPark()
     * @uses _return::setMeetMe()
     * @uses _return::setMobileVoiceAccess()
     * @uses _return::setRouteList()
     * @uses _return::setUser()
     * @uses _return::setLicenseCapabilities()
     * @uses _return::setAppUser()
     * @uses _return::setSipRealm()
     * @uses _return::setPhoneNtp()
     * @uses _return::setDateTimeGroup()
     * @uses _return::setPresenceGroup()
     * @uses _return::setGeoLocation()
     * @uses _return::setSrst()
     * @uses _return::setMlppDomain()
     * @uses _return::setCumaServerSecurityProfile()
     * @uses _return::setApplicationServer()
     * @uses _return::setApplicationUserCapfProfile()
     * @uses _return::setEndUserCapfProfile()
     * @uses _return::setServiceParameter()
     * @uses _return::setGeoLocationFilter()
     * @uses _return::setVoiceMailProfile()
     * @uses _return::setVoiceMailPort()
     * @uses _return::setGatekeeper()
     * @uses _return::setPhoneButtonTemplate()
     * @uses _return::setCommonPhoneConfig()
     * @uses _return::setMessageWaiting()
     * @uses _return::setIpPhoneServices()
     * @uses _return::setCtiRoutePoint()
     * @uses _return::setTransPattern()
     * @uses _return::setCallingPartyTransformationPattern()
     * @uses _return::setSipRoutePattern()
     * @uses _return::setHuntPilot()
     * @uses _return::setRoutePattern()
     * @uses _return::setApplicationDialRules()
     * @uses _return::setDirectoryLookupDialRules()
     * @uses _return::setPhoneSecurityProfile()
     * @uses _return::setSipDialRules()
     * @uses _return::setConferenceBridge()
     * @uses _return::setAnnunciator()
     * @uses _return::setMtp()
     * @uses _return::setFixedMohAudioSource()
     * @uses _return::setRemoteDestinationProfile()
     * @uses _return::setLine()
     * @uses _return::setDefaultDeviceProfile()
     * @uses _return::setH323Phone()
     * @uses _return::setMohServer()
     * @uses _return::setH323Trunk()
     * @uses _return::setPhone()
     * @uses _return::setH323Gateway()
     * @uses _return::setDeviceProfile()
     * @uses _return::setRemoteDestination()
     * @uses _return::setGateway()
     * @uses _return::setGatewayEndpointAnalogAccess()
     * @uses _return::setGatewayEndpointDigitalAccessPri()
     * @uses _return::setGatewayEndpointDigitalAccessBri()
     * @uses _return::setGatewayEndpointDigitalAccessT1()
     * @uses _return::setVg224()
     * @uses _return::setCiscoCatalyst600024PortFXSGateway()
     * @uses _return::setCiscoCatalyst6000E1VoIPGateway()
     * @uses _return::setCiscoCatalyst6000T1VoIPGatewayPri()
     * @uses _return::setCiscoCatalyst6000T1VoIPGatewayT1()
     * @uses _return::setCallPickupGroup()
     * @uses _return::setRoutePlan()
     * @uses _return::setGeoLocationPolicy()
     * @uses _return::setSipTrunk()
     * @uses _return::setCalledPartyTransformationPattern()
     * @uses _return::setExternalCallControlProfile()
     * @uses _return::setSafSecurityProfile()
     * @uses _return::setSafForwarder()
     * @uses _return::setCcdHostedDN()
     * @uses _return::setCcdHostedDNGroup()
     * @uses _return::setCcdRequestingService()
     * @uses _return::setInterClusterServiceProfile()
     * @uses _return::setRemoteCluster()
     * @uses _return::setCcdAdvertisingService()
     * @uses _return::setLdapDirectory()
     * @uses _return::setEmccFeatureConfig()
     * @uses _return::setSafCcdPurgeBlockLearnedRoutes()
     * @uses _return::setVpnGateway()
     * @uses _return::setVpnGroup()
     * @uses _return::setVpnProfile()
     * @uses _return::setImeServer()
     * @uses _return::setImeRouteFilterGroup()
     * @uses _return::setImeRouteFilterElement()
     * @uses _return::setImeClient()
     * @uses _return::setImeEnrolledPattern()
     * @uses _return::setImeEnrolledPatternGroup()
     * @uses _return::setImeExclusionNumber()
     * @uses _return::setImeExclusionNumberGroup()
     * @uses _return::setImeFirewall()
     * @uses _return::setImeE164Transformation()
     * @uses _return::setTransformationProfile()
     * @uses _return::setFallbackProfile()
     * @uses _return::setLdapFilter()
     * @uses _return::setTvsCertificate()
     * @uses _return::setFeatureControlPolicy()
     * @uses _return::setMobilityProfile()
     * @uses _return::setEnterpriseFeatureAccessConfiguration()
     * @uses _return::setHandoffConfiguration()
     * @uses _return::setCalledPartyTracing()
     * @uses _return::setSIPNormalizationScript()
     * @uses _return::setCustomUserField()
     * @uses _return::setGatewaySccpEndpoints()
     * @uses _return::setBillingServer()
     * @uses _return::setLbmGroup()
     * @uses _return::setAnnouncement()
     * @uses _return::setServiceProfile()
     * @uses _return::setLdapSyncCustomField()
     * @uses _return::setAudioCodecPreferenceList()
     * @uses _return::setUcService()
     * @uses _return::setLbmHubGroup()
     * @uses _return::setImportedDirectoryUriCatalogs()
     * @uses _return::setRow()
     * @uses _return::setRowsUpdated()
     * @uses _return::setUserAuthenticated()
     * @uses _return::setCode()
     * @uses _return::setDaysToExpiry()
     * @uses _return::setOs()
     * @uses _return::set_()
     * @uses _return::setMobility()
     * @uses _return::setEnterprisePhoneConfig()
     * @uses _return::setLicenseUnitReport()
     * @uses _return::setLdapSystem()
     * @uses _return::setLdapAuthentication()
     * @uses _return::setComponentVersion()
     * @uses _return::setFallbackFeatureConfig()
     * @uses _return::setImeLearnedRoutes()
     * @uses _return::setImeFeatureConfig()
     * @uses _return::setAppServerInfo()
     * @uses _return::setSoftKeySet()
     * @uses _return::setSyslogConfiguration()
     * @uses _return::setIlsConfig()
     * @uses _return::setSNMPCommunityString()
     * @uses _return::setSNMPUser()
     * @uses _return::setSNMPMIB2List()
     * @param RSipProfile[] $sipProfile
     * @param RSipTrunkSecurityProfile[] $sipTrunkSecurityProfile
     * @param RTimePeriod[] $timePeriod
     * @param RTimeSchedule[] $timeSchedule
     * @param RTodAccess[] $todAccess
     * @param RVoiceMailPilot[] $voiceMailPilot
     * @param RProcessNode[] $processNode
     * @param RCallerFilterList[] $callerFilterList
     * @param RRoutePartition[] $routePartition
     * @param RCss[] $css
     * @param RCallManager[] $callManager
     * @param RMediaResourceGroup[] $mediaResourceGroup
     * @param RMediaResourceList[] $mediaResourceList
     * @param RRegion[] $region
     * @param RAarGroup[] $aarGroup
     * @param RPhysicalLocation[] $physicalLocation
     * @param RRouteGroup[] $routeGroup
     * @param RDevicePool[] $devicePool
     * @param RDeviceMobilityGroup[] $deviceMobilityGroup
     * @param RLocation[] $location
     * @param RSoftKeyTemplate[] $softKeyTemplate
     * @param RTranscoder[] $transcoder
     * @param RCommonDeviceConfig[] $commonDeviceConfig
     * @param RResourcePriorityNamespace[] $resourcePriorityNamespace
     * @param RResourcePriorityNamespaceList[] $resourcePriorityNamespaceList
     * @param RDeviceMobility[] $deviceMobility
     * @param RCmcInfo[] $cmcInfo
     * @param RCredentialPolicy[] $credentialPolicy
     * @param RFacInfo[] $facInfo
     * @param RHuntList[] $huntList
     * @param RIvrUserLocale[] $ivrUserLocale
     * @param RLineGroup[] $lineGroup
     * @param RRecordingProfile[] $recordingProfile
     * @param RRouteFilter[] $routeFilter
     * @param RCallManagerGroup[] $callManagerGroup
     * @param RUserGroup[] $userGroup
     * @param RDialPlan[] $dialPlan
     * @param RDialPlanTag[] $dialPlanTag
     * @param RDdi[] $ddi
     * @param RMobileSmartClientProfile[] $mobileSmartClientProfile
     * @param RProcessNodeService[] $processNodeService
     * @param RMohAudioSource[] $mohAudioSource
     * @param RDhcpServer[] $dhcpServer
     * @param RDhcpSubnet[] $dhcpSubnet
     * @param RCallPark[] $callPark
     * @param RDirectedCallPark[] $directedCallPark
     * @param RMeetMe[] $meetMe
     * @param RMobileVoiceAccess $mobileVoiceAccess
     * @param RRouteList[] $routeList
     * @param RUser[] $user
     * @param RLicenseCapabilities[] $licenseCapabilities
     * @param RAppUser[] $appUser
     * @param RSipRealm[] $sipRealm
     * @param RPhoneNtp[] $phoneNtp
     * @param RDateTimeGroup[] $dateTimeGroup
     * @param RPresenceGroup[] $presenceGroup
     * @param RGeoLocation[] $geoLocation
     * @param RSrst[] $srst
     * @param RMlppDomain[] $mlppDomain
     * @param RCumaServerSecurityProfile[] $cumaServerSecurityProfile
     * @param RApplicationServer[] $applicationServer
     * @param RApplicationUserCapfProfile[] $applicationUserCapfProfile
     * @param REndUserCapfProfile[] $endUserCapfProfile
     * @param RServiceParameter $serviceParameter
     * @param RGeoLocationFilter[] $geoLocationFilter
     * @param RVoiceMailProfile[] $voiceMailProfile
     * @param RVoiceMailPort[] $voiceMailPort
     * @param RGatekeeper[] $gatekeeper
     * @param RPhoneButtonTemplate[] $phoneButtonTemplate
     * @param RCommonPhoneConfig[] $commonPhoneConfig
     * @param RMessageWaiting[] $messageWaiting
     * @param RIpPhoneServices[] $ipPhoneServices
     * @param RCtiRoutePoint[] $ctiRoutePoint
     * @param RTransPattern[] $transPattern
     * @param RCallingPartyTransformationPattern[] $callingPartyTransformationPattern
     * @param RSipRoutePattern[] $sipRoutePattern
     * @param RHuntPilot[] $huntPilot
     * @param RRoutePattern[] $routePattern
     * @param RApplicationDialRules[] $applicationDialRules
     * @param RDirectoryLookupDialRules[] $directoryLookupDialRules
     * @param RPhoneSecurityProfile[] $phoneSecurityProfile
     * @param RSipDialRules[] $sipDialRules
     * @param RConferenceBridge[] $conferenceBridge
     * @param RAnnunciator[] $annunciator
     * @param RMtp[] $mtp
     * @param RFixedMohAudioSource $fixedMohAudioSource
     * @param RRemoteDestinationProfile[] $remoteDestinationProfile
     * @param RLine[] $line
     * @param RDefaultDeviceProfile[] $defaultDeviceProfile
     * @param RH323Phone[] $h323Phone
     * @param RMohServer[] $mohServer
     * @param RH323Trunk[] $h323Trunk
     * @param RPhone[] $phone
     * @param RH323Gateway[] $h323Gateway
     * @param RDeviceProfile[] $deviceProfile
     * @param RRemoteDestination[] $remoteDestination
     * @param RGateway[] $gateway
     * @param RGatewayEndpointAnalogAccess $gatewayEndpointAnalogAccess
     * @param RGatewayEndpointDigitalAccessPri $gatewayEndpointDigitalAccessPri
     * @param RGatewayEndpointDigitalAccessBri $gatewayEndpointDigitalAccessBri
     * @param RGatewayEndpointDigitalAccessT1 $gatewayEndpointDigitalAccessT1
     * @param RVg224 $vg224
     * @param RCiscoCatalyst600024PortFXSGateway[] $ciscoCatalyst600024PortFXSGateway
     * @param RCiscoCatalyst6000E1VoIPGateway[] $ciscoCatalyst6000E1VoIPGateway
     * @param RCiscoCatalyst6000T1VoIPGatewayPri[] $ciscoCatalyst6000T1VoIPGatewayPri
     * @param RCiscoCatalyst6000T1VoIPGatewayT1[] $ciscoCatalyst6000T1VoIPGatewayT1
     * @param RCallPickupGroup[] $callPickupGroup
     * @param LRoutePlan[] $routePlan
     * @param RGeoLocationPolicy[] $geoLocationPolicy
     * @param RSipTrunk[] $sipTrunk
     * @param RCalledPartyTransformationPattern[] $calledPartyTransformationPattern
     * @param RExternalCallControlProfile[] $externalCallControlProfile
     * @param RSafSecurityProfile[] $safSecurityProfile
     * @param RSafForwarder[] $safForwarder
     * @param RCcdHostedDN[] $ccdHostedDN
     * @param RCcdHostedDNGroup[] $ccdHostedDNGroup
     * @param RCcdRequestingService $ccdRequestingService
     * @param RInterClusterServiceProfile $interClusterServiceProfile
     * @param RRemoteCluster[] $remoteCluster
     * @param RCcdAdvertisingService[] $ccdAdvertisingService
     * @param RLdapDirectory[] $ldapDirectory
     * @param REmccFeatureConfig $emccFeatureConfig
     * @param RSafCcdPurgeBlockLearnedRoutes[] $safCcdPurgeBlockLearnedRoutes
     * @param RVpnGateway[] $vpnGateway
     * @param RVpnGroup[] $vpnGroup
     * @param RVpnProfile[] $vpnProfile
     * @param RImeServer[] $imeServer
     * @param RImeRouteFilterGroup[] $imeRouteFilterGroup
     * @param RImeRouteFilterElement[] $imeRouteFilterElement
     * @param RImeClient[] $imeClient
     * @param RImeEnrolledPattern[] $imeEnrolledPattern
     * @param RImeEnrolledPatternGroup[] $imeEnrolledPatternGroup
     * @param RImeExclusionNumber[] $imeExclusionNumber
     * @param RImeExclusionNumberGroup[] $imeExclusionNumberGroup
     * @param RImeFirewall[] $imeFirewall
     * @param RImeE164Transformation[] $imeE164Transformation
     * @param RTransformationProfile[] $transformationProfile
     * @param RFallbackProfile[] $fallbackProfile
     * @param RLdapFilter[] $ldapFilter
     * @param RTvsCertificate[] $tvsCertificate
     * @param RFeatureControlPolicy[] $featureControlPolicy
     * @param RMobilityProfile[] $mobilityProfile
     * @param REnterpriseFeatureAccessConfiguration[] $enterpriseFeatureAccessConfiguration
     * @param RHandoffConfiguration $handoffConfiguration
     * @param LCalledPartyTracing[] $calledPartyTracing
     * @param RSIPNormalizationScript[] $sIPNormalizationScript
     * @param RCustomUserField[] $customUserField
     * @param RGatewaySccpEndpoints $gatewaySccpEndpoints
     * @param LBillingServer $billingServer
     * @param RLbmGroup[] $lbmGroup
     * @param RAnnouncement[] $announcement
     * @param RServiceProfile[] $serviceProfile
     * @param RLdapSyncCustomField[] $ldapSyncCustomField
     * @param RAudioCodecPreferenceList[] $audioCodecPreferenceList
     * @param RUcService[] $ucService
     * @param RLbmHubGroup[] $lbmHubGroup
     * @param RImportedDirectoryUriCatalogs[] $importedDirectoryUriCatalogs
     * @param mixed[] $row
     * @param int $rowsUpdated
     * @param string $userAuthenticated
     * @param int $code
     * @param int $daysToExpiry
     * @param XOSVersion $os
     * @param int $_
     * @param RMobility $mobility
     * @param XEnterprisePhoneConfig $enterprisePhoneConfig
     * @param XLicenseUnitReport $licenseUnitReport
     * @param XLdapSystem $ldapSystem
     * @param XLdapAuthentication $ldapAuthentication
     * @param ComponentVersion $componentVersion
     * @param RFallbackFeatureConfig $fallbackFeatureConfig
     * @param RImeLearnedRoutes $imeLearnedRoutes
     * @param RImeFeatureConfig $imeFeatureConfig
     * @param RAppServerInfo $appServerInfo
     * @param RSoftKeySet $softKeySet
     * @param RSyslogConfiguration $syslogConfiguration
     * @param NewIlsConfig $ilsConfig
     * @param RSNMPCommunityString $sNMPCommunityString
     * @param RSNMPGetUser $sNMPUser
     * @param RSNMPMIB2List $sNMPMIB2List
     */
    public function __construct(array $sipProfile = array(), array $sipTrunkSecurityProfile = array(), array $timePeriod = array(), array $timeSchedule = array(), array $todAccess = array(), array $voiceMailPilot = array(), array $processNode = array(), array $callerFilterList = array(), array $routePartition = array(), array $css = array(), array $callManager = array(), array $mediaResourceGroup = array(), array $mediaResourceList = array(), array $region = array(), array $aarGroup = array(), array $physicalLocation = array(), array $routeGroup = array(), array $devicePool = array(), array $deviceMobilityGroup = array(), array $location = array(), array $softKeyTemplate = array(), array $transcoder = array(), array $commonDeviceConfig = array(), array $resourcePriorityNamespace = array(), array $resourcePriorityNamespaceList = array(), array $deviceMobility = array(), array $cmcInfo = array(), array $credentialPolicy = array(), array $facInfo = array(), array $huntList = array(), array $ivrUserLocale = array(), array $lineGroup = array(), array $recordingProfile = array(), array $routeFilter = array(), array $callManagerGroup = array(), array $userGroup = array(), array $dialPlan = array(), array $dialPlanTag = array(), array $ddi = array(), array $mobileSmartClientProfile = array(), array $processNodeService = array(), array $mohAudioSource = array(), array $dhcpServer = array(), array $dhcpSubnet = array(), array $callPark = array(), array $directedCallPark = array(), array $meetMe = array(), RMobileVoiceAccess $mobileVoiceAccess = null, array $routeList = array(), array $user = array(), array $licenseCapabilities = array(), array $appUser = array(), array $sipRealm = array(), array $phoneNtp = array(), array $dateTimeGroup = array(), array $presenceGroup = array(), array $geoLocation = array(), array $srst = array(), array $mlppDomain = array(), array $cumaServerSecurityProfile = array(), array $applicationServer = array(), array $applicationUserCapfProfile = array(), array $endUserCapfProfile = array(), RServiceParameter $serviceParameter = null, array $geoLocationFilter = array(), array $voiceMailProfile = array(), array $voiceMailPort = array(), array $gatekeeper = array(), array $phoneButtonTemplate = array(), array $commonPhoneConfig = array(), array $messageWaiting = array(), array $ipPhoneServices = array(), array $ctiRoutePoint = array(), array $transPattern = array(), array $callingPartyTransformationPattern = array(), array $sipRoutePattern = array(), array $huntPilot = array(), array $routePattern = array(), array $applicationDialRules = array(), array $directoryLookupDialRules = array(), array $phoneSecurityProfile = array(), array $sipDialRules = array(), array $conferenceBridge = array(), array $annunciator = array(), array $mtp = array(), RFixedMohAudioSource $fixedMohAudioSource = null, array $remoteDestinationProfile = array(), array $line = array(), array $defaultDeviceProfile = array(), array $h323Phone = array(), array $mohServer = array(), array $h323Trunk = array(), array $phone = array(), array $h323Gateway = array(), array $deviceProfile = array(), array $remoteDestination = array(), array $gateway = array(), RGatewayEndpointAnalogAccess $gatewayEndpointAnalogAccess = null, RGatewayEndpointDigitalAccessPri $gatewayEndpointDigitalAccessPri = null, RGatewayEndpointDigitalAccessBri $gatewayEndpointDigitalAccessBri = null, RGatewayEndpointDigitalAccessT1 $gatewayEndpointDigitalAccessT1 = null, RVg224 $vg224 = null, array $ciscoCatalyst600024PortFXSGateway = array(), array $ciscoCatalyst6000E1VoIPGateway = array(), array $ciscoCatalyst6000T1VoIPGatewayPri = array(), array $ciscoCatalyst6000T1VoIPGatewayT1 = array(), array $callPickupGroup = array(), array $routePlan = array(), array $geoLocationPolicy = array(), array $sipTrunk = array(), array $calledPartyTransformationPattern = array(), array $externalCallControlProfile = array(), array $safSecurityProfile = array(), array $safForwarder = array(), array $ccdHostedDN = array(), array $ccdHostedDNGroup = array(), RCcdRequestingService $ccdRequestingService = null, RInterClusterServiceProfile $interClusterServiceProfile = null, array $remoteCluster = array(), array $ccdAdvertisingService = array(), array $ldapDirectory = array(), REmccFeatureConfig $emccFeatureConfig = null, array $safCcdPurgeBlockLearnedRoutes = array(), array $vpnGateway = array(), array $vpnGroup = array(), array $vpnProfile = array(), array $imeServer = array(), array $imeRouteFilterGroup = array(), array $imeRouteFilterElement = array(), array $imeClient = array(), array $imeEnrolledPattern = array(), array $imeEnrolledPatternGroup = array(), array $imeExclusionNumber = array(), array $imeExclusionNumberGroup = array(), array $imeFirewall = array(), array $imeE164Transformation = array(), array $transformationProfile = array(), array $fallbackProfile = array(), array $ldapFilter = array(), array $tvsCertificate = array(), array $featureControlPolicy = array(), array $mobilityProfile = array(), array $enterpriseFeatureAccessConfiguration = array(), RHandoffConfiguration $handoffConfiguration = null, array $calledPartyTracing = array(), array $sIPNormalizationScript = array(), array $customUserField = array(), RGatewaySccpEndpoints $gatewaySccpEndpoints = null, LBillingServer $billingServer = null, array $lbmGroup = array(), array $announcement = array(), array $serviceProfile = array(), array $ldapSyncCustomField = array(), array $audioCodecPreferenceList = array(), array $ucService = array(), array $lbmHubGroup = array(), array $importedDirectoryUriCatalogs = array(), array $row = array(), $rowsUpdated = null, $userAuthenticated = null, $code = null, $daysToExpiry = null, XOSVersion $os = null, $_ = null, RMobility $mobility = null, XEnterprisePhoneConfig $enterprisePhoneConfig = null, XLicenseUnitReport $licenseUnitReport = null, XLdapSystem $ldapSystem = null, XLdapAuthentication $ldapAuthentication = null, ComponentVersion $componentVersion = null, RFallbackFeatureConfig $fallbackFeatureConfig = null, RImeLearnedRoutes $imeLearnedRoutes = null, RImeFeatureConfig $imeFeatureConfig = null, RAppServerInfo $appServerInfo = null, RSoftKeySet $softKeySet = null, RSyslogConfiguration $syslogConfiguration = null, NewIlsConfig $ilsConfig = null, RSNMPCommunityString $sNMPCommunityString = null, RSNMPGetUser $sNMPUser = null, RSNMPMIB2List $sNMPMIB2List = null)
    {
        $this
            ->setSipProfile($sipProfile)
            ->setSipTrunkSecurityProfile($sipTrunkSecurityProfile)
            ->setTimePeriod($timePeriod)
            ->setTimeSchedule($timeSchedule)
            ->setTodAccess($todAccess)
            ->setVoiceMailPilot($voiceMailPilot)
            ->setProcessNode($processNode)
            ->setCallerFilterList($callerFilterList)
            ->setRoutePartition($routePartition)
            ->setCss($css)
            ->setCallManager($callManager)
            ->setMediaResourceGroup($mediaResourceGroup)
            ->setMediaResourceList($mediaResourceList)
            ->setRegion($region)
            ->setAarGroup($aarGroup)
            ->setPhysicalLocation($physicalLocation)
            ->setRouteGroup($routeGroup)
            ->setDevicePool($devicePool)
            ->setDeviceMobilityGroup($deviceMobilityGroup)
            ->setLocation($location)
            ->setSoftKeyTemplate($softKeyTemplate)
            ->setTranscoder($transcoder)
            ->setCommonDeviceConfig($commonDeviceConfig)
            ->setResourcePriorityNamespace($resourcePriorityNamespace)
            ->setResourcePriorityNamespaceList($resourcePriorityNamespaceList)
            ->setDeviceMobility($deviceMobility)
            ->setCmcInfo($cmcInfo)
            ->setCredentialPolicy($credentialPolicy)
            ->setFacInfo($facInfo)
            ->setHuntList($huntList)
            ->setIvrUserLocale($ivrUserLocale)
            ->setLineGroup($lineGroup)
            ->setRecordingProfile($recordingProfile)
            ->setRouteFilter($routeFilter)
            ->setCallManagerGroup($callManagerGroup)
            ->setUserGroup($userGroup)
            ->setDialPlan($dialPlan)
            ->setDialPlanTag($dialPlanTag)
            ->setDdi($ddi)
            ->setMobileSmartClientProfile($mobileSmartClientProfile)
            ->setProcessNodeService($processNodeService)
            ->setMohAudioSource($mohAudioSource)
            ->setDhcpServer($dhcpServer)
            ->setDhcpSubnet($dhcpSubnet)
            ->setCallPark($callPark)
            ->setDirectedCallPark($directedCallPark)
            ->setMeetMe($meetMe)
            ->setMobileVoiceAccess($mobileVoiceAccess)
            ->setRouteList($routeList)
            ->setUser($user)
            ->setLicenseCapabilities($licenseCapabilities)
            ->setAppUser($appUser)
            ->setSipRealm($sipRealm)
            ->setPhoneNtp($phoneNtp)
            ->setDateTimeGroup($dateTimeGroup)
            ->setPresenceGroup($presenceGroup)
            ->setGeoLocation($geoLocation)
            ->setSrst($srst)
            ->setMlppDomain($mlppDomain)
            ->setCumaServerSecurityProfile($cumaServerSecurityProfile)
            ->setApplicationServer($applicationServer)
            ->setApplicationUserCapfProfile($applicationUserCapfProfile)
            ->setEndUserCapfProfile($endUserCapfProfile)
            ->setServiceParameter($serviceParameter)
            ->setGeoLocationFilter($geoLocationFilter)
            ->setVoiceMailProfile($voiceMailProfile)
            ->setVoiceMailPort($voiceMailPort)
            ->setGatekeeper($gatekeeper)
            ->setPhoneButtonTemplate($phoneButtonTemplate)
            ->setCommonPhoneConfig($commonPhoneConfig)
            ->setMessageWaiting($messageWaiting)
            ->setIpPhoneServices($ipPhoneServices)
            ->setCtiRoutePoint($ctiRoutePoint)
            ->setTransPattern($transPattern)
            ->setCallingPartyTransformationPattern($callingPartyTransformationPattern)
            ->setSipRoutePattern($sipRoutePattern)
            ->setHuntPilot($huntPilot)
            ->setRoutePattern($routePattern)
            ->setApplicationDialRules($applicationDialRules)
            ->setDirectoryLookupDialRules($directoryLookupDialRules)
            ->setPhoneSecurityProfile($phoneSecurityProfile)
            ->setSipDialRules($sipDialRules)
            ->setConferenceBridge($conferenceBridge)
            ->setAnnunciator($annunciator)
            ->setMtp($mtp)
            ->setFixedMohAudioSource($fixedMohAudioSource)
            ->setRemoteDestinationProfile($remoteDestinationProfile)
            ->setLine($line)
            ->setDefaultDeviceProfile($defaultDeviceProfile)
            ->setH323Phone($h323Phone)
            ->setMohServer($mohServer)
            ->setH323Trunk($h323Trunk)
            ->setPhone($phone)
            ->setH323Gateway($h323Gateway)
            ->setDeviceProfile($deviceProfile)
            ->setRemoteDestination($remoteDestination)
            ->setGateway($gateway)
            ->setGatewayEndpointAnalogAccess($gatewayEndpointAnalogAccess)
            ->setGatewayEndpointDigitalAccessPri($gatewayEndpointDigitalAccessPri)
            ->setGatewayEndpointDigitalAccessBri($gatewayEndpointDigitalAccessBri)
            ->setGatewayEndpointDigitalAccessT1($gatewayEndpointDigitalAccessT1)
            ->setVg224($vg224)
            ->setCiscoCatalyst600024PortFXSGateway($ciscoCatalyst600024PortFXSGateway)
            ->setCiscoCatalyst6000E1VoIPGateway($ciscoCatalyst6000E1VoIPGateway)
            ->setCiscoCatalyst6000T1VoIPGatewayPri($ciscoCatalyst6000T1VoIPGatewayPri)
            ->setCiscoCatalyst6000T1VoIPGatewayT1($ciscoCatalyst6000T1VoIPGatewayT1)
            ->setCallPickupGroup($callPickupGroup)
            ->setRoutePlan($routePlan)
            ->setGeoLocationPolicy($geoLocationPolicy)
            ->setSipTrunk($sipTrunk)
            ->setCalledPartyTransformationPattern($calledPartyTransformationPattern)
            ->setExternalCallControlProfile($externalCallControlProfile)
            ->setSafSecurityProfile($safSecurityProfile)
            ->setSafForwarder($safForwarder)
            ->setCcdHostedDN($ccdHostedDN)
            ->setCcdHostedDNGroup($ccdHostedDNGroup)
            ->setCcdRequestingService($ccdRequestingService)
            ->setInterClusterServiceProfile($interClusterServiceProfile)
            ->setRemoteCluster($remoteCluster)
            ->setCcdAdvertisingService($ccdAdvertisingService)
            ->setLdapDirectory($ldapDirectory)
            ->setEmccFeatureConfig($emccFeatureConfig)
            ->setSafCcdPurgeBlockLearnedRoutes($safCcdPurgeBlockLearnedRoutes)
            ->setVpnGateway($vpnGateway)
            ->setVpnGroup($vpnGroup)
            ->setVpnProfile($vpnProfile)
            ->setImeServer($imeServer)
            ->setImeRouteFilterGroup($imeRouteFilterGroup)
            ->setImeRouteFilterElement($imeRouteFilterElement)
            ->setImeClient($imeClient)
            ->setImeEnrolledPattern($imeEnrolledPattern)
            ->setImeEnrolledPatternGroup($imeEnrolledPatternGroup)
            ->setImeExclusionNumber($imeExclusionNumber)
            ->setImeExclusionNumberGroup($imeExclusionNumberGroup)
            ->setImeFirewall($imeFirewall)
            ->setImeE164Transformation($imeE164Transformation)
            ->setTransformationProfile($transformationProfile)
            ->setFallbackProfile($fallbackProfile)
            ->setLdapFilter($ldapFilter)
            ->setTvsCertificate($tvsCertificate)
            ->setFeatureControlPolicy($featureControlPolicy)
            ->setMobilityProfile($mobilityProfile)
            ->setEnterpriseFeatureAccessConfiguration($enterpriseFeatureAccessConfiguration)
            ->setHandoffConfiguration($handoffConfiguration)
            ->setCalledPartyTracing($calledPartyTracing)
            ->setSIPNormalizationScript($sIPNormalizationScript)
            ->setCustomUserField($customUserField)
            ->setGatewaySccpEndpoints($gatewaySccpEndpoints)
            ->setBillingServer($billingServer)
            ->setLbmGroup($lbmGroup)
            ->setAnnouncement($announcement)
            ->setServiceProfile($serviceProfile)
            ->setLdapSyncCustomField($ldapSyncCustomField)
            ->setAudioCodecPreferenceList($audioCodecPreferenceList)
            ->setUcService($ucService)
            ->setLbmHubGroup($lbmHubGroup)
            ->setImportedDirectoryUriCatalogs($importedDirectoryUriCatalogs)
            ->setRow($row)
            ->setRowsUpdated($rowsUpdated)
            ->setUserAuthenticated($userAuthenticated)
            ->setCode($code)
            ->setDaysToExpiry($daysToExpiry)
            ->setOs($os)
            ->set_($_)
            ->setMobility($mobility)
            ->setEnterprisePhoneConfig($enterprisePhoneConfig)
            ->setLicenseUnitReport($licenseUnitReport)
            ->setLdapSystem($ldapSystem)
            ->setLdapAuthentication($ldapAuthentication)
            ->setComponentVersion($componentVersion)
            ->setFallbackFeatureConfig($fallbackFeatureConfig)
            ->setImeLearnedRoutes($imeLearnedRoutes)
            ->setImeFeatureConfig($imeFeatureConfig)
            ->setAppServerInfo($appServerInfo)
            ->setSoftKeySet($softKeySet)
            ->setSyslogConfiguration($syslogConfiguration)
            ->setIlsConfig($ilsConfig)
            ->setSNMPCommunityString($sNMPCommunityString)
            ->setSNMPUser($sNMPUser)
            ->setSNMPMIB2List($sNMPMIB2List);
    }
    /**
     * Get sipProfile value
     * @return RSipProfile[]|null
     */
    public function getSipProfile()
    {
        return $this->sipProfile;
    }
    /**
     * Set sipProfile value
     * @throws \InvalidArgumentException
     * @param RSipProfile[] $sipProfile
     * @return _return
     */
    public function setSipProfile(array $sipProfile = array())
    {
        foreach ($sipProfile as $returnSipProfileItem) {
            // validation for constraint: itemType
            if (!$returnSipProfileItem instanceof RSipProfile) {
                throw new \InvalidArgumentException(sprintf('The sipProfile property can only contain items of RSipProfile, "%s" given', is_object($returnSipProfileItem) ? get_class($returnSipProfileItem) : gettype($returnSipProfileItem)), __LINE__);
            }
        }
        $this->sipProfile = $sipProfile;
        return $this;
    }
    /**
     * Add item to sipProfile value
     * @throws \InvalidArgumentException
     * @param RSipProfile $item
     * @return _return
     */
    public function addToSipProfile(RSipProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipProfile) {
            throw new \InvalidArgumentException(sprintf('The sipProfile property can only contain items of RSipProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipProfile[] = $item;
        return $this;
    }
    /**
     * Get sipTrunkSecurityProfile value
     * @return RSipTrunkSecurityProfile[]|null
     */
    public function getSipTrunkSecurityProfile()
    {
        return $this->sipTrunkSecurityProfile;
    }
    /**
     * Set sipTrunkSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RSipTrunkSecurityProfile[] $sipTrunkSecurityProfile
     * @return _return
     */
    public function setSipTrunkSecurityProfile(array $sipTrunkSecurityProfile = array())
    {
        foreach ($sipTrunkSecurityProfile as $returnSipTrunkSecurityProfileItem) {
            // validation for constraint: itemType
            if (!$returnSipTrunkSecurityProfileItem instanceof RSipTrunkSecurityProfile) {
                throw new \InvalidArgumentException(sprintf('The sipTrunkSecurityProfile property can only contain items of RSipTrunkSecurityProfile, "%s" given', is_object($returnSipTrunkSecurityProfileItem) ? get_class($returnSipTrunkSecurityProfileItem) : gettype($returnSipTrunkSecurityProfileItem)), __LINE__);
            }
        }
        $this->sipTrunkSecurityProfile = $sipTrunkSecurityProfile;
        return $this;
    }
    /**
     * Add item to sipTrunkSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RSipTrunkSecurityProfile $item
     * @return _return
     */
    public function addToSipTrunkSecurityProfile(RSipTrunkSecurityProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipTrunkSecurityProfile) {
            throw new \InvalidArgumentException(sprintf('The sipTrunkSecurityProfile property can only contain items of RSipTrunkSecurityProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipTrunkSecurityProfile[] = $item;
        return $this;
    }
    /**
     * Get timePeriod value
     * @return RTimePeriod[]|null
     */
    public function getTimePeriod()
    {
        return $this->timePeriod;
    }
    /**
     * Set timePeriod value
     * @throws \InvalidArgumentException
     * @param RTimePeriod[] $timePeriod
     * @return _return
     */
    public function setTimePeriod(array $timePeriod = array())
    {
        foreach ($timePeriod as $returnTimePeriodItem) {
            // validation for constraint: itemType
            if (!$returnTimePeriodItem instanceof RTimePeriod) {
                throw new \InvalidArgumentException(sprintf('The timePeriod property can only contain items of RTimePeriod, "%s" given', is_object($returnTimePeriodItem) ? get_class($returnTimePeriodItem) : gettype($returnTimePeriodItem)), __LINE__);
            }
        }
        $this->timePeriod = $timePeriod;
        return $this;
    }
    /**
     * Add item to timePeriod value
     * @throws \InvalidArgumentException
     * @param RTimePeriod $item
     * @return _return
     */
    public function addToTimePeriod(RTimePeriod $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTimePeriod) {
            throw new \InvalidArgumentException(sprintf('The timePeriod property can only contain items of RTimePeriod, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->timePeriod[] = $item;
        return $this;
    }
    /**
     * Get timeSchedule value
     * @return RTimeSchedule[]|null
     */
    public function getTimeSchedule()
    {
        return $this->timeSchedule;
    }
    /**
     * Set timeSchedule value
     * @throws \InvalidArgumentException
     * @param RTimeSchedule[] $timeSchedule
     * @return _return
     */
    public function setTimeSchedule(array $timeSchedule = array())
    {
        foreach ($timeSchedule as $returnTimeScheduleItem) {
            // validation for constraint: itemType
            if (!$returnTimeScheduleItem instanceof RTimeSchedule) {
                throw new \InvalidArgumentException(sprintf('The timeSchedule property can only contain items of RTimeSchedule, "%s" given', is_object($returnTimeScheduleItem) ? get_class($returnTimeScheduleItem) : gettype($returnTimeScheduleItem)), __LINE__);
            }
        }
        $this->timeSchedule = $timeSchedule;
        return $this;
    }
    /**
     * Add item to timeSchedule value
     * @throws \InvalidArgumentException
     * @param RTimeSchedule $item
     * @return _return
     */
    public function addToTimeSchedule(RTimeSchedule $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTimeSchedule) {
            throw new \InvalidArgumentException(sprintf('The timeSchedule property can only contain items of RTimeSchedule, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->timeSchedule[] = $item;
        return $this;
    }
    /**
     * Get todAccess value
     * @return RTodAccess[]|null
     */
    public function getTodAccess()
    {
        return $this->todAccess;
    }
    /**
     * Set todAccess value
     * @throws \InvalidArgumentException
     * @param RTodAccess[] $todAccess
     * @return _return
     */
    public function setTodAccess(array $todAccess = array())
    {
        foreach ($todAccess as $returnTodAccessItem) {
            // validation for constraint: itemType
            if (!$returnTodAccessItem instanceof RTodAccess) {
                throw new \InvalidArgumentException(sprintf('The todAccess property can only contain items of RTodAccess, "%s" given', is_object($returnTodAccessItem) ? get_class($returnTodAccessItem) : gettype($returnTodAccessItem)), __LINE__);
            }
        }
        $this->todAccess = $todAccess;
        return $this;
    }
    /**
     * Add item to todAccess value
     * @throws \InvalidArgumentException
     * @param RTodAccess $item
     * @return _return
     */
    public function addToTodAccess(RTodAccess $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTodAccess) {
            throw new \InvalidArgumentException(sprintf('The todAccess property can only contain items of RTodAccess, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->todAccess[] = $item;
        return $this;
    }
    /**
     * Get voiceMailPilot value
     * @return RVoiceMailPilot[]|null
     */
    public function getVoiceMailPilot()
    {
        return $this->voiceMailPilot;
    }
    /**
     * Set voiceMailPilot value
     * @throws \InvalidArgumentException
     * @param RVoiceMailPilot[] $voiceMailPilot
     * @return _return
     */
    public function setVoiceMailPilot(array $voiceMailPilot = array())
    {
        foreach ($voiceMailPilot as $returnVoiceMailPilotItem) {
            // validation for constraint: itemType
            if (!$returnVoiceMailPilotItem instanceof RVoiceMailPilot) {
                throw new \InvalidArgumentException(sprintf('The voiceMailPilot property can only contain items of RVoiceMailPilot, "%s" given', is_object($returnVoiceMailPilotItem) ? get_class($returnVoiceMailPilotItem) : gettype($returnVoiceMailPilotItem)), __LINE__);
            }
        }
        $this->voiceMailPilot = $voiceMailPilot;
        return $this;
    }
    /**
     * Add item to voiceMailPilot value
     * @throws \InvalidArgumentException
     * @param RVoiceMailPilot $item
     * @return _return
     */
    public function addToVoiceMailPilot(RVoiceMailPilot $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVoiceMailPilot) {
            throw new \InvalidArgumentException(sprintf('The voiceMailPilot property can only contain items of RVoiceMailPilot, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->voiceMailPilot[] = $item;
        return $this;
    }
    /**
     * Get processNode value
     * @return RProcessNode[]|null
     */
    public function getProcessNode()
    {
        return $this->processNode;
    }
    /**
     * Set processNode value
     * @throws \InvalidArgumentException
     * @param RProcessNode[] $processNode
     * @return _return
     */
    public function setProcessNode(array $processNode = array())
    {
        foreach ($processNode as $returnProcessNodeItem) {
            // validation for constraint: itemType
            if (!$returnProcessNodeItem instanceof RProcessNode) {
                throw new \InvalidArgumentException(sprintf('The processNode property can only contain items of RProcessNode, "%s" given', is_object($returnProcessNodeItem) ? get_class($returnProcessNodeItem) : gettype($returnProcessNodeItem)), __LINE__);
            }
        }
        $this->processNode = $processNode;
        return $this;
    }
    /**
     * Add item to processNode value
     * @throws \InvalidArgumentException
     * @param RProcessNode $item
     * @return _return
     */
    public function addToProcessNode(RProcessNode $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RProcessNode) {
            throw new \InvalidArgumentException(sprintf('The processNode property can only contain items of RProcessNode, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->processNode[] = $item;
        return $this;
    }
    /**
     * Get callerFilterList value
     * @return RCallerFilterList[]|null
     */
    public function getCallerFilterList()
    {
        return $this->callerFilterList;
    }
    /**
     * Set callerFilterList value
     * @throws \InvalidArgumentException
     * @param RCallerFilterList[] $callerFilterList
     * @return _return
     */
    public function setCallerFilterList(array $callerFilterList = array())
    {
        foreach ($callerFilterList as $returnCallerFilterListItem) {
            // validation for constraint: itemType
            if (!$returnCallerFilterListItem instanceof RCallerFilterList) {
                throw new \InvalidArgumentException(sprintf('The callerFilterList property can only contain items of RCallerFilterList, "%s" given', is_object($returnCallerFilterListItem) ? get_class($returnCallerFilterListItem) : gettype($returnCallerFilterListItem)), __LINE__);
            }
        }
        $this->callerFilterList = $callerFilterList;
        return $this;
    }
    /**
     * Add item to callerFilterList value
     * @throws \InvalidArgumentException
     * @param RCallerFilterList $item
     * @return _return
     */
    public function addToCallerFilterList(RCallerFilterList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallerFilterList) {
            throw new \InvalidArgumentException(sprintf('The callerFilterList property can only contain items of RCallerFilterList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callerFilterList[] = $item;
        return $this;
    }
    /**
     * Get routePartition value
     * @return RRoutePartition[]|null
     */
    public function getRoutePartition()
    {
        return $this->routePartition;
    }
    /**
     * Set routePartition value
     * @throws \InvalidArgumentException
     * @param RRoutePartition[] $routePartition
     * @return _return
     */
    public function setRoutePartition(array $routePartition = array())
    {
        foreach ($routePartition as $returnRoutePartitionItem) {
            // validation for constraint: itemType
            if (!$returnRoutePartitionItem instanceof RRoutePartition) {
                throw new \InvalidArgumentException(sprintf('The routePartition property can only contain items of RRoutePartition, "%s" given', is_object($returnRoutePartitionItem) ? get_class($returnRoutePartitionItem) : gettype($returnRoutePartitionItem)), __LINE__);
            }
        }
        $this->routePartition = $routePartition;
        return $this;
    }
    /**
     * Add item to routePartition value
     * @throws \InvalidArgumentException
     * @param RRoutePartition $item
     * @return _return
     */
    public function addToRoutePartition(RRoutePartition $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRoutePartition) {
            throw new \InvalidArgumentException(sprintf('The routePartition property can only contain items of RRoutePartition, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routePartition[] = $item;
        return $this;
    }
    /**
     * Get css value
     * @return RCss[]|null
     */
    public function getCss()
    {
        return $this->css;
    }
    /**
     * Set css value
     * @throws \InvalidArgumentException
     * @param RCss[] $css
     * @return _return
     */
    public function setCss(array $css = array())
    {
        foreach ($css as $returnCssItem) {
            // validation for constraint: itemType
            if (!$returnCssItem instanceof RCss) {
                throw new \InvalidArgumentException(sprintf('The css property can only contain items of RCss, "%s" given', is_object($returnCssItem) ? get_class($returnCssItem) : gettype($returnCssItem)), __LINE__);
            }
        }
        $this->css = $css;
        return $this;
    }
    /**
     * Add item to css value
     * @throws \InvalidArgumentException
     * @param RCss $item
     * @return _return
     */
    public function addToCss(RCss $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCss) {
            throw new \InvalidArgumentException(sprintf('The css property can only contain items of RCss, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->css[] = $item;
        return $this;
    }
    /**
     * Get callManager value
     * @return RCallManager[]|null
     */
    public function getCallManager()
    {
        return $this->callManager;
    }
    /**
     * Set callManager value
     * @throws \InvalidArgumentException
     * @param RCallManager[] $callManager
     * @return _return
     */
    public function setCallManager(array $callManager = array())
    {
        foreach ($callManager as $returnCallManagerItem) {
            // validation for constraint: itemType
            if (!$returnCallManagerItem instanceof RCallManager) {
                throw new \InvalidArgumentException(sprintf('The callManager property can only contain items of RCallManager, "%s" given', is_object($returnCallManagerItem) ? get_class($returnCallManagerItem) : gettype($returnCallManagerItem)), __LINE__);
            }
        }
        $this->callManager = $callManager;
        return $this;
    }
    /**
     * Add item to callManager value
     * @throws \InvalidArgumentException
     * @param RCallManager $item
     * @return _return
     */
    public function addToCallManager(RCallManager $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallManager) {
            throw new \InvalidArgumentException(sprintf('The callManager property can only contain items of RCallManager, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callManager[] = $item;
        return $this;
    }
    /**
     * Get mediaResourceGroup value
     * @return RMediaResourceGroup[]|null
     */
    public function getMediaResourceGroup()
    {
        return $this->mediaResourceGroup;
    }
    /**
     * Set mediaResourceGroup value
     * @throws \InvalidArgumentException
     * @param RMediaResourceGroup[] $mediaResourceGroup
     * @return _return
     */
    public function setMediaResourceGroup(array $mediaResourceGroup = array())
    {
        foreach ($mediaResourceGroup as $returnMediaResourceGroupItem) {
            // validation for constraint: itemType
            if (!$returnMediaResourceGroupItem instanceof RMediaResourceGroup) {
                throw new \InvalidArgumentException(sprintf('The mediaResourceGroup property can only contain items of RMediaResourceGroup, "%s" given', is_object($returnMediaResourceGroupItem) ? get_class($returnMediaResourceGroupItem) : gettype($returnMediaResourceGroupItem)), __LINE__);
            }
        }
        $this->mediaResourceGroup = $mediaResourceGroup;
        return $this;
    }
    /**
     * Add item to mediaResourceGroup value
     * @throws \InvalidArgumentException
     * @param RMediaResourceGroup $item
     * @return _return
     */
    public function addToMediaResourceGroup(RMediaResourceGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMediaResourceGroup) {
            throw new \InvalidArgumentException(sprintf('The mediaResourceGroup property can only contain items of RMediaResourceGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mediaResourceGroup[] = $item;
        return $this;
    }
    /**
     * Get mediaResourceList value
     * @return RMediaResourceList[]|null
     */
    public function getMediaResourceList()
    {
        return $this->mediaResourceList;
    }
    /**
     * Set mediaResourceList value
     * @throws \InvalidArgumentException
     * @param RMediaResourceList[] $mediaResourceList
     * @return _return
     */
    public function setMediaResourceList(array $mediaResourceList = array())
    {
        foreach ($mediaResourceList as $returnMediaResourceListItem) {
            // validation for constraint: itemType
            if (!$returnMediaResourceListItem instanceof RMediaResourceList) {
                throw new \InvalidArgumentException(sprintf('The mediaResourceList property can only contain items of RMediaResourceList, "%s" given', is_object($returnMediaResourceListItem) ? get_class($returnMediaResourceListItem) : gettype($returnMediaResourceListItem)), __LINE__);
            }
        }
        $this->mediaResourceList = $mediaResourceList;
        return $this;
    }
    /**
     * Add item to mediaResourceList value
     * @throws \InvalidArgumentException
     * @param RMediaResourceList $item
     * @return _return
     */
    public function addToMediaResourceList(RMediaResourceList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMediaResourceList) {
            throw new \InvalidArgumentException(sprintf('The mediaResourceList property can only contain items of RMediaResourceList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mediaResourceList[] = $item;
        return $this;
    }
    /**
     * Get region value
     * @return RRegion[]|null
     */
    public function getRegion()
    {
        return $this->region;
    }
    /**
     * Set region value
     * @throws \InvalidArgumentException
     * @param RRegion[] $region
     * @return _return
     */
    public function setRegion(array $region = array())
    {
        foreach ($region as $returnRegionItem) {
            // validation for constraint: itemType
            if (!$returnRegionItem instanceof RRegion) {
                throw new \InvalidArgumentException(sprintf('The region property can only contain items of RRegion, "%s" given', is_object($returnRegionItem) ? get_class($returnRegionItem) : gettype($returnRegionItem)), __LINE__);
            }
        }
        $this->region = $region;
        return $this;
    }
    /**
     * Add item to region value
     * @throws \InvalidArgumentException
     * @param RRegion $item
     * @return _return
     */
    public function addToRegion(RRegion $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRegion) {
            throw new \InvalidArgumentException(sprintf('The region property can only contain items of RRegion, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->region[] = $item;
        return $this;
    }
    /**
     * Get aarGroup value
     * @return RAarGroup[]|null
     */
    public function getAarGroup()
    {
        return $this->aarGroup;
    }
    /**
     * Set aarGroup value
     * @throws \InvalidArgumentException
     * @param RAarGroup[] $aarGroup
     * @return _return
     */
    public function setAarGroup(array $aarGroup = array())
    {
        foreach ($aarGroup as $returnAarGroupItem) {
            // validation for constraint: itemType
            if (!$returnAarGroupItem instanceof RAarGroup) {
                throw new \InvalidArgumentException(sprintf('The aarGroup property can only contain items of RAarGroup, "%s" given', is_object($returnAarGroupItem) ? get_class($returnAarGroupItem) : gettype($returnAarGroupItem)), __LINE__);
            }
        }
        $this->aarGroup = $aarGroup;
        return $this;
    }
    /**
     * Add item to aarGroup value
     * @throws \InvalidArgumentException
     * @param RAarGroup $item
     * @return _return
     */
    public function addToAarGroup(RAarGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RAarGroup) {
            throw new \InvalidArgumentException(sprintf('The aarGroup property can only contain items of RAarGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->aarGroup[] = $item;
        return $this;
    }
    /**
     * Get physicalLocation value
     * @return RPhysicalLocation[]|null
     */
    public function getPhysicalLocation()
    {
        return $this->physicalLocation;
    }
    /**
     * Set physicalLocation value
     * @throws \InvalidArgumentException
     * @param RPhysicalLocation[] $physicalLocation
     * @return _return
     */
    public function setPhysicalLocation(array $physicalLocation = array())
    {
        foreach ($physicalLocation as $returnPhysicalLocationItem) {
            // validation for constraint: itemType
            if (!$returnPhysicalLocationItem instanceof RPhysicalLocation) {
                throw new \InvalidArgumentException(sprintf('The physicalLocation property can only contain items of RPhysicalLocation, "%s" given', is_object($returnPhysicalLocationItem) ? get_class($returnPhysicalLocationItem) : gettype($returnPhysicalLocationItem)), __LINE__);
            }
        }
        $this->physicalLocation = $physicalLocation;
        return $this;
    }
    /**
     * Add item to physicalLocation value
     * @throws \InvalidArgumentException
     * @param RPhysicalLocation $item
     * @return _return
     */
    public function addToPhysicalLocation(RPhysicalLocation $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPhysicalLocation) {
            throw new \InvalidArgumentException(sprintf('The physicalLocation property can only contain items of RPhysicalLocation, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->physicalLocation[] = $item;
        return $this;
    }
    /**
     * Get routeGroup value
     * @return RRouteGroup[]|null
     */
    public function getRouteGroup()
    {
        return $this->routeGroup;
    }
    /**
     * Set routeGroup value
     * @throws \InvalidArgumentException
     * @param RRouteGroup[] $routeGroup
     * @return _return
     */
    public function setRouteGroup(array $routeGroup = array())
    {
        foreach ($routeGroup as $returnRouteGroupItem) {
            // validation for constraint: itemType
            if (!$returnRouteGroupItem instanceof RRouteGroup) {
                throw new \InvalidArgumentException(sprintf('The routeGroup property can only contain items of RRouteGroup, "%s" given', is_object($returnRouteGroupItem) ? get_class($returnRouteGroupItem) : gettype($returnRouteGroupItem)), __LINE__);
            }
        }
        $this->routeGroup = $routeGroup;
        return $this;
    }
    /**
     * Add item to routeGroup value
     * @throws \InvalidArgumentException
     * @param RRouteGroup $item
     * @return _return
     */
    public function addToRouteGroup(RRouteGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRouteGroup) {
            throw new \InvalidArgumentException(sprintf('The routeGroup property can only contain items of RRouteGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routeGroup[] = $item;
        return $this;
    }
    /**
     * Get devicePool value
     * @return RDevicePool[]|null
     */
    public function getDevicePool()
    {
        return $this->devicePool;
    }
    /**
     * Set devicePool value
     * @throws \InvalidArgumentException
     * @param RDevicePool[] $devicePool
     * @return _return
     */
    public function setDevicePool(array $devicePool = array())
    {
        foreach ($devicePool as $returnDevicePoolItem) {
            // validation for constraint: itemType
            if (!$returnDevicePoolItem instanceof RDevicePool) {
                throw new \InvalidArgumentException(sprintf('The devicePool property can only contain items of RDevicePool, "%s" given', is_object($returnDevicePoolItem) ? get_class($returnDevicePoolItem) : gettype($returnDevicePoolItem)), __LINE__);
            }
        }
        $this->devicePool = $devicePool;
        return $this;
    }
    /**
     * Add item to devicePool value
     * @throws \InvalidArgumentException
     * @param RDevicePool $item
     * @return _return
     */
    public function addToDevicePool(RDevicePool $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDevicePool) {
            throw new \InvalidArgumentException(sprintf('The devicePool property can only contain items of RDevicePool, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->devicePool[] = $item;
        return $this;
    }
    /**
     * Get deviceMobilityGroup value
     * @return RDeviceMobilityGroup[]|null
     */
    public function getDeviceMobilityGroup()
    {
        return $this->deviceMobilityGroup;
    }
    /**
     * Set deviceMobilityGroup value
     * @throws \InvalidArgumentException
     * @param RDeviceMobilityGroup[] $deviceMobilityGroup
     * @return _return
     */
    public function setDeviceMobilityGroup(array $deviceMobilityGroup = array())
    {
        foreach ($deviceMobilityGroup as $returnDeviceMobilityGroupItem) {
            // validation for constraint: itemType
            if (!$returnDeviceMobilityGroupItem instanceof RDeviceMobilityGroup) {
                throw new \InvalidArgumentException(sprintf('The deviceMobilityGroup property can only contain items of RDeviceMobilityGroup, "%s" given', is_object($returnDeviceMobilityGroupItem) ? get_class($returnDeviceMobilityGroupItem) : gettype($returnDeviceMobilityGroupItem)), __LINE__);
            }
        }
        $this->deviceMobilityGroup = $deviceMobilityGroup;
        return $this;
    }
    /**
     * Add item to deviceMobilityGroup value
     * @throws \InvalidArgumentException
     * @param RDeviceMobilityGroup $item
     * @return _return
     */
    public function addToDeviceMobilityGroup(RDeviceMobilityGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDeviceMobilityGroup) {
            throw new \InvalidArgumentException(sprintf('The deviceMobilityGroup property can only contain items of RDeviceMobilityGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->deviceMobilityGroup[] = $item;
        return $this;
    }
    /**
     * Get location value
     * @return RLocation[]|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @throws \InvalidArgumentException
     * @param RLocation[] $location
     * @return _return
     */
    public function setLocation(array $location = array())
    {
        foreach ($location as $returnLocationItem) {
            // validation for constraint: itemType
            if (!$returnLocationItem instanceof RLocation) {
                throw new \InvalidArgumentException(sprintf('The location property can only contain items of RLocation, "%s" given', is_object($returnLocationItem) ? get_class($returnLocationItem) : gettype($returnLocationItem)), __LINE__);
            }
        }
        $this->location = $location;
        return $this;
    }
    /**
     * Add item to location value
     * @throws \InvalidArgumentException
     * @param RLocation $item
     * @return _return
     */
    public function addToLocation(RLocation $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLocation) {
            throw new \InvalidArgumentException(sprintf('The location property can only contain items of RLocation, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->location[] = $item;
        return $this;
    }
    /**
     * Get softKeyTemplate value
     * @return RSoftKeyTemplate[]|null
     */
    public function getSoftKeyTemplate()
    {
        return $this->softKeyTemplate;
    }
    /**
     * Set softKeyTemplate value
     * @throws \InvalidArgumentException
     * @param RSoftKeyTemplate[] $softKeyTemplate
     * @return _return
     */
    public function setSoftKeyTemplate(array $softKeyTemplate = array())
    {
        foreach ($softKeyTemplate as $returnSoftKeyTemplateItem) {
            // validation for constraint: itemType
            if (!$returnSoftKeyTemplateItem instanceof RSoftKeyTemplate) {
                throw new \InvalidArgumentException(sprintf('The softKeyTemplate property can only contain items of RSoftKeyTemplate, "%s" given', is_object($returnSoftKeyTemplateItem) ? get_class($returnSoftKeyTemplateItem) : gettype($returnSoftKeyTemplateItem)), __LINE__);
            }
        }
        $this->softKeyTemplate = $softKeyTemplate;
        return $this;
    }
    /**
     * Add item to softKeyTemplate value
     * @throws \InvalidArgumentException
     * @param RSoftKeyTemplate $item
     * @return _return
     */
    public function addToSoftKeyTemplate(RSoftKeyTemplate $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSoftKeyTemplate) {
            throw new \InvalidArgumentException(sprintf('The softKeyTemplate property can only contain items of RSoftKeyTemplate, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->softKeyTemplate[] = $item;
        return $this;
    }
    /**
     * Get transcoder value
     * @return RTranscoder[]|null
     */
    public function getTranscoder()
    {
        return $this->transcoder;
    }
    /**
     * Set transcoder value
     * @throws \InvalidArgumentException
     * @param RTranscoder[] $transcoder
     * @return _return
     */
    public function setTranscoder(array $transcoder = array())
    {
        foreach ($transcoder as $returnTranscoderItem) {
            // validation for constraint: itemType
            if (!$returnTranscoderItem instanceof RTranscoder) {
                throw new \InvalidArgumentException(sprintf('The transcoder property can only contain items of RTranscoder, "%s" given', is_object($returnTranscoderItem) ? get_class($returnTranscoderItem) : gettype($returnTranscoderItem)), __LINE__);
            }
        }
        $this->transcoder = $transcoder;
        return $this;
    }
    /**
     * Add item to transcoder value
     * @throws \InvalidArgumentException
     * @param RTranscoder $item
     * @return _return
     */
    public function addToTranscoder(RTranscoder $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTranscoder) {
            throw new \InvalidArgumentException(sprintf('The transcoder property can only contain items of RTranscoder, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->transcoder[] = $item;
        return $this;
    }
    /**
     * Get commonDeviceConfig value
     * @return RCommonDeviceConfig[]|null
     */
    public function getCommonDeviceConfig()
    {
        return $this->commonDeviceConfig;
    }
    /**
     * Set commonDeviceConfig value
     * @throws \InvalidArgumentException
     * @param RCommonDeviceConfig[] $commonDeviceConfig
     * @return _return
     */
    public function setCommonDeviceConfig(array $commonDeviceConfig = array())
    {
        foreach ($commonDeviceConfig as $returnCommonDeviceConfigItem) {
            // validation for constraint: itemType
            if (!$returnCommonDeviceConfigItem instanceof RCommonDeviceConfig) {
                throw new \InvalidArgumentException(sprintf('The commonDeviceConfig property can only contain items of RCommonDeviceConfig, "%s" given', is_object($returnCommonDeviceConfigItem) ? get_class($returnCommonDeviceConfigItem) : gettype($returnCommonDeviceConfigItem)), __LINE__);
            }
        }
        $this->commonDeviceConfig = $commonDeviceConfig;
        return $this;
    }
    /**
     * Add item to commonDeviceConfig value
     * @throws \InvalidArgumentException
     * @param RCommonDeviceConfig $item
     * @return _return
     */
    public function addToCommonDeviceConfig(RCommonDeviceConfig $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCommonDeviceConfig) {
            throw new \InvalidArgumentException(sprintf('The commonDeviceConfig property can only contain items of RCommonDeviceConfig, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->commonDeviceConfig[] = $item;
        return $this;
    }
    /**
     * Get resourcePriorityNamespace value
     * @return RResourcePriorityNamespace[]|null
     */
    public function getResourcePriorityNamespace()
    {
        return $this->resourcePriorityNamespace;
    }
    /**
     * Set resourcePriorityNamespace value
     * @throws \InvalidArgumentException
     * @param RResourcePriorityNamespace[] $resourcePriorityNamespace
     * @return _return
     */
    public function setResourcePriorityNamespace(array $resourcePriorityNamespace = array())
    {
        foreach ($resourcePriorityNamespace as $returnResourcePriorityNamespaceItem) {
            // validation for constraint: itemType
            if (!$returnResourcePriorityNamespaceItem instanceof RResourcePriorityNamespace) {
                throw new \InvalidArgumentException(sprintf('The resourcePriorityNamespace property can only contain items of RResourcePriorityNamespace, "%s" given', is_object($returnResourcePriorityNamespaceItem) ? get_class($returnResourcePriorityNamespaceItem) : gettype($returnResourcePriorityNamespaceItem)), __LINE__);
            }
        }
        $this->resourcePriorityNamespace = $resourcePriorityNamespace;
        return $this;
    }
    /**
     * Add item to resourcePriorityNamespace value
     * @throws \InvalidArgumentException
     * @param RResourcePriorityNamespace $item
     * @return _return
     */
    public function addToResourcePriorityNamespace(RResourcePriorityNamespace $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RResourcePriorityNamespace) {
            throw new \InvalidArgumentException(sprintf('The resourcePriorityNamespace property can only contain items of RResourcePriorityNamespace, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->resourcePriorityNamespace[] = $item;
        return $this;
    }
    /**
     * Get resourcePriorityNamespaceList value
     * @return RResourcePriorityNamespaceList[]|null
     */
    public function getResourcePriorityNamespaceList()
    {
        return $this->resourcePriorityNamespaceList;
    }
    /**
     * Set resourcePriorityNamespaceList value
     * @throws \InvalidArgumentException
     * @param RResourcePriorityNamespaceList[] $resourcePriorityNamespaceList
     * @return _return
     */
    public function setResourcePriorityNamespaceList(array $resourcePriorityNamespaceList = array())
    {
        foreach ($resourcePriorityNamespaceList as $returnResourcePriorityNamespaceListItem) {
            // validation for constraint: itemType
            if (!$returnResourcePriorityNamespaceListItem instanceof RResourcePriorityNamespaceList) {
                throw new \InvalidArgumentException(sprintf('The resourcePriorityNamespaceList property can only contain items of RResourcePriorityNamespaceList, "%s" given', is_object($returnResourcePriorityNamespaceListItem) ? get_class($returnResourcePriorityNamespaceListItem) : gettype($returnResourcePriorityNamespaceListItem)), __LINE__);
            }
        }
        $this->resourcePriorityNamespaceList = $resourcePriorityNamespaceList;
        return $this;
    }
    /**
     * Add item to resourcePriorityNamespaceList value
     * @throws \InvalidArgumentException
     * @param RResourcePriorityNamespaceList $item
     * @return _return
     */
    public function addToResourcePriorityNamespaceList(RResourcePriorityNamespaceList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RResourcePriorityNamespaceList) {
            throw new \InvalidArgumentException(sprintf('The resourcePriorityNamespaceList property can only contain items of RResourcePriorityNamespaceList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->resourcePriorityNamespaceList[] = $item;
        return $this;
    }
    /**
     * Get deviceMobility value
     * @return RDeviceMobility[]|null
     */
    public function getDeviceMobility()
    {
        return $this->deviceMobility;
    }
    /**
     * Set deviceMobility value
     * @throws \InvalidArgumentException
     * @param RDeviceMobility[] $deviceMobility
     * @return _return
     */
    public function setDeviceMobility(array $deviceMobility = array())
    {
        foreach ($deviceMobility as $returnDeviceMobilityItem) {
            // validation for constraint: itemType
            if (!$returnDeviceMobilityItem instanceof RDeviceMobility) {
                throw new \InvalidArgumentException(sprintf('The deviceMobility property can only contain items of RDeviceMobility, "%s" given', is_object($returnDeviceMobilityItem) ? get_class($returnDeviceMobilityItem) : gettype($returnDeviceMobilityItem)), __LINE__);
            }
        }
        $this->deviceMobility = $deviceMobility;
        return $this;
    }
    /**
     * Add item to deviceMobility value
     * @throws \InvalidArgumentException
     * @param RDeviceMobility $item
     * @return _return
     */
    public function addToDeviceMobility(RDeviceMobility $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDeviceMobility) {
            throw new \InvalidArgumentException(sprintf('The deviceMobility property can only contain items of RDeviceMobility, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->deviceMobility[] = $item;
        return $this;
    }
    /**
     * Get cmcInfo value
     * @return RCmcInfo[]|null
     */
    public function getCmcInfo()
    {
        return $this->cmcInfo;
    }
    /**
     * Set cmcInfo value
     * @throws \InvalidArgumentException
     * @param RCmcInfo[] $cmcInfo
     * @return _return
     */
    public function setCmcInfo(array $cmcInfo = array())
    {
        foreach ($cmcInfo as $returnCmcInfoItem) {
            // validation for constraint: itemType
            if (!$returnCmcInfoItem instanceof RCmcInfo) {
                throw new \InvalidArgumentException(sprintf('The cmcInfo property can only contain items of RCmcInfo, "%s" given', is_object($returnCmcInfoItem) ? get_class($returnCmcInfoItem) : gettype($returnCmcInfoItem)), __LINE__);
            }
        }
        $this->cmcInfo = $cmcInfo;
        return $this;
    }
    /**
     * Add item to cmcInfo value
     * @throws \InvalidArgumentException
     * @param RCmcInfo $item
     * @return _return
     */
    public function addToCmcInfo(RCmcInfo $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCmcInfo) {
            throw new \InvalidArgumentException(sprintf('The cmcInfo property can only contain items of RCmcInfo, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->cmcInfo[] = $item;
        return $this;
    }
    /**
     * Get credentialPolicy value
     * @return RCredentialPolicy[]|null
     */
    public function getCredentialPolicy()
    {
        return $this->credentialPolicy;
    }
    /**
     * Set credentialPolicy value
     * @throws \InvalidArgumentException
     * @param RCredentialPolicy[] $credentialPolicy
     * @return _return
     */
    public function setCredentialPolicy(array $credentialPolicy = array())
    {
        foreach ($credentialPolicy as $returnCredentialPolicyItem) {
            // validation for constraint: itemType
            if (!$returnCredentialPolicyItem instanceof RCredentialPolicy) {
                throw new \InvalidArgumentException(sprintf('The credentialPolicy property can only contain items of RCredentialPolicy, "%s" given', is_object($returnCredentialPolicyItem) ? get_class($returnCredentialPolicyItem) : gettype($returnCredentialPolicyItem)), __LINE__);
            }
        }
        $this->credentialPolicy = $credentialPolicy;
        return $this;
    }
    /**
     * Add item to credentialPolicy value
     * @throws \InvalidArgumentException
     * @param RCredentialPolicy $item
     * @return _return
     */
    public function addToCredentialPolicy(RCredentialPolicy $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCredentialPolicy) {
            throw new \InvalidArgumentException(sprintf('The credentialPolicy property can only contain items of RCredentialPolicy, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->credentialPolicy[] = $item;
        return $this;
    }
    /**
     * Get facInfo value
     * @return RFacInfo[]|null
     */
    public function getFacInfo()
    {
        return $this->facInfo;
    }
    /**
     * Set facInfo value
     * @throws \InvalidArgumentException
     * @param RFacInfo[] $facInfo
     * @return _return
     */
    public function setFacInfo(array $facInfo = array())
    {
        foreach ($facInfo as $returnFacInfoItem) {
            // validation for constraint: itemType
            if (!$returnFacInfoItem instanceof RFacInfo) {
                throw new \InvalidArgumentException(sprintf('The facInfo property can only contain items of RFacInfo, "%s" given', is_object($returnFacInfoItem) ? get_class($returnFacInfoItem) : gettype($returnFacInfoItem)), __LINE__);
            }
        }
        $this->facInfo = $facInfo;
        return $this;
    }
    /**
     * Add item to facInfo value
     * @throws \InvalidArgumentException
     * @param RFacInfo $item
     * @return _return
     */
    public function addToFacInfo(RFacInfo $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RFacInfo) {
            throw new \InvalidArgumentException(sprintf('The facInfo property can only contain items of RFacInfo, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->facInfo[] = $item;
        return $this;
    }
    /**
     * Get huntList value
     * @return RHuntList[]|null
     */
    public function getHuntList()
    {
        return $this->huntList;
    }
    /**
     * Set huntList value
     * @throws \InvalidArgumentException
     * @param RHuntList[] $huntList
     * @return _return
     */
    public function setHuntList(array $huntList = array())
    {
        foreach ($huntList as $returnHuntListItem) {
            // validation for constraint: itemType
            if (!$returnHuntListItem instanceof RHuntList) {
                throw new \InvalidArgumentException(sprintf('The huntList property can only contain items of RHuntList, "%s" given', is_object($returnHuntListItem) ? get_class($returnHuntListItem) : gettype($returnHuntListItem)), __LINE__);
            }
        }
        $this->huntList = $huntList;
        return $this;
    }
    /**
     * Add item to huntList value
     * @throws \InvalidArgumentException
     * @param RHuntList $item
     * @return _return
     */
    public function addToHuntList(RHuntList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RHuntList) {
            throw new \InvalidArgumentException(sprintf('The huntList property can only contain items of RHuntList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->huntList[] = $item;
        return $this;
    }
    /**
     * Get ivrUserLocale value
     * @return RIvrUserLocale[]|null
     */
    public function getIvrUserLocale()
    {
        return $this->ivrUserLocale;
    }
    /**
     * Set ivrUserLocale value
     * @throws \InvalidArgumentException
     * @param RIvrUserLocale[] $ivrUserLocale
     * @return _return
     */
    public function setIvrUserLocale(array $ivrUserLocale = array())
    {
        foreach ($ivrUserLocale as $returnIvrUserLocaleItem) {
            // validation for constraint: itemType
            if (!$returnIvrUserLocaleItem instanceof RIvrUserLocale) {
                throw new \InvalidArgumentException(sprintf('The ivrUserLocale property can only contain items of RIvrUserLocale, "%s" given', is_object($returnIvrUserLocaleItem) ? get_class($returnIvrUserLocaleItem) : gettype($returnIvrUserLocaleItem)), __LINE__);
            }
        }
        $this->ivrUserLocale = $ivrUserLocale;
        return $this;
    }
    /**
     * Add item to ivrUserLocale value
     * @throws \InvalidArgumentException
     * @param RIvrUserLocale $item
     * @return _return
     */
    public function addToIvrUserLocale(RIvrUserLocale $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RIvrUserLocale) {
            throw new \InvalidArgumentException(sprintf('The ivrUserLocale property can only contain items of RIvrUserLocale, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ivrUserLocale[] = $item;
        return $this;
    }
    /**
     * Get lineGroup value
     * @return RLineGroup[]|null
     */
    public function getLineGroup()
    {
        return $this->lineGroup;
    }
    /**
     * Set lineGroup value
     * @throws \InvalidArgumentException
     * @param RLineGroup[] $lineGroup
     * @return _return
     */
    public function setLineGroup(array $lineGroup = array())
    {
        foreach ($lineGroup as $returnLineGroupItem) {
            // validation for constraint: itemType
            if (!$returnLineGroupItem instanceof RLineGroup) {
                throw new \InvalidArgumentException(sprintf('The lineGroup property can only contain items of RLineGroup, "%s" given', is_object($returnLineGroupItem) ? get_class($returnLineGroupItem) : gettype($returnLineGroupItem)), __LINE__);
            }
        }
        $this->lineGroup = $lineGroup;
        return $this;
    }
    /**
     * Add item to lineGroup value
     * @throws \InvalidArgumentException
     * @param RLineGroup $item
     * @return _return
     */
    public function addToLineGroup(RLineGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLineGroup) {
            throw new \InvalidArgumentException(sprintf('The lineGroup property can only contain items of RLineGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->lineGroup[] = $item;
        return $this;
    }
    /**
     * Get recordingProfile value
     * @return RRecordingProfile[]|null
     */
    public function getRecordingProfile()
    {
        return $this->recordingProfile;
    }
    /**
     * Set recordingProfile value
     * @throws \InvalidArgumentException
     * @param RRecordingProfile[] $recordingProfile
     * @return _return
     */
    public function setRecordingProfile(array $recordingProfile = array())
    {
        foreach ($recordingProfile as $returnRecordingProfileItem) {
            // validation for constraint: itemType
            if (!$returnRecordingProfileItem instanceof RRecordingProfile) {
                throw new \InvalidArgumentException(sprintf('The recordingProfile property can only contain items of RRecordingProfile, "%s" given', is_object($returnRecordingProfileItem) ? get_class($returnRecordingProfileItem) : gettype($returnRecordingProfileItem)), __LINE__);
            }
        }
        $this->recordingProfile = $recordingProfile;
        return $this;
    }
    /**
     * Add item to recordingProfile value
     * @throws \InvalidArgumentException
     * @param RRecordingProfile $item
     * @return _return
     */
    public function addToRecordingProfile(RRecordingProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRecordingProfile) {
            throw new \InvalidArgumentException(sprintf('The recordingProfile property can only contain items of RRecordingProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->recordingProfile[] = $item;
        return $this;
    }
    /**
     * Get routeFilter value
     * @return RRouteFilter[]|null
     */
    public function getRouteFilter()
    {
        return $this->routeFilter;
    }
    /**
     * Set routeFilter value
     * @throws \InvalidArgumentException
     * @param RRouteFilter[] $routeFilter
     * @return _return
     */
    public function setRouteFilter(array $routeFilter = array())
    {
        foreach ($routeFilter as $returnRouteFilterItem) {
            // validation for constraint: itemType
            if (!$returnRouteFilterItem instanceof RRouteFilter) {
                throw new \InvalidArgumentException(sprintf('The routeFilter property can only contain items of RRouteFilter, "%s" given', is_object($returnRouteFilterItem) ? get_class($returnRouteFilterItem) : gettype($returnRouteFilterItem)), __LINE__);
            }
        }
        $this->routeFilter = $routeFilter;
        return $this;
    }
    /**
     * Add item to routeFilter value
     * @throws \InvalidArgumentException
     * @param RRouteFilter $item
     * @return _return
     */
    public function addToRouteFilter(RRouteFilter $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRouteFilter) {
            throw new \InvalidArgumentException(sprintf('The routeFilter property can only contain items of RRouteFilter, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routeFilter[] = $item;
        return $this;
    }
    /**
     * Get callManagerGroup value
     * @return RCallManagerGroup[]|null
     */
    public function getCallManagerGroup()
    {
        return $this->callManagerGroup;
    }
    /**
     * Set callManagerGroup value
     * @throws \InvalidArgumentException
     * @param RCallManagerGroup[] $callManagerGroup
     * @return _return
     */
    public function setCallManagerGroup(array $callManagerGroup = array())
    {
        foreach ($callManagerGroup as $returnCallManagerGroupItem) {
            // validation for constraint: itemType
            if (!$returnCallManagerGroupItem instanceof RCallManagerGroup) {
                throw new \InvalidArgumentException(sprintf('The callManagerGroup property can only contain items of RCallManagerGroup, "%s" given', is_object($returnCallManagerGroupItem) ? get_class($returnCallManagerGroupItem) : gettype($returnCallManagerGroupItem)), __LINE__);
            }
        }
        $this->callManagerGroup = $callManagerGroup;
        return $this;
    }
    /**
     * Add item to callManagerGroup value
     * @throws \InvalidArgumentException
     * @param RCallManagerGroup $item
     * @return _return
     */
    public function addToCallManagerGroup(RCallManagerGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallManagerGroup) {
            throw new \InvalidArgumentException(sprintf('The callManagerGroup property can only contain items of RCallManagerGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callManagerGroup[] = $item;
        return $this;
    }
    /**
     * Get userGroup value
     * @return RUserGroup[]|null
     */
    public function getUserGroup()
    {
        return $this->userGroup;
    }
    /**
     * Set userGroup value
     * @throws \InvalidArgumentException
     * @param RUserGroup[] $userGroup
     * @return _return
     */
    public function setUserGroup(array $userGroup = array())
    {
        foreach ($userGroup as $returnUserGroupItem) {
            // validation for constraint: itemType
            if (!$returnUserGroupItem instanceof RUserGroup) {
                throw new \InvalidArgumentException(sprintf('The userGroup property can only contain items of RUserGroup, "%s" given', is_object($returnUserGroupItem) ? get_class($returnUserGroupItem) : gettype($returnUserGroupItem)), __LINE__);
            }
        }
        $this->userGroup = $userGroup;
        return $this;
    }
    /**
     * Add item to userGroup value
     * @throws \InvalidArgumentException
     * @param RUserGroup $item
     * @return _return
     */
    public function addToUserGroup(RUserGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RUserGroup) {
            throw new \InvalidArgumentException(sprintf('The userGroup property can only contain items of RUserGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->userGroup[] = $item;
        return $this;
    }
    /**
     * Get dialPlan value
     * @return RDialPlan[]|null
     */
    public function getDialPlan()
    {
        return $this->dialPlan;
    }
    /**
     * Set dialPlan value
     * @throws \InvalidArgumentException
     * @param RDialPlan[] $dialPlan
     * @return _return
     */
    public function setDialPlan(array $dialPlan = array())
    {
        foreach ($dialPlan as $returnDialPlanItem) {
            // validation for constraint: itemType
            if (!$returnDialPlanItem instanceof RDialPlan) {
                throw new \InvalidArgumentException(sprintf('The dialPlan property can only contain items of RDialPlan, "%s" given', is_object($returnDialPlanItem) ? get_class($returnDialPlanItem) : gettype($returnDialPlanItem)), __LINE__);
            }
        }
        $this->dialPlan = $dialPlan;
        return $this;
    }
    /**
     * Add item to dialPlan value
     * @throws \InvalidArgumentException
     * @param RDialPlan $item
     * @return _return
     */
    public function addToDialPlan(RDialPlan $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDialPlan) {
            throw new \InvalidArgumentException(sprintf('The dialPlan property can only contain items of RDialPlan, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->dialPlan[] = $item;
        return $this;
    }
    /**
     * Get dialPlanTag value
     * @return RDialPlanTag[]|null
     */
    public function getDialPlanTag()
    {
        return $this->dialPlanTag;
    }
    /**
     * Set dialPlanTag value
     * @throws \InvalidArgumentException
     * @param RDialPlanTag[] $dialPlanTag
     * @return _return
     */
    public function setDialPlanTag(array $dialPlanTag = array())
    {
        foreach ($dialPlanTag as $returnDialPlanTagItem) {
            // validation for constraint: itemType
            if (!$returnDialPlanTagItem instanceof RDialPlanTag) {
                throw new \InvalidArgumentException(sprintf('The dialPlanTag property can only contain items of RDialPlanTag, "%s" given', is_object($returnDialPlanTagItem) ? get_class($returnDialPlanTagItem) : gettype($returnDialPlanTagItem)), __LINE__);
            }
        }
        $this->dialPlanTag = $dialPlanTag;
        return $this;
    }
    /**
     * Add item to dialPlanTag value
     * @throws \InvalidArgumentException
     * @param RDialPlanTag $item
     * @return _return
     */
    public function addToDialPlanTag(RDialPlanTag $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDialPlanTag) {
            throw new \InvalidArgumentException(sprintf('The dialPlanTag property can only contain items of RDialPlanTag, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->dialPlanTag[] = $item;
        return $this;
    }
    /**
     * Get ddi value
     * @return RDdi[]|null
     */
    public function getDdi()
    {
        return $this->ddi;
    }
    /**
     * Set ddi value
     * @throws \InvalidArgumentException
     * @param RDdi[] $ddi
     * @return _return
     */
    public function setDdi(array $ddi = array())
    {
        foreach ($ddi as $returnDdiItem) {
            // validation for constraint: itemType
            if (!$returnDdiItem instanceof RDdi) {
                throw new \InvalidArgumentException(sprintf('The ddi property can only contain items of RDdi, "%s" given', is_object($returnDdiItem) ? get_class($returnDdiItem) : gettype($returnDdiItem)), __LINE__);
            }
        }
        $this->ddi = $ddi;
        return $this;
    }
    /**
     * Add item to ddi value
     * @throws \InvalidArgumentException
     * @param RDdi $item
     * @return _return
     */
    public function addToDdi(RDdi $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDdi) {
            throw new \InvalidArgumentException(sprintf('The ddi property can only contain items of RDdi, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ddi[] = $item;
        return $this;
    }
    /**
     * Get mobileSmartClientProfile value
     * @return RMobileSmartClientProfile[]|null
     */
    public function getMobileSmartClientProfile()
    {
        return $this->mobileSmartClientProfile;
    }
    /**
     * Set mobileSmartClientProfile value
     * @throws \InvalidArgumentException
     * @param RMobileSmartClientProfile[] $mobileSmartClientProfile
     * @return _return
     */
    public function setMobileSmartClientProfile(array $mobileSmartClientProfile = array())
    {
        foreach ($mobileSmartClientProfile as $returnMobileSmartClientProfileItem) {
            // validation for constraint: itemType
            if (!$returnMobileSmartClientProfileItem instanceof RMobileSmartClientProfile) {
                throw new \InvalidArgumentException(sprintf('The mobileSmartClientProfile property can only contain items of RMobileSmartClientProfile, "%s" given', is_object($returnMobileSmartClientProfileItem) ? get_class($returnMobileSmartClientProfileItem) : gettype($returnMobileSmartClientProfileItem)), __LINE__);
            }
        }
        $this->mobileSmartClientProfile = $mobileSmartClientProfile;
        return $this;
    }
    /**
     * Add item to mobileSmartClientProfile value
     * @throws \InvalidArgumentException
     * @param RMobileSmartClientProfile $item
     * @return _return
     */
    public function addToMobileSmartClientProfile(RMobileSmartClientProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMobileSmartClientProfile) {
            throw new \InvalidArgumentException(sprintf('The mobileSmartClientProfile property can only contain items of RMobileSmartClientProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mobileSmartClientProfile[] = $item;
        return $this;
    }
    /**
     * Get processNodeService value
     * @return RProcessNodeService[]|null
     */
    public function getProcessNodeService()
    {
        return $this->processNodeService;
    }
    /**
     * Set processNodeService value
     * @throws \InvalidArgumentException
     * @param RProcessNodeService[] $processNodeService
     * @return _return
     */
    public function setProcessNodeService(array $processNodeService = array())
    {
        foreach ($processNodeService as $returnProcessNodeServiceItem) {
            // validation for constraint: itemType
            if (!$returnProcessNodeServiceItem instanceof RProcessNodeService) {
                throw new \InvalidArgumentException(sprintf('The processNodeService property can only contain items of RProcessNodeService, "%s" given', is_object($returnProcessNodeServiceItem) ? get_class($returnProcessNodeServiceItem) : gettype($returnProcessNodeServiceItem)), __LINE__);
            }
        }
        $this->processNodeService = $processNodeService;
        return $this;
    }
    /**
     * Add item to processNodeService value
     * @throws \InvalidArgumentException
     * @param RProcessNodeService $item
     * @return _return
     */
    public function addToProcessNodeService(RProcessNodeService $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RProcessNodeService) {
            throw new \InvalidArgumentException(sprintf('The processNodeService property can only contain items of RProcessNodeService, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->processNodeService[] = $item;
        return $this;
    }
    /**
     * Get mohAudioSource value
     * @return RMohAudioSource[]|null
     */
    public function getMohAudioSource()
    {
        return $this->mohAudioSource;
    }
    /**
     * Set mohAudioSource value
     * @throws \InvalidArgumentException
     * @param RMohAudioSource[] $mohAudioSource
     * @return _return
     */
    public function setMohAudioSource(array $mohAudioSource = array())
    {
        foreach ($mohAudioSource as $returnMohAudioSourceItem) {
            // validation for constraint: itemType
            if (!$returnMohAudioSourceItem instanceof RMohAudioSource) {
                throw new \InvalidArgumentException(sprintf('The mohAudioSource property can only contain items of RMohAudioSource, "%s" given', is_object($returnMohAudioSourceItem) ? get_class($returnMohAudioSourceItem) : gettype($returnMohAudioSourceItem)), __LINE__);
            }
        }
        $this->mohAudioSource = $mohAudioSource;
        return $this;
    }
    /**
     * Add item to mohAudioSource value
     * @throws \InvalidArgumentException
     * @param RMohAudioSource $item
     * @return _return
     */
    public function addToMohAudioSource(RMohAudioSource $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMohAudioSource) {
            throw new \InvalidArgumentException(sprintf('The mohAudioSource property can only contain items of RMohAudioSource, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mohAudioSource[] = $item;
        return $this;
    }
    /**
     * Get dhcpServer value
     * @return RDhcpServer[]|null
     */
    public function getDhcpServer()
    {
        return $this->dhcpServer;
    }
    /**
     * Set dhcpServer value
     * @throws \InvalidArgumentException
     * @param RDhcpServer[] $dhcpServer
     * @return _return
     */
    public function setDhcpServer(array $dhcpServer = array())
    {
        foreach ($dhcpServer as $returnDhcpServerItem) {
            // validation for constraint: itemType
            if (!$returnDhcpServerItem instanceof RDhcpServer) {
                throw new \InvalidArgumentException(sprintf('The dhcpServer property can only contain items of RDhcpServer, "%s" given', is_object($returnDhcpServerItem) ? get_class($returnDhcpServerItem) : gettype($returnDhcpServerItem)), __LINE__);
            }
        }
        $this->dhcpServer = $dhcpServer;
        return $this;
    }
    /**
     * Add item to dhcpServer value
     * @throws \InvalidArgumentException
     * @param RDhcpServer $item
     * @return _return
     */
    public function addToDhcpServer(RDhcpServer $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDhcpServer) {
            throw new \InvalidArgumentException(sprintf('The dhcpServer property can only contain items of RDhcpServer, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->dhcpServer[] = $item;
        return $this;
    }
    /**
     * Get dhcpSubnet value
     * @return RDhcpSubnet[]|null
     */
    public function getDhcpSubnet()
    {
        return $this->dhcpSubnet;
    }
    /**
     * Set dhcpSubnet value
     * @throws \InvalidArgumentException
     * @param RDhcpSubnet[] $dhcpSubnet
     * @return _return
     */
    public function setDhcpSubnet(array $dhcpSubnet = array())
    {
        foreach ($dhcpSubnet as $returnDhcpSubnetItem) {
            // validation for constraint: itemType
            if (!$returnDhcpSubnetItem instanceof RDhcpSubnet) {
                throw new \InvalidArgumentException(sprintf('The dhcpSubnet property can only contain items of RDhcpSubnet, "%s" given', is_object($returnDhcpSubnetItem) ? get_class($returnDhcpSubnetItem) : gettype($returnDhcpSubnetItem)), __LINE__);
            }
        }
        $this->dhcpSubnet = $dhcpSubnet;
        return $this;
    }
    /**
     * Add item to dhcpSubnet value
     * @throws \InvalidArgumentException
     * @param RDhcpSubnet $item
     * @return _return
     */
    public function addToDhcpSubnet(RDhcpSubnet $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDhcpSubnet) {
            throw new \InvalidArgumentException(sprintf('The dhcpSubnet property can only contain items of RDhcpSubnet, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->dhcpSubnet[] = $item;
        return $this;
    }
    /**
     * Get callPark value
     * @return RCallPark[]|null
     */
    public function getCallPark()
    {
        return $this->callPark;
    }
    /**
     * Set callPark value
     * @throws \InvalidArgumentException
     * @param RCallPark[] $callPark
     * @return _return
     */
    public function setCallPark(array $callPark = array())
    {
        foreach ($callPark as $returnCallParkItem) {
            // validation for constraint: itemType
            if (!$returnCallParkItem instanceof RCallPark) {
                throw new \InvalidArgumentException(sprintf('The callPark property can only contain items of RCallPark, "%s" given', is_object($returnCallParkItem) ? get_class($returnCallParkItem) : gettype($returnCallParkItem)), __LINE__);
            }
        }
        $this->callPark = $callPark;
        return $this;
    }
    /**
     * Add item to callPark value
     * @throws \InvalidArgumentException
     * @param RCallPark $item
     * @return _return
     */
    public function addToCallPark(RCallPark $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallPark) {
            throw new \InvalidArgumentException(sprintf('The callPark property can only contain items of RCallPark, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callPark[] = $item;
        return $this;
    }
    /**
     * Get directedCallPark value
     * @return RDirectedCallPark[]|null
     */
    public function getDirectedCallPark()
    {
        return $this->directedCallPark;
    }
    /**
     * Set directedCallPark value
     * @throws \InvalidArgumentException
     * @param RDirectedCallPark[] $directedCallPark
     * @return _return
     */
    public function setDirectedCallPark(array $directedCallPark = array())
    {
        foreach ($directedCallPark as $returnDirectedCallParkItem) {
            // validation for constraint: itemType
            if (!$returnDirectedCallParkItem instanceof RDirectedCallPark) {
                throw new \InvalidArgumentException(sprintf('The directedCallPark property can only contain items of RDirectedCallPark, "%s" given', is_object($returnDirectedCallParkItem) ? get_class($returnDirectedCallParkItem) : gettype($returnDirectedCallParkItem)), __LINE__);
            }
        }
        $this->directedCallPark = $directedCallPark;
        return $this;
    }
    /**
     * Add item to directedCallPark value
     * @throws \InvalidArgumentException
     * @param RDirectedCallPark $item
     * @return _return
     */
    public function addToDirectedCallPark(RDirectedCallPark $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDirectedCallPark) {
            throw new \InvalidArgumentException(sprintf('The directedCallPark property can only contain items of RDirectedCallPark, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->directedCallPark[] = $item;
        return $this;
    }
    /**
     * Get meetMe value
     * @return RMeetMe[]|null
     */
    public function getMeetMe()
    {
        return $this->meetMe;
    }
    /**
     * Set meetMe value
     * @throws \InvalidArgumentException
     * @param RMeetMe[] $meetMe
     * @return _return
     */
    public function setMeetMe(array $meetMe = array())
    {
        foreach ($meetMe as $returnMeetMeItem) {
            // validation for constraint: itemType
            if (!$returnMeetMeItem instanceof RMeetMe) {
                throw new \InvalidArgumentException(sprintf('The meetMe property can only contain items of RMeetMe, "%s" given', is_object($returnMeetMeItem) ? get_class($returnMeetMeItem) : gettype($returnMeetMeItem)), __LINE__);
            }
        }
        $this->meetMe = $meetMe;
        return $this;
    }
    /**
     * Add item to meetMe value
     * @throws \InvalidArgumentException
     * @param RMeetMe $item
     * @return _return
     */
    public function addToMeetMe(RMeetMe $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMeetMe) {
            throw new \InvalidArgumentException(sprintf('The meetMe property can only contain items of RMeetMe, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->meetMe[] = $item;
        return $this;
    }
    /**
     * Get mobileVoiceAccess value
     * @return RMobileVoiceAccess|null
     */
    public function getMobileVoiceAccess()
    {
        return $this->mobileVoiceAccess;
    }
    /**
     * Set mobileVoiceAccess value
     * @param RMobileVoiceAccess $mobileVoiceAccess
     * @return _return
     */
    public function setMobileVoiceAccess(RMobileVoiceAccess $mobileVoiceAccess = null)
    {
        $this->mobileVoiceAccess = $mobileVoiceAccess;
        return $this;
    }
    /**
     * Get routeList value
     * @return RRouteList[]|null
     */
    public function getRouteList()
    {
        return $this->routeList;
    }
    /**
     * Set routeList value
     * @throws \InvalidArgumentException
     * @param RRouteList[] $routeList
     * @return _return
     */
    public function setRouteList(array $routeList = array())
    {
        foreach ($routeList as $returnRouteListItem) {
            // validation for constraint: itemType
            if (!$returnRouteListItem instanceof RRouteList) {
                throw new \InvalidArgumentException(sprintf('The routeList property can only contain items of RRouteList, "%s" given', is_object($returnRouteListItem) ? get_class($returnRouteListItem) : gettype($returnRouteListItem)), __LINE__);
            }
        }
        $this->routeList = $routeList;
        return $this;
    }
    /**
     * Add item to routeList value
     * @throws \InvalidArgumentException
     * @param RRouteList $item
     * @return _return
     */
    public function addToRouteList(RRouteList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRouteList) {
            throw new \InvalidArgumentException(sprintf('The routeList property can only contain items of RRouteList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routeList[] = $item;
        return $this;
    }
    /**
     * Get user value
     * @return RUser[]|null
     */
    public function getUser()
    {
        return $this->user;
    }
    /**
     * Set user value
     * @throws \InvalidArgumentException
     * @param RUser[] $user
     * @return _return
     */
    public function setUser(array $user = array())
    {
        foreach ($user as $returnUserItem) {
            // validation for constraint: itemType
            if (!$returnUserItem instanceof RUser) {
                throw new \InvalidArgumentException(sprintf('The user property can only contain items of RUser, "%s" given', is_object($returnUserItem) ? get_class($returnUserItem) : gettype($returnUserItem)), __LINE__);
            }
        }
        $this->user = $user;
        return $this;
    }
    /**
     * Add item to user value
     * @throws \InvalidArgumentException
     * @param RUser $item
     * @return _return
     */
    public function addToUser(RUser $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RUser) {
            throw new \InvalidArgumentException(sprintf('The user property can only contain items of RUser, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->user[] = $item;
        return $this;
    }
    /**
     * Get licenseCapabilities value
     * @return RLicenseCapabilities[]|null
     */
    public function getLicenseCapabilities()
    {
        return $this->licenseCapabilities;
    }
    /**
     * Set licenseCapabilities value
     * @throws \InvalidArgumentException
     * @param RLicenseCapabilities[] $licenseCapabilities
     * @return _return
     */
    public function setLicenseCapabilities(array $licenseCapabilities = array())
    {
        foreach ($licenseCapabilities as $returnLicenseCapabilitiesItem) {
            // validation for constraint: itemType
            if (!$returnLicenseCapabilitiesItem instanceof RLicenseCapabilities) {
                throw new \InvalidArgumentException(sprintf('The licenseCapabilities property can only contain items of RLicenseCapabilities, "%s" given', is_object($returnLicenseCapabilitiesItem) ? get_class($returnLicenseCapabilitiesItem) : gettype($returnLicenseCapabilitiesItem)), __LINE__);
            }
        }
        $this->licenseCapabilities = $licenseCapabilities;
        return $this;
    }
    /**
     * Add item to licenseCapabilities value
     * @throws \InvalidArgumentException
     * @param RLicenseCapabilities $item
     * @return _return
     */
    public function addToLicenseCapabilities(RLicenseCapabilities $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLicenseCapabilities) {
            throw new \InvalidArgumentException(sprintf('The licenseCapabilities property can only contain items of RLicenseCapabilities, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->licenseCapabilities[] = $item;
        return $this;
    }
    /**
     * Get appUser value
     * @return RAppUser[]|null
     */
    public function getAppUser()
    {
        return $this->appUser;
    }
    /**
     * Set appUser value
     * @throws \InvalidArgumentException
     * @param RAppUser[] $appUser
     * @return _return
     */
    public function setAppUser(array $appUser = array())
    {
        foreach ($appUser as $returnAppUserItem) {
            // validation for constraint: itemType
            if (!$returnAppUserItem instanceof RAppUser) {
                throw new \InvalidArgumentException(sprintf('The appUser property can only contain items of RAppUser, "%s" given', is_object($returnAppUserItem) ? get_class($returnAppUserItem) : gettype($returnAppUserItem)), __LINE__);
            }
        }
        $this->appUser = $appUser;
        return $this;
    }
    /**
     * Add item to appUser value
     * @throws \InvalidArgumentException
     * @param RAppUser $item
     * @return _return
     */
    public function addToAppUser(RAppUser $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RAppUser) {
            throw new \InvalidArgumentException(sprintf('The appUser property can only contain items of RAppUser, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->appUser[] = $item;
        return $this;
    }
    /**
     * Get sipRealm value
     * @return RSipRealm[]|null
     */
    public function getSipRealm()
    {
        return $this->sipRealm;
    }
    /**
     * Set sipRealm value
     * @throws \InvalidArgumentException
     * @param RSipRealm[] $sipRealm
     * @return _return
     */
    public function setSipRealm(array $sipRealm = array())
    {
        foreach ($sipRealm as $returnSipRealmItem) {
            // validation for constraint: itemType
            if (!$returnSipRealmItem instanceof RSipRealm) {
                throw new \InvalidArgumentException(sprintf('The sipRealm property can only contain items of RSipRealm, "%s" given', is_object($returnSipRealmItem) ? get_class($returnSipRealmItem) : gettype($returnSipRealmItem)), __LINE__);
            }
        }
        $this->sipRealm = $sipRealm;
        return $this;
    }
    /**
     * Add item to sipRealm value
     * @throws \InvalidArgumentException
     * @param RSipRealm $item
     * @return _return
     */
    public function addToSipRealm(RSipRealm $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipRealm) {
            throw new \InvalidArgumentException(sprintf('The sipRealm property can only contain items of RSipRealm, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipRealm[] = $item;
        return $this;
    }
    /**
     * Get phoneNtp value
     * @return RPhoneNtp[]|null
     */
    public function getPhoneNtp()
    {
        return $this->phoneNtp;
    }
    /**
     * Set phoneNtp value
     * @throws \InvalidArgumentException
     * @param RPhoneNtp[] $phoneNtp
     * @return _return
     */
    public function setPhoneNtp(array $phoneNtp = array())
    {
        foreach ($phoneNtp as $returnPhoneNtpItem) {
            // validation for constraint: itemType
            if (!$returnPhoneNtpItem instanceof RPhoneNtp) {
                throw new \InvalidArgumentException(sprintf('The phoneNtp property can only contain items of RPhoneNtp, "%s" given', is_object($returnPhoneNtpItem) ? get_class($returnPhoneNtpItem) : gettype($returnPhoneNtpItem)), __LINE__);
            }
        }
        $this->phoneNtp = $phoneNtp;
        return $this;
    }
    /**
     * Add item to phoneNtp value
     * @throws \InvalidArgumentException
     * @param RPhoneNtp $item
     * @return _return
     */
    public function addToPhoneNtp(RPhoneNtp $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPhoneNtp) {
            throw new \InvalidArgumentException(sprintf('The phoneNtp property can only contain items of RPhoneNtp, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->phoneNtp[] = $item;
        return $this;
    }
    /**
     * Get dateTimeGroup value
     * @return RDateTimeGroup[]|null
     */
    public function getDateTimeGroup()
    {
        return $this->dateTimeGroup;
    }
    /**
     * Set dateTimeGroup value
     * @throws \InvalidArgumentException
     * @param RDateTimeGroup[] $dateTimeGroup
     * @return _return
     */
    public function setDateTimeGroup(array $dateTimeGroup = array())
    {
        foreach ($dateTimeGroup as $returnDateTimeGroupItem) {
            // validation for constraint: itemType
            if (!$returnDateTimeGroupItem instanceof RDateTimeGroup) {
                throw new \InvalidArgumentException(sprintf('The dateTimeGroup property can only contain items of RDateTimeGroup, "%s" given', is_object($returnDateTimeGroupItem) ? get_class($returnDateTimeGroupItem) : gettype($returnDateTimeGroupItem)), __LINE__);
            }
        }
        $this->dateTimeGroup = $dateTimeGroup;
        return $this;
    }
    /**
     * Add item to dateTimeGroup value
     * @throws \InvalidArgumentException
     * @param RDateTimeGroup $item
     * @return _return
     */
    public function addToDateTimeGroup(RDateTimeGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDateTimeGroup) {
            throw new \InvalidArgumentException(sprintf('The dateTimeGroup property can only contain items of RDateTimeGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->dateTimeGroup[] = $item;
        return $this;
    }
    /**
     * Get presenceGroup value
     * @return RPresenceGroup[]|null
     */
    public function getPresenceGroup()
    {
        return $this->presenceGroup;
    }
    /**
     * Set presenceGroup value
     * @throws \InvalidArgumentException
     * @param RPresenceGroup[] $presenceGroup
     * @return _return
     */
    public function setPresenceGroup(array $presenceGroup = array())
    {
        foreach ($presenceGroup as $returnPresenceGroupItem) {
            // validation for constraint: itemType
            if (!$returnPresenceGroupItem instanceof RPresenceGroup) {
                throw new \InvalidArgumentException(sprintf('The presenceGroup property can only contain items of RPresenceGroup, "%s" given', is_object($returnPresenceGroupItem) ? get_class($returnPresenceGroupItem) : gettype($returnPresenceGroupItem)), __LINE__);
            }
        }
        $this->presenceGroup = $presenceGroup;
        return $this;
    }
    /**
     * Add item to presenceGroup value
     * @throws \InvalidArgumentException
     * @param RPresenceGroup $item
     * @return _return
     */
    public function addToPresenceGroup(RPresenceGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPresenceGroup) {
            throw new \InvalidArgumentException(sprintf('The presenceGroup property can only contain items of RPresenceGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->presenceGroup[] = $item;
        return $this;
    }
    /**
     * Get geoLocation value
     * @return RGeoLocation[]|null
     */
    public function getGeoLocation()
    {
        return $this->geoLocation;
    }
    /**
     * Set geoLocation value
     * @throws \InvalidArgumentException
     * @param RGeoLocation[] $geoLocation
     * @return _return
     */
    public function setGeoLocation(array $geoLocation = array())
    {
        foreach ($geoLocation as $returnGeoLocationItem) {
            // validation for constraint: itemType
            if (!$returnGeoLocationItem instanceof RGeoLocation) {
                throw new \InvalidArgumentException(sprintf('The geoLocation property can only contain items of RGeoLocation, "%s" given', is_object($returnGeoLocationItem) ? get_class($returnGeoLocationItem) : gettype($returnGeoLocationItem)), __LINE__);
            }
        }
        $this->geoLocation = $geoLocation;
        return $this;
    }
    /**
     * Add item to geoLocation value
     * @throws \InvalidArgumentException
     * @param RGeoLocation $item
     * @return _return
     */
    public function addToGeoLocation(RGeoLocation $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RGeoLocation) {
            throw new \InvalidArgumentException(sprintf('The geoLocation property can only contain items of RGeoLocation, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->geoLocation[] = $item;
        return $this;
    }
    /**
     * Get srst value
     * @return RSrst[]|null
     */
    public function getSrst()
    {
        return $this->srst;
    }
    /**
     * Set srst value
     * @throws \InvalidArgumentException
     * @param RSrst[] $srst
     * @return _return
     */
    public function setSrst(array $srst = array())
    {
        foreach ($srst as $returnSrstItem) {
            // validation for constraint: itemType
            if (!$returnSrstItem instanceof RSrst) {
                throw new \InvalidArgumentException(sprintf('The srst property can only contain items of RSrst, "%s" given', is_object($returnSrstItem) ? get_class($returnSrstItem) : gettype($returnSrstItem)), __LINE__);
            }
        }
        $this->srst = $srst;
        return $this;
    }
    /**
     * Add item to srst value
     * @throws \InvalidArgumentException
     * @param RSrst $item
     * @return _return
     */
    public function addToSrst(RSrst $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSrst) {
            throw new \InvalidArgumentException(sprintf('The srst property can only contain items of RSrst, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->srst[] = $item;
        return $this;
    }
    /**
     * Get mlppDomain value
     * @return RMlppDomain[]|null
     */
    public function getMlppDomain()
    {
        return $this->mlppDomain;
    }
    /**
     * Set mlppDomain value
     * @throws \InvalidArgumentException
     * @param RMlppDomain[] $mlppDomain
     * @return _return
     */
    public function setMlppDomain(array $mlppDomain = array())
    {
        foreach ($mlppDomain as $returnMlppDomainItem) {
            // validation for constraint: itemType
            if (!$returnMlppDomainItem instanceof RMlppDomain) {
                throw new \InvalidArgumentException(sprintf('The mlppDomain property can only contain items of RMlppDomain, "%s" given', is_object($returnMlppDomainItem) ? get_class($returnMlppDomainItem) : gettype($returnMlppDomainItem)), __LINE__);
            }
        }
        $this->mlppDomain = $mlppDomain;
        return $this;
    }
    /**
     * Add item to mlppDomain value
     * @throws \InvalidArgumentException
     * @param RMlppDomain $item
     * @return _return
     */
    public function addToMlppDomain(RMlppDomain $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMlppDomain) {
            throw new \InvalidArgumentException(sprintf('The mlppDomain property can only contain items of RMlppDomain, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mlppDomain[] = $item;
        return $this;
    }
    /**
     * Get cumaServerSecurityProfile value
     * @return RCumaServerSecurityProfile[]|null
     */
    public function getCumaServerSecurityProfile()
    {
        return $this->cumaServerSecurityProfile;
    }
    /**
     * Set cumaServerSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RCumaServerSecurityProfile[] $cumaServerSecurityProfile
     * @return _return
     */
    public function setCumaServerSecurityProfile(array $cumaServerSecurityProfile = array())
    {
        foreach ($cumaServerSecurityProfile as $returnCumaServerSecurityProfileItem) {
            // validation for constraint: itemType
            if (!$returnCumaServerSecurityProfileItem instanceof RCumaServerSecurityProfile) {
                throw new \InvalidArgumentException(sprintf('The cumaServerSecurityProfile property can only contain items of RCumaServerSecurityProfile, "%s" given', is_object($returnCumaServerSecurityProfileItem) ? get_class($returnCumaServerSecurityProfileItem) : gettype($returnCumaServerSecurityProfileItem)), __LINE__);
            }
        }
        $this->cumaServerSecurityProfile = $cumaServerSecurityProfile;
        return $this;
    }
    /**
     * Add item to cumaServerSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RCumaServerSecurityProfile $item
     * @return _return
     */
    public function addToCumaServerSecurityProfile(RCumaServerSecurityProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCumaServerSecurityProfile) {
            throw new \InvalidArgumentException(sprintf('The cumaServerSecurityProfile property can only contain items of RCumaServerSecurityProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->cumaServerSecurityProfile[] = $item;
        return $this;
    }
    /**
     * Get applicationServer value
     * @return RApplicationServer[]|null
     */
    public function getApplicationServer()
    {
        return $this->applicationServer;
    }
    /**
     * Set applicationServer value
     * @throws \InvalidArgumentException
     * @param RApplicationServer[] $applicationServer
     * @return _return
     */
    public function setApplicationServer(array $applicationServer = array())
    {
        foreach ($applicationServer as $returnApplicationServerItem) {
            // validation for constraint: itemType
            if (!$returnApplicationServerItem instanceof RApplicationServer) {
                throw new \InvalidArgumentException(sprintf('The applicationServer property can only contain items of RApplicationServer, "%s" given', is_object($returnApplicationServerItem) ? get_class($returnApplicationServerItem) : gettype($returnApplicationServerItem)), __LINE__);
            }
        }
        $this->applicationServer = $applicationServer;
        return $this;
    }
    /**
     * Add item to applicationServer value
     * @throws \InvalidArgumentException
     * @param RApplicationServer $item
     * @return _return
     */
    public function addToApplicationServer(RApplicationServer $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RApplicationServer) {
            throw new \InvalidArgumentException(sprintf('The applicationServer property can only contain items of RApplicationServer, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->applicationServer[] = $item;
        return $this;
    }
    /**
     * Get applicationUserCapfProfile value
     * @return RApplicationUserCapfProfile[]|null
     */
    public function getApplicationUserCapfProfile()
    {
        return $this->applicationUserCapfProfile;
    }
    /**
     * Set applicationUserCapfProfile value
     * @throws \InvalidArgumentException
     * @param RApplicationUserCapfProfile[] $applicationUserCapfProfile
     * @return _return
     */
    public function setApplicationUserCapfProfile(array $applicationUserCapfProfile = array())
    {
        foreach ($applicationUserCapfProfile as $returnApplicationUserCapfProfileItem) {
            // validation for constraint: itemType
            if (!$returnApplicationUserCapfProfileItem instanceof RApplicationUserCapfProfile) {
                throw new \InvalidArgumentException(sprintf('The applicationUserCapfProfile property can only contain items of RApplicationUserCapfProfile, "%s" given', is_object($returnApplicationUserCapfProfileItem) ? get_class($returnApplicationUserCapfProfileItem) : gettype($returnApplicationUserCapfProfileItem)), __LINE__);
            }
        }
        $this->applicationUserCapfProfile = $applicationUserCapfProfile;
        return $this;
    }
    /**
     * Add item to applicationUserCapfProfile value
     * @throws \InvalidArgumentException
     * @param RApplicationUserCapfProfile $item
     * @return _return
     */
    public function addToApplicationUserCapfProfile(RApplicationUserCapfProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RApplicationUserCapfProfile) {
            throw new \InvalidArgumentException(sprintf('The applicationUserCapfProfile property can only contain items of RApplicationUserCapfProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->applicationUserCapfProfile[] = $item;
        return $this;
    }
    /**
     * Get endUserCapfProfile value
     * @return REndUserCapfProfile[]|null
     */
    public function getEndUserCapfProfile()
    {
        return $this->endUserCapfProfile;
    }
    /**
     * Set endUserCapfProfile value
     * @throws \InvalidArgumentException
     * @param REndUserCapfProfile[] $endUserCapfProfile
     * @return _return
     */
    public function setEndUserCapfProfile(array $endUserCapfProfile = array())
    {
        foreach ($endUserCapfProfile as $returnEndUserCapfProfileItem) {
            // validation for constraint: itemType
            if (!$returnEndUserCapfProfileItem instanceof REndUserCapfProfile) {
                throw new \InvalidArgumentException(sprintf('The endUserCapfProfile property can only contain items of REndUserCapfProfile, "%s" given', is_object($returnEndUserCapfProfileItem) ? get_class($returnEndUserCapfProfileItem) : gettype($returnEndUserCapfProfileItem)), __LINE__);
            }
        }
        $this->endUserCapfProfile = $endUserCapfProfile;
        return $this;
    }
    /**
     * Add item to endUserCapfProfile value
     * @throws \InvalidArgumentException
     * @param REndUserCapfProfile $item
     * @return _return
     */
    public function addToEndUserCapfProfile(REndUserCapfProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof REndUserCapfProfile) {
            throw new \InvalidArgumentException(sprintf('The endUserCapfProfile property can only contain items of REndUserCapfProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->endUserCapfProfile[] = $item;
        return $this;
    }
    /**
     * Get serviceParameter value
     * @return RServiceParameter|null
     */
    public function getServiceParameter()
    {
        return $this->serviceParameter;
    }
    /**
     * Set serviceParameter value
     * @param RServiceParameter $serviceParameter
     * @return _return
     */
    public function setServiceParameter(RServiceParameter $serviceParameter = null)
    {
        $this->serviceParameter = $serviceParameter;
        return $this;
    }
    /**
     * Get geoLocationFilter value
     * @return RGeoLocationFilter[]|null
     */
    public function getGeoLocationFilter()
    {
        return $this->geoLocationFilter;
    }
    /**
     * Set geoLocationFilter value
     * @throws \InvalidArgumentException
     * @param RGeoLocationFilter[] $geoLocationFilter
     * @return _return
     */
    public function setGeoLocationFilter(array $geoLocationFilter = array())
    {
        foreach ($geoLocationFilter as $returnGeoLocationFilterItem) {
            // validation for constraint: itemType
            if (!$returnGeoLocationFilterItem instanceof RGeoLocationFilter) {
                throw new \InvalidArgumentException(sprintf('The geoLocationFilter property can only contain items of RGeoLocationFilter, "%s" given', is_object($returnGeoLocationFilterItem) ? get_class($returnGeoLocationFilterItem) : gettype($returnGeoLocationFilterItem)), __LINE__);
            }
        }
        $this->geoLocationFilter = $geoLocationFilter;
        return $this;
    }
    /**
     * Add item to geoLocationFilter value
     * @throws \InvalidArgumentException
     * @param RGeoLocationFilter $item
     * @return _return
     */
    public function addToGeoLocationFilter(RGeoLocationFilter $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RGeoLocationFilter) {
            throw new \InvalidArgumentException(sprintf('The geoLocationFilter property can only contain items of RGeoLocationFilter, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->geoLocationFilter[] = $item;
        return $this;
    }
    /**
     * Get voiceMailProfile value
     * @return RVoiceMailProfile[]|null
     */
    public function getVoiceMailProfile()
    {
        return $this->voiceMailProfile;
    }
    /**
     * Set voiceMailProfile value
     * @throws \InvalidArgumentException
     * @param RVoiceMailProfile[] $voiceMailProfile
     * @return _return
     */
    public function setVoiceMailProfile(array $voiceMailProfile = array())
    {
        foreach ($voiceMailProfile as $returnVoiceMailProfileItem) {
            // validation for constraint: itemType
            if (!$returnVoiceMailProfileItem instanceof RVoiceMailProfile) {
                throw new \InvalidArgumentException(sprintf('The voiceMailProfile property can only contain items of RVoiceMailProfile, "%s" given', is_object($returnVoiceMailProfileItem) ? get_class($returnVoiceMailProfileItem) : gettype($returnVoiceMailProfileItem)), __LINE__);
            }
        }
        $this->voiceMailProfile = $voiceMailProfile;
        return $this;
    }
    /**
     * Add item to voiceMailProfile value
     * @throws \InvalidArgumentException
     * @param RVoiceMailProfile $item
     * @return _return
     */
    public function addToVoiceMailProfile(RVoiceMailProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVoiceMailProfile) {
            throw new \InvalidArgumentException(sprintf('The voiceMailProfile property can only contain items of RVoiceMailProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->voiceMailProfile[] = $item;
        return $this;
    }
    /**
     * Get voiceMailPort value
     * @return RVoiceMailPort[]|null
     */
    public function getVoiceMailPort()
    {
        return $this->voiceMailPort;
    }
    /**
     * Set voiceMailPort value
     * @throws \InvalidArgumentException
     * @param RVoiceMailPort[] $voiceMailPort
     * @return _return
     */
    public function setVoiceMailPort(array $voiceMailPort = array())
    {
        foreach ($voiceMailPort as $returnVoiceMailPortItem) {
            // validation for constraint: itemType
            if (!$returnVoiceMailPortItem instanceof RVoiceMailPort) {
                throw new \InvalidArgumentException(sprintf('The voiceMailPort property can only contain items of RVoiceMailPort, "%s" given', is_object($returnVoiceMailPortItem) ? get_class($returnVoiceMailPortItem) : gettype($returnVoiceMailPortItem)), __LINE__);
            }
        }
        $this->voiceMailPort = $voiceMailPort;
        return $this;
    }
    /**
     * Add item to voiceMailPort value
     * @throws \InvalidArgumentException
     * @param RVoiceMailPort $item
     * @return _return
     */
    public function addToVoiceMailPort(RVoiceMailPort $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVoiceMailPort) {
            throw new \InvalidArgumentException(sprintf('The voiceMailPort property can only contain items of RVoiceMailPort, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->voiceMailPort[] = $item;
        return $this;
    }
    /**
     * Get gatekeeper value
     * @return RGatekeeper[]|null
     */
    public function getGatekeeper()
    {
        return $this->gatekeeper;
    }
    /**
     * Set gatekeeper value
     * @throws \InvalidArgumentException
     * @param RGatekeeper[] $gatekeeper
     * @return _return
     */
    public function setGatekeeper(array $gatekeeper = array())
    {
        foreach ($gatekeeper as $returnGatekeeperItem) {
            // validation for constraint: itemType
            if (!$returnGatekeeperItem instanceof RGatekeeper) {
                throw new \InvalidArgumentException(sprintf('The gatekeeper property can only contain items of RGatekeeper, "%s" given', is_object($returnGatekeeperItem) ? get_class($returnGatekeeperItem) : gettype($returnGatekeeperItem)), __LINE__);
            }
        }
        $this->gatekeeper = $gatekeeper;
        return $this;
    }
    /**
     * Add item to gatekeeper value
     * @throws \InvalidArgumentException
     * @param RGatekeeper $item
     * @return _return
     */
    public function addToGatekeeper(RGatekeeper $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RGatekeeper) {
            throw new \InvalidArgumentException(sprintf('The gatekeeper property can only contain items of RGatekeeper, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->gatekeeper[] = $item;
        return $this;
    }
    /**
     * Get phoneButtonTemplate value
     * @return RPhoneButtonTemplate[]|null
     */
    public function getPhoneButtonTemplate()
    {
        return $this->phoneButtonTemplate;
    }
    /**
     * Set phoneButtonTemplate value
     * @throws \InvalidArgumentException
     * @param RPhoneButtonTemplate[] $phoneButtonTemplate
     * @return _return
     */
    public function setPhoneButtonTemplate(array $phoneButtonTemplate = array())
    {
        foreach ($phoneButtonTemplate as $returnPhoneButtonTemplateItem) {
            // validation for constraint: itemType
            if (!$returnPhoneButtonTemplateItem instanceof RPhoneButtonTemplate) {
                throw new \InvalidArgumentException(sprintf('The phoneButtonTemplate property can only contain items of RPhoneButtonTemplate, "%s" given', is_object($returnPhoneButtonTemplateItem) ? get_class($returnPhoneButtonTemplateItem) : gettype($returnPhoneButtonTemplateItem)), __LINE__);
            }
        }
        $this->phoneButtonTemplate = $phoneButtonTemplate;
        return $this;
    }
    /**
     * Add item to phoneButtonTemplate value
     * @throws \InvalidArgumentException
     * @param RPhoneButtonTemplate $item
     * @return _return
     */
    public function addToPhoneButtonTemplate(RPhoneButtonTemplate $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPhoneButtonTemplate) {
            throw new \InvalidArgumentException(sprintf('The phoneButtonTemplate property can only contain items of RPhoneButtonTemplate, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->phoneButtonTemplate[] = $item;
        return $this;
    }
    /**
     * Get commonPhoneConfig value
     * @return RCommonPhoneConfig[]|null
     */
    public function getCommonPhoneConfig()
    {
        return $this->commonPhoneConfig;
    }
    /**
     * Set commonPhoneConfig value
     * @throws \InvalidArgumentException
     * @param RCommonPhoneConfig[] $commonPhoneConfig
     * @return _return
     */
    public function setCommonPhoneConfig(array $commonPhoneConfig = array())
    {
        foreach ($commonPhoneConfig as $returnCommonPhoneConfigItem) {
            // validation for constraint: itemType
            if (!$returnCommonPhoneConfigItem instanceof RCommonPhoneConfig) {
                throw new \InvalidArgumentException(sprintf('The commonPhoneConfig property can only contain items of RCommonPhoneConfig, "%s" given', is_object($returnCommonPhoneConfigItem) ? get_class($returnCommonPhoneConfigItem) : gettype($returnCommonPhoneConfigItem)), __LINE__);
            }
        }
        $this->commonPhoneConfig = $commonPhoneConfig;
        return $this;
    }
    /**
     * Add item to commonPhoneConfig value
     * @throws \InvalidArgumentException
     * @param RCommonPhoneConfig $item
     * @return _return
     */
    public function addToCommonPhoneConfig(RCommonPhoneConfig $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCommonPhoneConfig) {
            throw new \InvalidArgumentException(sprintf('The commonPhoneConfig property can only contain items of RCommonPhoneConfig, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->commonPhoneConfig[] = $item;
        return $this;
    }
    /**
     * Get messageWaiting value
     * @return RMessageWaiting[]|null
     */
    public function getMessageWaiting()
    {
        return $this->messageWaiting;
    }
    /**
     * Set messageWaiting value
     * @throws \InvalidArgumentException
     * @param RMessageWaiting[] $messageWaiting
     * @return _return
     */
    public function setMessageWaiting(array $messageWaiting = array())
    {
        foreach ($messageWaiting as $returnMessageWaitingItem) {
            // validation for constraint: itemType
            if (!$returnMessageWaitingItem instanceof RMessageWaiting) {
                throw new \InvalidArgumentException(sprintf('The messageWaiting property can only contain items of RMessageWaiting, "%s" given', is_object($returnMessageWaitingItem) ? get_class($returnMessageWaitingItem) : gettype($returnMessageWaitingItem)), __LINE__);
            }
        }
        $this->messageWaiting = $messageWaiting;
        return $this;
    }
    /**
     * Add item to messageWaiting value
     * @throws \InvalidArgumentException
     * @param RMessageWaiting $item
     * @return _return
     */
    public function addToMessageWaiting(RMessageWaiting $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMessageWaiting) {
            throw new \InvalidArgumentException(sprintf('The messageWaiting property can only contain items of RMessageWaiting, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->messageWaiting[] = $item;
        return $this;
    }
    /**
     * Get ipPhoneServices value
     * @return RIpPhoneServices[]|null
     */
    public function getIpPhoneServices()
    {
        return $this->ipPhoneServices;
    }
    /**
     * Set ipPhoneServices value
     * @throws \InvalidArgumentException
     * @param RIpPhoneServices[] $ipPhoneServices
     * @return _return
     */
    public function setIpPhoneServices(array $ipPhoneServices = array())
    {
        foreach ($ipPhoneServices as $returnIpPhoneServicesItem) {
            // validation for constraint: itemType
            if (!$returnIpPhoneServicesItem instanceof RIpPhoneServices) {
                throw new \InvalidArgumentException(sprintf('The ipPhoneServices property can only contain items of RIpPhoneServices, "%s" given', is_object($returnIpPhoneServicesItem) ? get_class($returnIpPhoneServicesItem) : gettype($returnIpPhoneServicesItem)), __LINE__);
            }
        }
        $this->ipPhoneServices = $ipPhoneServices;
        return $this;
    }
    /**
     * Add item to ipPhoneServices value
     * @throws \InvalidArgumentException
     * @param RIpPhoneServices $item
     * @return _return
     */
    public function addToIpPhoneServices(RIpPhoneServices $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RIpPhoneServices) {
            throw new \InvalidArgumentException(sprintf('The ipPhoneServices property can only contain items of RIpPhoneServices, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ipPhoneServices[] = $item;
        return $this;
    }
    /**
     * Get ctiRoutePoint value
     * @return RCtiRoutePoint[]|null
     */
    public function getCtiRoutePoint()
    {
        return $this->ctiRoutePoint;
    }
    /**
     * Set ctiRoutePoint value
     * @throws \InvalidArgumentException
     * @param RCtiRoutePoint[] $ctiRoutePoint
     * @return _return
     */
    public function setCtiRoutePoint(array $ctiRoutePoint = array())
    {
        foreach ($ctiRoutePoint as $returnCtiRoutePointItem) {
            // validation for constraint: itemType
            if (!$returnCtiRoutePointItem instanceof RCtiRoutePoint) {
                throw new \InvalidArgumentException(sprintf('The ctiRoutePoint property can only contain items of RCtiRoutePoint, "%s" given', is_object($returnCtiRoutePointItem) ? get_class($returnCtiRoutePointItem) : gettype($returnCtiRoutePointItem)), __LINE__);
            }
        }
        $this->ctiRoutePoint = $ctiRoutePoint;
        return $this;
    }
    /**
     * Add item to ctiRoutePoint value
     * @throws \InvalidArgumentException
     * @param RCtiRoutePoint $item
     * @return _return
     */
    public function addToCtiRoutePoint(RCtiRoutePoint $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCtiRoutePoint) {
            throw new \InvalidArgumentException(sprintf('The ctiRoutePoint property can only contain items of RCtiRoutePoint, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ctiRoutePoint[] = $item;
        return $this;
    }
    /**
     * Get transPattern value
     * @return RTransPattern[]|null
     */
    public function getTransPattern()
    {
        return $this->transPattern;
    }
    /**
     * Set transPattern value
     * @throws \InvalidArgumentException
     * @param RTransPattern[] $transPattern
     * @return _return
     */
    public function setTransPattern(array $transPattern = array())
    {
        foreach ($transPattern as $returnTransPatternItem) {
            // validation for constraint: itemType
            if (!$returnTransPatternItem instanceof RTransPattern) {
                throw new \InvalidArgumentException(sprintf('The transPattern property can only contain items of RTransPattern, "%s" given', is_object($returnTransPatternItem) ? get_class($returnTransPatternItem) : gettype($returnTransPatternItem)), __LINE__);
            }
        }
        $this->transPattern = $transPattern;
        return $this;
    }
    /**
     * Add item to transPattern value
     * @throws \InvalidArgumentException
     * @param RTransPattern $item
     * @return _return
     */
    public function addToTransPattern(RTransPattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTransPattern) {
            throw new \InvalidArgumentException(sprintf('The transPattern property can only contain items of RTransPattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->transPattern[] = $item;
        return $this;
    }
    /**
     * Get callingPartyTransformationPattern value
     * @return RCallingPartyTransformationPattern[]|null
     */
    public function getCallingPartyTransformationPattern()
    {
        return $this->callingPartyTransformationPattern;
    }
    /**
     * Set callingPartyTransformationPattern value
     * @throws \InvalidArgumentException
     * @param RCallingPartyTransformationPattern[] $callingPartyTransformationPattern
     * @return _return
     */
    public function setCallingPartyTransformationPattern(array $callingPartyTransformationPattern = array())
    {
        foreach ($callingPartyTransformationPattern as $returnCallingPartyTransformationPatternItem) {
            // validation for constraint: itemType
            if (!$returnCallingPartyTransformationPatternItem instanceof RCallingPartyTransformationPattern) {
                throw new \InvalidArgumentException(sprintf('The callingPartyTransformationPattern property can only contain items of RCallingPartyTransformationPattern, "%s" given', is_object($returnCallingPartyTransformationPatternItem) ? get_class($returnCallingPartyTransformationPatternItem) : gettype($returnCallingPartyTransformationPatternItem)), __LINE__);
            }
        }
        $this->callingPartyTransformationPattern = $callingPartyTransformationPattern;
        return $this;
    }
    /**
     * Add item to callingPartyTransformationPattern value
     * @throws \InvalidArgumentException
     * @param RCallingPartyTransformationPattern $item
     * @return _return
     */
    public function addToCallingPartyTransformationPattern(RCallingPartyTransformationPattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallingPartyTransformationPattern) {
            throw new \InvalidArgumentException(sprintf('The callingPartyTransformationPattern property can only contain items of RCallingPartyTransformationPattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callingPartyTransformationPattern[] = $item;
        return $this;
    }
    /**
     * Get sipRoutePattern value
     * @return RSipRoutePattern[]|null
     */
    public function getSipRoutePattern()
    {
        return $this->sipRoutePattern;
    }
    /**
     * Set sipRoutePattern value
     * @throws \InvalidArgumentException
     * @param RSipRoutePattern[] $sipRoutePattern
     * @return _return
     */
    public function setSipRoutePattern(array $sipRoutePattern = array())
    {
        foreach ($sipRoutePattern as $returnSipRoutePatternItem) {
            // validation for constraint: itemType
            if (!$returnSipRoutePatternItem instanceof RSipRoutePattern) {
                throw new \InvalidArgumentException(sprintf('The sipRoutePattern property can only contain items of RSipRoutePattern, "%s" given', is_object($returnSipRoutePatternItem) ? get_class($returnSipRoutePatternItem) : gettype($returnSipRoutePatternItem)), __LINE__);
            }
        }
        $this->sipRoutePattern = $sipRoutePattern;
        return $this;
    }
    /**
     * Add item to sipRoutePattern value
     * @throws \InvalidArgumentException
     * @param RSipRoutePattern $item
     * @return _return
     */
    public function addToSipRoutePattern(RSipRoutePattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipRoutePattern) {
            throw new \InvalidArgumentException(sprintf('The sipRoutePattern property can only contain items of RSipRoutePattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipRoutePattern[] = $item;
        return $this;
    }
    /**
     * Get huntPilot value
     * @return RHuntPilot[]|null
     */
    public function getHuntPilot()
    {
        return $this->huntPilot;
    }
    /**
     * Set huntPilot value
     * @throws \InvalidArgumentException
     * @param RHuntPilot[] $huntPilot
     * @return _return
     */
    public function setHuntPilot(array $huntPilot = array())
    {
        foreach ($huntPilot as $returnHuntPilotItem) {
            // validation for constraint: itemType
            if (!$returnHuntPilotItem instanceof RHuntPilot) {
                throw new \InvalidArgumentException(sprintf('The huntPilot property can only contain items of RHuntPilot, "%s" given', is_object($returnHuntPilotItem) ? get_class($returnHuntPilotItem) : gettype($returnHuntPilotItem)), __LINE__);
            }
        }
        $this->huntPilot = $huntPilot;
        return $this;
    }
    /**
     * Add item to huntPilot value
     * @throws \InvalidArgumentException
     * @param RHuntPilot $item
     * @return _return
     */
    public function addToHuntPilot(RHuntPilot $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RHuntPilot) {
            throw new \InvalidArgumentException(sprintf('The huntPilot property can only contain items of RHuntPilot, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->huntPilot[] = $item;
        return $this;
    }
    /**
     * Get routePattern value
     * @return RRoutePattern[]|null
     */
    public function getRoutePattern()
    {
        return $this->routePattern;
    }
    /**
     * Set routePattern value
     * @throws \InvalidArgumentException
     * @param RRoutePattern[] $routePattern
     * @return _return
     */
    public function setRoutePattern(array $routePattern = array())
    {
        foreach ($routePattern as $returnRoutePatternItem) {
            // validation for constraint: itemType
            if (!$returnRoutePatternItem instanceof RRoutePattern) {
                throw new \InvalidArgumentException(sprintf('The routePattern property can only contain items of RRoutePattern, "%s" given', is_object($returnRoutePatternItem) ? get_class($returnRoutePatternItem) : gettype($returnRoutePatternItem)), __LINE__);
            }
        }
        $this->routePattern = $routePattern;
        return $this;
    }
    /**
     * Add item to routePattern value
     * @throws \InvalidArgumentException
     * @param RRoutePattern $item
     * @return _return
     */
    public function addToRoutePattern(RRoutePattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRoutePattern) {
            throw new \InvalidArgumentException(sprintf('The routePattern property can only contain items of RRoutePattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routePattern[] = $item;
        return $this;
    }
    /**
     * Get applicationDialRules value
     * @return RApplicationDialRules[]|null
     */
    public function getApplicationDialRules()
    {
        return $this->applicationDialRules;
    }
    /**
     * Set applicationDialRules value
     * @throws \InvalidArgumentException
     * @param RApplicationDialRules[] $applicationDialRules
     * @return _return
     */
    public function setApplicationDialRules(array $applicationDialRules = array())
    {
        foreach ($applicationDialRules as $returnApplicationDialRulesItem) {
            // validation for constraint: itemType
            if (!$returnApplicationDialRulesItem instanceof RApplicationDialRules) {
                throw new \InvalidArgumentException(sprintf('The applicationDialRules property can only contain items of RApplicationDialRules, "%s" given', is_object($returnApplicationDialRulesItem) ? get_class($returnApplicationDialRulesItem) : gettype($returnApplicationDialRulesItem)), __LINE__);
            }
        }
        $this->applicationDialRules = $applicationDialRules;
        return $this;
    }
    /**
     * Add item to applicationDialRules value
     * @throws \InvalidArgumentException
     * @param RApplicationDialRules $item
     * @return _return
     */
    public function addToApplicationDialRules(RApplicationDialRules $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RApplicationDialRules) {
            throw new \InvalidArgumentException(sprintf('The applicationDialRules property can only contain items of RApplicationDialRules, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->applicationDialRules[] = $item;
        return $this;
    }
    /**
     * Get directoryLookupDialRules value
     * @return RDirectoryLookupDialRules[]|null
     */
    public function getDirectoryLookupDialRules()
    {
        return $this->directoryLookupDialRules;
    }
    /**
     * Set directoryLookupDialRules value
     * @throws \InvalidArgumentException
     * @param RDirectoryLookupDialRules[] $directoryLookupDialRules
     * @return _return
     */
    public function setDirectoryLookupDialRules(array $directoryLookupDialRules = array())
    {
        foreach ($directoryLookupDialRules as $returnDirectoryLookupDialRulesItem) {
            // validation for constraint: itemType
            if (!$returnDirectoryLookupDialRulesItem instanceof RDirectoryLookupDialRules) {
                throw new \InvalidArgumentException(sprintf('The directoryLookupDialRules property can only contain items of RDirectoryLookupDialRules, "%s" given', is_object($returnDirectoryLookupDialRulesItem) ? get_class($returnDirectoryLookupDialRulesItem) : gettype($returnDirectoryLookupDialRulesItem)), __LINE__);
            }
        }
        $this->directoryLookupDialRules = $directoryLookupDialRules;
        return $this;
    }
    /**
     * Add item to directoryLookupDialRules value
     * @throws \InvalidArgumentException
     * @param RDirectoryLookupDialRules $item
     * @return _return
     */
    public function addToDirectoryLookupDialRules(RDirectoryLookupDialRules $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDirectoryLookupDialRules) {
            throw new \InvalidArgumentException(sprintf('The directoryLookupDialRules property can only contain items of RDirectoryLookupDialRules, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->directoryLookupDialRules[] = $item;
        return $this;
    }
    /**
     * Get phoneSecurityProfile value
     * @return RPhoneSecurityProfile[]|null
     */
    public function getPhoneSecurityProfile()
    {
        return $this->phoneSecurityProfile;
    }
    /**
     * Set phoneSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RPhoneSecurityProfile[] $phoneSecurityProfile
     * @return _return
     */
    public function setPhoneSecurityProfile(array $phoneSecurityProfile = array())
    {
        foreach ($phoneSecurityProfile as $returnPhoneSecurityProfileItem) {
            // validation for constraint: itemType
            if (!$returnPhoneSecurityProfileItem instanceof RPhoneSecurityProfile) {
                throw new \InvalidArgumentException(sprintf('The phoneSecurityProfile property can only contain items of RPhoneSecurityProfile, "%s" given', is_object($returnPhoneSecurityProfileItem) ? get_class($returnPhoneSecurityProfileItem) : gettype($returnPhoneSecurityProfileItem)), __LINE__);
            }
        }
        $this->phoneSecurityProfile = $phoneSecurityProfile;
        return $this;
    }
    /**
     * Add item to phoneSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RPhoneSecurityProfile $item
     * @return _return
     */
    public function addToPhoneSecurityProfile(RPhoneSecurityProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPhoneSecurityProfile) {
            throw new \InvalidArgumentException(sprintf('The phoneSecurityProfile property can only contain items of RPhoneSecurityProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->phoneSecurityProfile[] = $item;
        return $this;
    }
    /**
     * Get sipDialRules value
     * @return RSipDialRules[]|null
     */
    public function getSipDialRules()
    {
        return $this->sipDialRules;
    }
    /**
     * Set sipDialRules value
     * @throws \InvalidArgumentException
     * @param RSipDialRules[] $sipDialRules
     * @return _return
     */
    public function setSipDialRules(array $sipDialRules = array())
    {
        foreach ($sipDialRules as $returnSipDialRulesItem) {
            // validation for constraint: itemType
            if (!$returnSipDialRulesItem instanceof RSipDialRules) {
                throw new \InvalidArgumentException(sprintf('The sipDialRules property can only contain items of RSipDialRules, "%s" given', is_object($returnSipDialRulesItem) ? get_class($returnSipDialRulesItem) : gettype($returnSipDialRulesItem)), __LINE__);
            }
        }
        $this->sipDialRules = $sipDialRules;
        return $this;
    }
    /**
     * Add item to sipDialRules value
     * @throws \InvalidArgumentException
     * @param RSipDialRules $item
     * @return _return
     */
    public function addToSipDialRules(RSipDialRules $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipDialRules) {
            throw new \InvalidArgumentException(sprintf('The sipDialRules property can only contain items of RSipDialRules, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipDialRules[] = $item;
        return $this;
    }
    /**
     * Get conferenceBridge value
     * @return RConferenceBridge[]|null
     */
    public function getConferenceBridge()
    {
        return $this->conferenceBridge;
    }
    /**
     * Set conferenceBridge value
     * @throws \InvalidArgumentException
     * @param RConferenceBridge[] $conferenceBridge
     * @return _return
     */
    public function setConferenceBridge(array $conferenceBridge = array())
    {
        foreach ($conferenceBridge as $returnConferenceBridgeItem) {
            // validation for constraint: itemType
            if (!$returnConferenceBridgeItem instanceof RConferenceBridge) {
                throw new \InvalidArgumentException(sprintf('The conferenceBridge property can only contain items of RConferenceBridge, "%s" given', is_object($returnConferenceBridgeItem) ? get_class($returnConferenceBridgeItem) : gettype($returnConferenceBridgeItem)), __LINE__);
            }
        }
        $this->conferenceBridge = $conferenceBridge;
        return $this;
    }
    /**
     * Add item to conferenceBridge value
     * @throws \InvalidArgumentException
     * @param RConferenceBridge $item
     * @return _return
     */
    public function addToConferenceBridge(RConferenceBridge $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RConferenceBridge) {
            throw new \InvalidArgumentException(sprintf('The conferenceBridge property can only contain items of RConferenceBridge, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->conferenceBridge[] = $item;
        return $this;
    }
    /**
     * Get annunciator value
     * @return RAnnunciator[]|null
     */
    public function getAnnunciator()
    {
        return $this->annunciator;
    }
    /**
     * Set annunciator value
     * @throws \InvalidArgumentException
     * @param RAnnunciator[] $annunciator
     * @return _return
     */
    public function setAnnunciator(array $annunciator = array())
    {
        foreach ($annunciator as $returnAnnunciatorItem) {
            // validation for constraint: itemType
            if (!$returnAnnunciatorItem instanceof RAnnunciator) {
                throw new \InvalidArgumentException(sprintf('The annunciator property can only contain items of RAnnunciator, "%s" given', is_object($returnAnnunciatorItem) ? get_class($returnAnnunciatorItem) : gettype($returnAnnunciatorItem)), __LINE__);
            }
        }
        $this->annunciator = $annunciator;
        return $this;
    }
    /**
     * Add item to annunciator value
     * @throws \InvalidArgumentException
     * @param RAnnunciator $item
     * @return _return
     */
    public function addToAnnunciator(RAnnunciator $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RAnnunciator) {
            throw new \InvalidArgumentException(sprintf('The annunciator property can only contain items of RAnnunciator, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->annunciator[] = $item;
        return $this;
    }
    /**
     * Get mtp value
     * @return RMtp[]|null
     */
    public function getMtp()
    {
        return $this->mtp;
    }
    /**
     * Set mtp value
     * @throws \InvalidArgumentException
     * @param RMtp[] $mtp
     * @return _return
     */
    public function setMtp(array $mtp = array())
    {
        foreach ($mtp as $returnMtpItem) {
            // validation for constraint: itemType
            if (!$returnMtpItem instanceof RMtp) {
                throw new \InvalidArgumentException(sprintf('The mtp property can only contain items of RMtp, "%s" given', is_object($returnMtpItem) ? get_class($returnMtpItem) : gettype($returnMtpItem)), __LINE__);
            }
        }
        $this->mtp = $mtp;
        return $this;
    }
    /**
     * Add item to mtp value
     * @throws \InvalidArgumentException
     * @param RMtp $item
     * @return _return
     */
    public function addToMtp(RMtp $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMtp) {
            throw new \InvalidArgumentException(sprintf('The mtp property can only contain items of RMtp, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mtp[] = $item;
        return $this;
    }
    /**
     * Get fixedMohAudioSource value
     * @return RFixedMohAudioSource|null
     */
    public function getFixedMohAudioSource()
    {
        return $this->fixedMohAudioSource;
    }
    /**
     * Set fixedMohAudioSource value
     * @param RFixedMohAudioSource $fixedMohAudioSource
     * @return _return
     */
    public function setFixedMohAudioSource(RFixedMohAudioSource $fixedMohAudioSource = null)
    {
        $this->fixedMohAudioSource = $fixedMohAudioSource;
        return $this;
    }
    /**
     * Get remoteDestinationProfile value
     * @return RRemoteDestinationProfile[]|null
     */
    public function getRemoteDestinationProfile()
    {
        return $this->remoteDestinationProfile;
    }
    /**
     * Set remoteDestinationProfile value
     * @throws \InvalidArgumentException
     * @param RRemoteDestinationProfile[] $remoteDestinationProfile
     * @return _return
     */
    public function setRemoteDestinationProfile(array $remoteDestinationProfile = array())
    {
        foreach ($remoteDestinationProfile as $returnRemoteDestinationProfileItem) {
            // validation for constraint: itemType
            if (!$returnRemoteDestinationProfileItem instanceof RRemoteDestinationProfile) {
                throw new \InvalidArgumentException(sprintf('The remoteDestinationProfile property can only contain items of RRemoteDestinationProfile, "%s" given', is_object($returnRemoteDestinationProfileItem) ? get_class($returnRemoteDestinationProfileItem) : gettype($returnRemoteDestinationProfileItem)), __LINE__);
            }
        }
        $this->remoteDestinationProfile = $remoteDestinationProfile;
        return $this;
    }
    /**
     * Add item to remoteDestinationProfile value
     * @throws \InvalidArgumentException
     * @param RRemoteDestinationProfile $item
     * @return _return
     */
    public function addToRemoteDestinationProfile(RRemoteDestinationProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRemoteDestinationProfile) {
            throw new \InvalidArgumentException(sprintf('The remoteDestinationProfile property can only contain items of RRemoteDestinationProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->remoteDestinationProfile[] = $item;
        return $this;
    }
    /**
     * Get line value
     * @return RLine[]|null
     */
    public function getLine()
    {
        return $this->line;
    }
    /**
     * Set line value
     * @throws \InvalidArgumentException
     * @param RLine[] $line
     * @return _return
     */
    public function setLine(array $line = array())
    {
        foreach ($line as $returnLineItem) {
            // validation for constraint: itemType
            if (!$returnLineItem instanceof RLine) {
                throw new \InvalidArgumentException(sprintf('The line property can only contain items of RLine, "%s" given', is_object($returnLineItem) ? get_class($returnLineItem) : gettype($returnLineItem)), __LINE__);
            }
        }
        $this->line = $line;
        return $this;
    }
    /**
     * Add item to line value
     * @throws \InvalidArgumentException
     * @param RLine $item
     * @return _return
     */
    public function addToLine(RLine $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLine) {
            throw new \InvalidArgumentException(sprintf('The line property can only contain items of RLine, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->line[] = $item;
        return $this;
    }
    /**
     * Get defaultDeviceProfile value
     * @return RDefaultDeviceProfile[]|null
     */
    public function getDefaultDeviceProfile()
    {
        return $this->defaultDeviceProfile;
    }
    /**
     * Set defaultDeviceProfile value
     * @throws \InvalidArgumentException
     * @param RDefaultDeviceProfile[] $defaultDeviceProfile
     * @return _return
     */
    public function setDefaultDeviceProfile(array $defaultDeviceProfile = array())
    {
        foreach ($defaultDeviceProfile as $returnDefaultDeviceProfileItem) {
            // validation for constraint: itemType
            if (!$returnDefaultDeviceProfileItem instanceof RDefaultDeviceProfile) {
                throw new \InvalidArgumentException(sprintf('The defaultDeviceProfile property can only contain items of RDefaultDeviceProfile, "%s" given', is_object($returnDefaultDeviceProfileItem) ? get_class($returnDefaultDeviceProfileItem) : gettype($returnDefaultDeviceProfileItem)), __LINE__);
            }
        }
        $this->defaultDeviceProfile = $defaultDeviceProfile;
        return $this;
    }
    /**
     * Add item to defaultDeviceProfile value
     * @throws \InvalidArgumentException
     * @param RDefaultDeviceProfile $item
     * @return _return
     */
    public function addToDefaultDeviceProfile(RDefaultDeviceProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDefaultDeviceProfile) {
            throw new \InvalidArgumentException(sprintf('The defaultDeviceProfile property can only contain items of RDefaultDeviceProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->defaultDeviceProfile[] = $item;
        return $this;
    }
    /**
     * Get h323Phone value
     * @return RH323Phone[]|null
     */
    public function getH323Phone()
    {
        return $this->h323Phone;
    }
    /**
     * Set h323Phone value
     * @throws \InvalidArgumentException
     * @param RH323Phone[] $h323Phone
     * @return _return
     */
    public function setH323Phone(array $h323Phone = array())
    {
        foreach ($h323Phone as $returnH323PhoneItem) {
            // validation for constraint: itemType
            if (!$returnH323PhoneItem instanceof RH323Phone) {
                throw new \InvalidArgumentException(sprintf('The h323Phone property can only contain items of RH323Phone, "%s" given', is_object($returnH323PhoneItem) ? get_class($returnH323PhoneItem) : gettype($returnH323PhoneItem)), __LINE__);
            }
        }
        $this->h323Phone = $h323Phone;
        return $this;
    }
    /**
     * Add item to h323Phone value
     * @throws \InvalidArgumentException
     * @param RH323Phone $item
     * @return _return
     */
    public function addToH323Phone(RH323Phone $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RH323Phone) {
            throw new \InvalidArgumentException(sprintf('The h323Phone property can only contain items of RH323Phone, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->h323Phone[] = $item;
        return $this;
    }
    /**
     * Get mohServer value
     * @return RMohServer[]|null
     */
    public function getMohServer()
    {
        return $this->mohServer;
    }
    /**
     * Set mohServer value
     * @throws \InvalidArgumentException
     * @param RMohServer[] $mohServer
     * @return _return
     */
    public function setMohServer(array $mohServer = array())
    {
        foreach ($mohServer as $returnMohServerItem) {
            // validation for constraint: itemType
            if (!$returnMohServerItem instanceof RMohServer) {
                throw new \InvalidArgumentException(sprintf('The mohServer property can only contain items of RMohServer, "%s" given', is_object($returnMohServerItem) ? get_class($returnMohServerItem) : gettype($returnMohServerItem)), __LINE__);
            }
        }
        $this->mohServer = $mohServer;
        return $this;
    }
    /**
     * Add item to mohServer value
     * @throws \InvalidArgumentException
     * @param RMohServer $item
     * @return _return
     */
    public function addToMohServer(RMohServer $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMohServer) {
            throw new \InvalidArgumentException(sprintf('The mohServer property can only contain items of RMohServer, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mohServer[] = $item;
        return $this;
    }
    /**
     * Get h323Trunk value
     * @return RH323Trunk[]|null
     */
    public function getH323Trunk()
    {
        return $this->h323Trunk;
    }
    /**
     * Set h323Trunk value
     * @throws \InvalidArgumentException
     * @param RH323Trunk[] $h323Trunk
     * @return _return
     */
    public function setH323Trunk(array $h323Trunk = array())
    {
        foreach ($h323Trunk as $returnH323TrunkItem) {
            // validation for constraint: itemType
            if (!$returnH323TrunkItem instanceof RH323Trunk) {
                throw new \InvalidArgumentException(sprintf('The h323Trunk property can only contain items of RH323Trunk, "%s" given', is_object($returnH323TrunkItem) ? get_class($returnH323TrunkItem) : gettype($returnH323TrunkItem)), __LINE__);
            }
        }
        $this->h323Trunk = $h323Trunk;
        return $this;
    }
    /**
     * Add item to h323Trunk value
     * @throws \InvalidArgumentException
     * @param RH323Trunk $item
     * @return _return
     */
    public function addToH323Trunk(RH323Trunk $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RH323Trunk) {
            throw new \InvalidArgumentException(sprintf('The h323Trunk property can only contain items of RH323Trunk, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->h323Trunk[] = $item;
        return $this;
    }
    /**
     * Get phone value
     * @return RPhone[]|null
     */
    public function getPhone()
    {
        return $this->phone;
    }
    /**
     * Set phone value
     * @throws \InvalidArgumentException
     * @param RPhone[] $phone
     * @return _return
     */
    public function setPhone(array $phone = array())
    {
        foreach ($phone as $returnPhoneItem) {
            // validation for constraint: itemType
            if (!$returnPhoneItem instanceof RPhone) {
                throw new \InvalidArgumentException(sprintf('The phone property can only contain items of RPhone, "%s" given', is_object($returnPhoneItem) ? get_class($returnPhoneItem) : gettype($returnPhoneItem)), __LINE__);
            }
        }
        $this->phone = $phone;
        return $this;
    }
    /**
     * Add item to phone value
     * @throws \InvalidArgumentException
     * @param RPhone $item
     * @return _return
     */
    public function addToPhone(RPhone $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RPhone) {
            throw new \InvalidArgumentException(sprintf('The phone property can only contain items of RPhone, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->phone[] = $item;
        return $this;
    }
    /**
     * Get h323Gateway value
     * @return RH323Gateway[]|null
     */
    public function getH323Gateway()
    {
        return $this->h323Gateway;
    }
    /**
     * Set h323Gateway value
     * @throws \InvalidArgumentException
     * @param RH323Gateway[] $h323Gateway
     * @return _return
     */
    public function setH323Gateway(array $h323Gateway = array())
    {
        foreach ($h323Gateway as $returnH323GatewayItem) {
            // validation for constraint: itemType
            if (!$returnH323GatewayItem instanceof RH323Gateway) {
                throw new \InvalidArgumentException(sprintf('The h323Gateway property can only contain items of RH323Gateway, "%s" given', is_object($returnH323GatewayItem) ? get_class($returnH323GatewayItem) : gettype($returnH323GatewayItem)), __LINE__);
            }
        }
        $this->h323Gateway = $h323Gateway;
        return $this;
    }
    /**
     * Add item to h323Gateway value
     * @throws \InvalidArgumentException
     * @param RH323Gateway $item
     * @return _return
     */
    public function addToH323Gateway(RH323Gateway $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RH323Gateway) {
            throw new \InvalidArgumentException(sprintf('The h323Gateway property can only contain items of RH323Gateway, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->h323Gateway[] = $item;
        return $this;
    }
    /**
     * Get deviceProfile value
     * @return RDeviceProfile[]|null
     */
    public function getDeviceProfile()
    {
        return $this->deviceProfile;
    }
    /**
     * Set deviceProfile value
     * @throws \InvalidArgumentException
     * @param RDeviceProfile[] $deviceProfile
     * @return _return
     */
    public function setDeviceProfile(array $deviceProfile = array())
    {
        foreach ($deviceProfile as $returnDeviceProfileItem) {
            // validation for constraint: itemType
            if (!$returnDeviceProfileItem instanceof RDeviceProfile) {
                throw new \InvalidArgumentException(sprintf('The deviceProfile property can only contain items of RDeviceProfile, "%s" given', is_object($returnDeviceProfileItem) ? get_class($returnDeviceProfileItem) : gettype($returnDeviceProfileItem)), __LINE__);
            }
        }
        $this->deviceProfile = $deviceProfile;
        return $this;
    }
    /**
     * Add item to deviceProfile value
     * @throws \InvalidArgumentException
     * @param RDeviceProfile $item
     * @return _return
     */
    public function addToDeviceProfile(RDeviceProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RDeviceProfile) {
            throw new \InvalidArgumentException(sprintf('The deviceProfile property can only contain items of RDeviceProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->deviceProfile[] = $item;
        return $this;
    }
    /**
     * Get remoteDestination value
     * @return RRemoteDestination[]|null
     */
    public function getRemoteDestination()
    {
        return $this->remoteDestination;
    }
    /**
     * Set remoteDestination value
     * @throws \InvalidArgumentException
     * @param RRemoteDestination[] $remoteDestination
     * @return _return
     */
    public function setRemoteDestination(array $remoteDestination = array())
    {
        foreach ($remoteDestination as $returnRemoteDestinationItem) {
            // validation for constraint: itemType
            if (!$returnRemoteDestinationItem instanceof RRemoteDestination) {
                throw new \InvalidArgumentException(sprintf('The remoteDestination property can only contain items of RRemoteDestination, "%s" given', is_object($returnRemoteDestinationItem) ? get_class($returnRemoteDestinationItem) : gettype($returnRemoteDestinationItem)), __LINE__);
            }
        }
        $this->remoteDestination = $remoteDestination;
        return $this;
    }
    /**
     * Add item to remoteDestination value
     * @throws \InvalidArgumentException
     * @param RRemoteDestination $item
     * @return _return
     */
    public function addToRemoteDestination(RRemoteDestination $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRemoteDestination) {
            throw new \InvalidArgumentException(sprintf('The remoteDestination property can only contain items of RRemoteDestination, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->remoteDestination[] = $item;
        return $this;
    }
    /**
     * Get gateway value
     * @return RGateway[]|null
     */
    public function getGateway()
    {
        return $this->gateway;
    }
    /**
     * Set gateway value
     * @throws \InvalidArgumentException
     * @param RGateway[] $gateway
     * @return _return
     */
    public function setGateway(array $gateway = array())
    {
        foreach ($gateway as $returnGatewayItem) {
            // validation for constraint: itemType
            if (!$returnGatewayItem instanceof RGateway) {
                throw new \InvalidArgumentException(sprintf('The gateway property can only contain items of RGateway, "%s" given', is_object($returnGatewayItem) ? get_class($returnGatewayItem) : gettype($returnGatewayItem)), __LINE__);
            }
        }
        $this->gateway = $gateway;
        return $this;
    }
    /**
     * Add item to gateway value
     * @throws \InvalidArgumentException
     * @param RGateway $item
     * @return _return
     */
    public function addToGateway(RGateway $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RGateway) {
            throw new \InvalidArgumentException(sprintf('The gateway property can only contain items of RGateway, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->gateway[] = $item;
        return $this;
    }
    /**
     * Get gatewayEndpointAnalogAccess value
     * @return RGatewayEndpointAnalogAccess|null
     */
    public function getGatewayEndpointAnalogAccess()
    {
        return $this->gatewayEndpointAnalogAccess;
    }
    /**
     * Set gatewayEndpointAnalogAccess value
     * @param RGatewayEndpointAnalogAccess $gatewayEndpointAnalogAccess
     * @return _return
     */
    public function setGatewayEndpointAnalogAccess(RGatewayEndpointAnalogAccess $gatewayEndpointAnalogAccess = null)
    {
        $this->gatewayEndpointAnalogAccess = $gatewayEndpointAnalogAccess;
        return $this;
    }
    /**
     * Get gatewayEndpointDigitalAccessPri value
     * @return RGatewayEndpointDigitalAccessPri|null
     */
    public function getGatewayEndpointDigitalAccessPri()
    {
        return $this->gatewayEndpointDigitalAccessPri;
    }
    /**
     * Set gatewayEndpointDigitalAccessPri value
     * @param RGatewayEndpointDigitalAccessPri $gatewayEndpointDigitalAccessPri
     * @return _return
     */
    public function setGatewayEndpointDigitalAccessPri(RGatewayEndpointDigitalAccessPri $gatewayEndpointDigitalAccessPri = null)
    {
        $this->gatewayEndpointDigitalAccessPri = $gatewayEndpointDigitalAccessPri;
        return $this;
    }
    /**
     * Get gatewayEndpointDigitalAccessBri value
     * @return RGatewayEndpointDigitalAccessBri|null
     */
    public function getGatewayEndpointDigitalAccessBri()
    {
        return $this->gatewayEndpointDigitalAccessBri;
    }
    /**
     * Set gatewayEndpointDigitalAccessBri value
     * @param RGatewayEndpointDigitalAccessBri $gatewayEndpointDigitalAccessBri
     * @return _return
     */
    public function setGatewayEndpointDigitalAccessBri(RGatewayEndpointDigitalAccessBri $gatewayEndpointDigitalAccessBri = null)
    {
        $this->gatewayEndpointDigitalAccessBri = $gatewayEndpointDigitalAccessBri;
        return $this;
    }
    /**
     * Get gatewayEndpointDigitalAccessT1 value
     * @return RGatewayEndpointDigitalAccessT1|null
     */
    public function getGatewayEndpointDigitalAccessT1()
    {
        return $this->gatewayEndpointDigitalAccessT1;
    }
    /**
     * Set gatewayEndpointDigitalAccessT1 value
     * @param RGatewayEndpointDigitalAccessT1 $gatewayEndpointDigitalAccessT1
     * @return _return
     */
    public function setGatewayEndpointDigitalAccessT1(RGatewayEndpointDigitalAccessT1 $gatewayEndpointDigitalAccessT1 = null)
    {
        $this->gatewayEndpointDigitalAccessT1 = $gatewayEndpointDigitalAccessT1;
        return $this;
    }
    /**
     * Get vg224 value
     * @return RVg224|null
     */
    public function getVg224()
    {
        return $this->vg224;
    }
    /**
     * Set vg224 value
     * @param RVg224 $vg224
     * @return _return
     */
    public function setVg224(RVg224 $vg224 = null)
    {
        $this->vg224 = $vg224;
        return $this;
    }
    /**
     * Get ciscoCatalyst600024PortFXSGateway value
     * @return RCiscoCatalyst600024PortFXSGateway[]|null
     */
    public function getCiscoCatalyst600024PortFXSGateway()
    {
        return $this->ciscoCatalyst600024PortFXSGateway;
    }
    /**
     * Set ciscoCatalyst600024PortFXSGateway value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst600024PortFXSGateway[] $ciscoCatalyst600024PortFXSGateway
     * @return _return
     */
    public function setCiscoCatalyst600024PortFXSGateway(array $ciscoCatalyst600024PortFXSGateway = array())
    {
        foreach ($ciscoCatalyst600024PortFXSGateway as $returnCiscoCatalyst600024PortFXSGatewayItem) {
            // validation for constraint: itemType
            if (!$returnCiscoCatalyst600024PortFXSGatewayItem instanceof RCiscoCatalyst600024PortFXSGateway) {
                throw new \InvalidArgumentException(sprintf('The ciscoCatalyst600024PortFXSGateway property can only contain items of RCiscoCatalyst600024PortFXSGateway, "%s" given', is_object($returnCiscoCatalyst600024PortFXSGatewayItem) ? get_class($returnCiscoCatalyst600024PortFXSGatewayItem) : gettype($returnCiscoCatalyst600024PortFXSGatewayItem)), __LINE__);
            }
        }
        $this->ciscoCatalyst600024PortFXSGateway = $ciscoCatalyst600024PortFXSGateway;
        return $this;
    }
    /**
     * Add item to ciscoCatalyst600024PortFXSGateway value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst600024PortFXSGateway $item
     * @return _return
     */
    public function addToCiscoCatalyst600024PortFXSGateway(RCiscoCatalyst600024PortFXSGateway $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCiscoCatalyst600024PortFXSGateway) {
            throw new \InvalidArgumentException(sprintf('The ciscoCatalyst600024PortFXSGateway property can only contain items of RCiscoCatalyst600024PortFXSGateway, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ciscoCatalyst600024PortFXSGateway[] = $item;
        return $this;
    }
    /**
     * Get ciscoCatalyst6000E1VoIPGateway value
     * @return RCiscoCatalyst6000E1VoIPGateway[]|null
     */
    public function getCiscoCatalyst6000E1VoIPGateway()
    {
        return $this->ciscoCatalyst6000E1VoIPGateway;
    }
    /**
     * Set ciscoCatalyst6000E1VoIPGateway value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000E1VoIPGateway[] $ciscoCatalyst6000E1VoIPGateway
     * @return _return
     */
    public function setCiscoCatalyst6000E1VoIPGateway(array $ciscoCatalyst6000E1VoIPGateway = array())
    {
        foreach ($ciscoCatalyst6000E1VoIPGateway as $returnCiscoCatalyst6000E1VoIPGatewayItem) {
            // validation for constraint: itemType
            if (!$returnCiscoCatalyst6000E1VoIPGatewayItem instanceof RCiscoCatalyst6000E1VoIPGateway) {
                throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000E1VoIPGateway property can only contain items of RCiscoCatalyst6000E1VoIPGateway, "%s" given', is_object($returnCiscoCatalyst6000E1VoIPGatewayItem) ? get_class($returnCiscoCatalyst6000E1VoIPGatewayItem) : gettype($returnCiscoCatalyst6000E1VoIPGatewayItem)), __LINE__);
            }
        }
        $this->ciscoCatalyst6000E1VoIPGateway = $ciscoCatalyst6000E1VoIPGateway;
        return $this;
    }
    /**
     * Add item to ciscoCatalyst6000E1VoIPGateway value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000E1VoIPGateway $item
     * @return _return
     */
    public function addToCiscoCatalyst6000E1VoIPGateway(RCiscoCatalyst6000E1VoIPGateway $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCiscoCatalyst6000E1VoIPGateway) {
            throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000E1VoIPGateway property can only contain items of RCiscoCatalyst6000E1VoIPGateway, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ciscoCatalyst6000E1VoIPGateway[] = $item;
        return $this;
    }
    /**
     * Get ciscoCatalyst6000T1VoIPGatewayPri value
     * @return RCiscoCatalyst6000T1VoIPGatewayPri[]|null
     */
    public function getCiscoCatalyst6000T1VoIPGatewayPri()
    {
        return $this->ciscoCatalyst6000T1VoIPGatewayPri;
    }
    /**
     * Set ciscoCatalyst6000T1VoIPGatewayPri value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000T1VoIPGatewayPri[] $ciscoCatalyst6000T1VoIPGatewayPri
     * @return _return
     */
    public function setCiscoCatalyst6000T1VoIPGatewayPri(array $ciscoCatalyst6000T1VoIPGatewayPri = array())
    {
        foreach ($ciscoCatalyst6000T1VoIPGatewayPri as $returnCiscoCatalyst6000T1VoIPGatewayPriItem) {
            // validation for constraint: itemType
            if (!$returnCiscoCatalyst6000T1VoIPGatewayPriItem instanceof RCiscoCatalyst6000T1VoIPGatewayPri) {
                throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000T1VoIPGatewayPri property can only contain items of RCiscoCatalyst6000T1VoIPGatewayPri, "%s" given', is_object($returnCiscoCatalyst6000T1VoIPGatewayPriItem) ? get_class($returnCiscoCatalyst6000T1VoIPGatewayPriItem) : gettype($returnCiscoCatalyst6000T1VoIPGatewayPriItem)), __LINE__);
            }
        }
        $this->ciscoCatalyst6000T1VoIPGatewayPri = $ciscoCatalyst6000T1VoIPGatewayPri;
        return $this;
    }
    /**
     * Add item to ciscoCatalyst6000T1VoIPGatewayPri value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000T1VoIPGatewayPri $item
     * @return _return
     */
    public function addToCiscoCatalyst6000T1VoIPGatewayPri(RCiscoCatalyst6000T1VoIPGatewayPri $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCiscoCatalyst6000T1VoIPGatewayPri) {
            throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000T1VoIPGatewayPri property can only contain items of RCiscoCatalyst6000T1VoIPGatewayPri, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ciscoCatalyst6000T1VoIPGatewayPri[] = $item;
        return $this;
    }
    /**
     * Get ciscoCatalyst6000T1VoIPGatewayT1 value
     * @return RCiscoCatalyst6000T1VoIPGatewayT1[]|null
     */
    public function getCiscoCatalyst6000T1VoIPGatewayT1()
    {
        return $this->ciscoCatalyst6000T1VoIPGatewayT1;
    }
    /**
     * Set ciscoCatalyst6000T1VoIPGatewayT1 value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000T1VoIPGatewayT1[] $ciscoCatalyst6000T1VoIPGatewayT1
     * @return _return
     */
    public function setCiscoCatalyst6000T1VoIPGatewayT1(array $ciscoCatalyst6000T1VoIPGatewayT1 = array())
    {
        foreach ($ciscoCatalyst6000T1VoIPGatewayT1 as $returnCiscoCatalyst6000T1VoIPGatewayT1Item) {
            // validation for constraint: itemType
            if (!$returnCiscoCatalyst6000T1VoIPGatewayT1Item instanceof RCiscoCatalyst6000T1VoIPGatewayT1) {
                throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000T1VoIPGatewayT1 property can only contain items of RCiscoCatalyst6000T1VoIPGatewayT1, "%s" given', is_object($returnCiscoCatalyst6000T1VoIPGatewayT1Item) ? get_class($returnCiscoCatalyst6000T1VoIPGatewayT1Item) : gettype($returnCiscoCatalyst6000T1VoIPGatewayT1Item)), __LINE__);
            }
        }
        $this->ciscoCatalyst6000T1VoIPGatewayT1 = $ciscoCatalyst6000T1VoIPGatewayT1;
        return $this;
    }
    /**
     * Add item to ciscoCatalyst6000T1VoIPGatewayT1 value
     * @throws \InvalidArgumentException
     * @param RCiscoCatalyst6000T1VoIPGatewayT1 $item
     * @return _return
     */
    public function addToCiscoCatalyst6000T1VoIPGatewayT1(RCiscoCatalyst6000T1VoIPGatewayT1 $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCiscoCatalyst6000T1VoIPGatewayT1) {
            throw new \InvalidArgumentException(sprintf('The ciscoCatalyst6000T1VoIPGatewayT1 property can only contain items of RCiscoCatalyst6000T1VoIPGatewayT1, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ciscoCatalyst6000T1VoIPGatewayT1[] = $item;
        return $this;
    }
    /**
     * Get callPickupGroup value
     * @return RCallPickupGroup[]|null
     */
    public function getCallPickupGroup()
    {
        return $this->callPickupGroup;
    }
    /**
     * Set callPickupGroup value
     * @throws \InvalidArgumentException
     * @param RCallPickupGroup[] $callPickupGroup
     * @return _return
     */
    public function setCallPickupGroup(array $callPickupGroup = array())
    {
        foreach ($callPickupGroup as $returnCallPickupGroupItem) {
            // validation for constraint: itemType
            if (!$returnCallPickupGroupItem instanceof RCallPickupGroup) {
                throw new \InvalidArgumentException(sprintf('The callPickupGroup property can only contain items of RCallPickupGroup, "%s" given', is_object($returnCallPickupGroupItem) ? get_class($returnCallPickupGroupItem) : gettype($returnCallPickupGroupItem)), __LINE__);
            }
        }
        $this->callPickupGroup = $callPickupGroup;
        return $this;
    }
    /**
     * Add item to callPickupGroup value
     * @throws \InvalidArgumentException
     * @param RCallPickupGroup $item
     * @return _return
     */
    public function addToCallPickupGroup(RCallPickupGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCallPickupGroup) {
            throw new \InvalidArgumentException(sprintf('The callPickupGroup property can only contain items of RCallPickupGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->callPickupGroup[] = $item;
        return $this;
    }
    /**
     * Get routePlan value
     * @return LRoutePlan[]|null
     */
    public function getRoutePlan()
    {
        return $this->routePlan;
    }
    /**
     * Set routePlan value
     * @throws \InvalidArgumentException
     * @param LRoutePlan[] $routePlan
     * @return _return
     */
    public function setRoutePlan(array $routePlan = array())
    {
        foreach ($routePlan as $returnRoutePlanItem) {
            // validation for constraint: itemType
            if (!$returnRoutePlanItem instanceof LRoutePlan) {
                throw new \InvalidArgumentException(sprintf('The routePlan property can only contain items of LRoutePlan, "%s" given', is_object($returnRoutePlanItem) ? get_class($returnRoutePlanItem) : gettype($returnRoutePlanItem)), __LINE__);
            }
        }
        $this->routePlan = $routePlan;
        return $this;
    }
    /**
     * Add item to routePlan value
     * @throws \InvalidArgumentException
     * @param LRoutePlan $item
     * @return _return
     */
    public function addToRoutePlan(LRoutePlan $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof LRoutePlan) {
            throw new \InvalidArgumentException(sprintf('The routePlan property can only contain items of LRoutePlan, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->routePlan[] = $item;
        return $this;
    }
    /**
     * Get geoLocationPolicy value
     * @return RGeoLocationPolicy[]|null
     */
    public function getGeoLocationPolicy()
    {
        return $this->geoLocationPolicy;
    }
    /**
     * Set geoLocationPolicy value
     * @throws \InvalidArgumentException
     * @param RGeoLocationPolicy[] $geoLocationPolicy
     * @return _return
     */
    public function setGeoLocationPolicy(array $geoLocationPolicy = array())
    {
        foreach ($geoLocationPolicy as $returnGeoLocationPolicyItem) {
            // validation for constraint: itemType
            if (!$returnGeoLocationPolicyItem instanceof RGeoLocationPolicy) {
                throw new \InvalidArgumentException(sprintf('The geoLocationPolicy property can only contain items of RGeoLocationPolicy, "%s" given', is_object($returnGeoLocationPolicyItem) ? get_class($returnGeoLocationPolicyItem) : gettype($returnGeoLocationPolicyItem)), __LINE__);
            }
        }
        $this->geoLocationPolicy = $geoLocationPolicy;
        return $this;
    }
    /**
     * Add item to geoLocationPolicy value
     * @throws \InvalidArgumentException
     * @param RGeoLocationPolicy $item
     * @return _return
     */
    public function addToGeoLocationPolicy(RGeoLocationPolicy $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RGeoLocationPolicy) {
            throw new \InvalidArgumentException(sprintf('The geoLocationPolicy property can only contain items of RGeoLocationPolicy, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->geoLocationPolicy[] = $item;
        return $this;
    }
    /**
     * Get sipTrunk value
     * @return RSipTrunk[]|null
     */
    public function getSipTrunk()
    {
        return $this->sipTrunk;
    }
    /**
     * Set sipTrunk value
     * @throws \InvalidArgumentException
     * @param RSipTrunk[] $sipTrunk
     * @return _return
     */
    public function setSipTrunk(array $sipTrunk = array())
    {
        foreach ($sipTrunk as $returnSipTrunkItem) {
            // validation for constraint: itemType
            if (!$returnSipTrunkItem instanceof RSipTrunk) {
                throw new \InvalidArgumentException(sprintf('The sipTrunk property can only contain items of RSipTrunk, "%s" given', is_object($returnSipTrunkItem) ? get_class($returnSipTrunkItem) : gettype($returnSipTrunkItem)), __LINE__);
            }
        }
        $this->sipTrunk = $sipTrunk;
        return $this;
    }
    /**
     * Add item to sipTrunk value
     * @throws \InvalidArgumentException
     * @param RSipTrunk $item
     * @return _return
     */
    public function addToSipTrunk(RSipTrunk $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSipTrunk) {
            throw new \InvalidArgumentException(sprintf('The sipTrunk property can only contain items of RSipTrunk, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sipTrunk[] = $item;
        return $this;
    }
    /**
     * Get calledPartyTransformationPattern value
     * @return RCalledPartyTransformationPattern[]|null
     */
    public function getCalledPartyTransformationPattern()
    {
        return $this->calledPartyTransformationPattern;
    }
    /**
     * Set calledPartyTransformationPattern value
     * @throws \InvalidArgumentException
     * @param RCalledPartyTransformationPattern[] $calledPartyTransformationPattern
     * @return _return
     */
    public function setCalledPartyTransformationPattern(array $calledPartyTransformationPattern = array())
    {
        foreach ($calledPartyTransformationPattern as $returnCalledPartyTransformationPatternItem) {
            // validation for constraint: itemType
            if (!$returnCalledPartyTransformationPatternItem instanceof RCalledPartyTransformationPattern) {
                throw new \InvalidArgumentException(sprintf('The calledPartyTransformationPattern property can only contain items of RCalledPartyTransformationPattern, "%s" given', is_object($returnCalledPartyTransformationPatternItem) ? get_class($returnCalledPartyTransformationPatternItem) : gettype($returnCalledPartyTransformationPatternItem)), __LINE__);
            }
        }
        $this->calledPartyTransformationPattern = $calledPartyTransformationPattern;
        return $this;
    }
    /**
     * Add item to calledPartyTransformationPattern value
     * @throws \InvalidArgumentException
     * @param RCalledPartyTransformationPattern $item
     * @return _return
     */
    public function addToCalledPartyTransformationPattern(RCalledPartyTransformationPattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCalledPartyTransformationPattern) {
            throw new \InvalidArgumentException(sprintf('The calledPartyTransformationPattern property can only contain items of RCalledPartyTransformationPattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->calledPartyTransformationPattern[] = $item;
        return $this;
    }
    /**
     * Get externalCallControlProfile value
     * @return RExternalCallControlProfile[]|null
     */
    public function getExternalCallControlProfile()
    {
        return $this->externalCallControlProfile;
    }
    /**
     * Set externalCallControlProfile value
     * @throws \InvalidArgumentException
     * @param RExternalCallControlProfile[] $externalCallControlProfile
     * @return _return
     */
    public function setExternalCallControlProfile(array $externalCallControlProfile = array())
    {
        foreach ($externalCallControlProfile as $returnExternalCallControlProfileItem) {
            // validation for constraint: itemType
            if (!$returnExternalCallControlProfileItem instanceof RExternalCallControlProfile) {
                throw new \InvalidArgumentException(sprintf('The externalCallControlProfile property can only contain items of RExternalCallControlProfile, "%s" given', is_object($returnExternalCallControlProfileItem) ? get_class($returnExternalCallControlProfileItem) : gettype($returnExternalCallControlProfileItem)), __LINE__);
            }
        }
        $this->externalCallControlProfile = $externalCallControlProfile;
        return $this;
    }
    /**
     * Add item to externalCallControlProfile value
     * @throws \InvalidArgumentException
     * @param RExternalCallControlProfile $item
     * @return _return
     */
    public function addToExternalCallControlProfile(RExternalCallControlProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RExternalCallControlProfile) {
            throw new \InvalidArgumentException(sprintf('The externalCallControlProfile property can only contain items of RExternalCallControlProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->externalCallControlProfile[] = $item;
        return $this;
    }
    /**
     * Get safSecurityProfile value
     * @return RSafSecurityProfile[]|null
     */
    public function getSafSecurityProfile()
    {
        return $this->safSecurityProfile;
    }
    /**
     * Set safSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RSafSecurityProfile[] $safSecurityProfile
     * @return _return
     */
    public function setSafSecurityProfile(array $safSecurityProfile = array())
    {
        foreach ($safSecurityProfile as $returnSafSecurityProfileItem) {
            // validation for constraint: itemType
            if (!$returnSafSecurityProfileItem instanceof RSafSecurityProfile) {
                throw new \InvalidArgumentException(sprintf('The safSecurityProfile property can only contain items of RSafSecurityProfile, "%s" given', is_object($returnSafSecurityProfileItem) ? get_class($returnSafSecurityProfileItem) : gettype($returnSafSecurityProfileItem)), __LINE__);
            }
        }
        $this->safSecurityProfile = $safSecurityProfile;
        return $this;
    }
    /**
     * Add item to safSecurityProfile value
     * @throws \InvalidArgumentException
     * @param RSafSecurityProfile $item
     * @return _return
     */
    public function addToSafSecurityProfile(RSafSecurityProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSafSecurityProfile) {
            throw new \InvalidArgumentException(sprintf('The safSecurityProfile property can only contain items of RSafSecurityProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->safSecurityProfile[] = $item;
        return $this;
    }
    /**
     * Get safForwarder value
     * @return RSafForwarder[]|null
     */
    public function getSafForwarder()
    {
        return $this->safForwarder;
    }
    /**
     * Set safForwarder value
     * @throws \InvalidArgumentException
     * @param RSafForwarder[] $safForwarder
     * @return _return
     */
    public function setSafForwarder(array $safForwarder = array())
    {
        foreach ($safForwarder as $returnSafForwarderItem) {
            // validation for constraint: itemType
            if (!$returnSafForwarderItem instanceof RSafForwarder) {
                throw new \InvalidArgumentException(sprintf('The safForwarder property can only contain items of RSafForwarder, "%s" given', is_object($returnSafForwarderItem) ? get_class($returnSafForwarderItem) : gettype($returnSafForwarderItem)), __LINE__);
            }
        }
        $this->safForwarder = $safForwarder;
        return $this;
    }
    /**
     * Add item to safForwarder value
     * @throws \InvalidArgumentException
     * @param RSafForwarder $item
     * @return _return
     */
    public function addToSafForwarder(RSafForwarder $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSafForwarder) {
            throw new \InvalidArgumentException(sprintf('The safForwarder property can only contain items of RSafForwarder, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->safForwarder[] = $item;
        return $this;
    }
    /**
     * Get ccdHostedDN value
     * @return RCcdHostedDN[]|null
     */
    public function getCcdHostedDN()
    {
        return $this->ccdHostedDN;
    }
    /**
     * Set ccdHostedDN value
     * @throws \InvalidArgumentException
     * @param RCcdHostedDN[] $ccdHostedDN
     * @return _return
     */
    public function setCcdHostedDN(array $ccdHostedDN = array())
    {
        foreach ($ccdHostedDN as $returnCcdHostedDNItem) {
            // validation for constraint: itemType
            if (!$returnCcdHostedDNItem instanceof RCcdHostedDN) {
                throw new \InvalidArgumentException(sprintf('The ccdHostedDN property can only contain items of RCcdHostedDN, "%s" given', is_object($returnCcdHostedDNItem) ? get_class($returnCcdHostedDNItem) : gettype($returnCcdHostedDNItem)), __LINE__);
            }
        }
        $this->ccdHostedDN = $ccdHostedDN;
        return $this;
    }
    /**
     * Add item to ccdHostedDN value
     * @throws \InvalidArgumentException
     * @param RCcdHostedDN $item
     * @return _return
     */
    public function addToCcdHostedDN(RCcdHostedDN $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCcdHostedDN) {
            throw new \InvalidArgumentException(sprintf('The ccdHostedDN property can only contain items of RCcdHostedDN, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ccdHostedDN[] = $item;
        return $this;
    }
    /**
     * Get ccdHostedDNGroup value
     * @return RCcdHostedDNGroup[]|null
     */
    public function getCcdHostedDNGroup()
    {
        return $this->ccdHostedDNGroup;
    }
    /**
     * Set ccdHostedDNGroup value
     * @throws \InvalidArgumentException
     * @param RCcdHostedDNGroup[] $ccdHostedDNGroup
     * @return _return
     */
    public function setCcdHostedDNGroup(array $ccdHostedDNGroup = array())
    {
        foreach ($ccdHostedDNGroup as $returnCcdHostedDNGroupItem) {
            // validation for constraint: itemType
            if (!$returnCcdHostedDNGroupItem instanceof RCcdHostedDNGroup) {
                throw new \InvalidArgumentException(sprintf('The ccdHostedDNGroup property can only contain items of RCcdHostedDNGroup, "%s" given', is_object($returnCcdHostedDNGroupItem) ? get_class($returnCcdHostedDNGroupItem) : gettype($returnCcdHostedDNGroupItem)), __LINE__);
            }
        }
        $this->ccdHostedDNGroup = $ccdHostedDNGroup;
        return $this;
    }
    /**
     * Add item to ccdHostedDNGroup value
     * @throws \InvalidArgumentException
     * @param RCcdHostedDNGroup $item
     * @return _return
     */
    public function addToCcdHostedDNGroup(RCcdHostedDNGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCcdHostedDNGroup) {
            throw new \InvalidArgumentException(sprintf('The ccdHostedDNGroup property can only contain items of RCcdHostedDNGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ccdHostedDNGroup[] = $item;
        return $this;
    }
    /**
     * Get ccdRequestingService value
     * @return RCcdRequestingService|null
     */
    public function getCcdRequestingService()
    {
        return $this->ccdRequestingService;
    }
    /**
     * Set ccdRequestingService value
     * @param RCcdRequestingService $ccdRequestingService
     * @return _return
     */
    public function setCcdRequestingService(RCcdRequestingService $ccdRequestingService = null)
    {
        $this->ccdRequestingService = $ccdRequestingService;
        return $this;
    }
    /**
     * Get interClusterServiceProfile value
     * @return RInterClusterServiceProfile|null
     */
    public function getInterClusterServiceProfile()
    {
        return $this->interClusterServiceProfile;
    }
    /**
     * Set interClusterServiceProfile value
     * @param RInterClusterServiceProfile $interClusterServiceProfile
     * @return _return
     */
    public function setInterClusterServiceProfile(RInterClusterServiceProfile $interClusterServiceProfile = null)
    {
        $this->interClusterServiceProfile = $interClusterServiceProfile;
        return $this;
    }
    /**
     * Get remoteCluster value
     * @return RRemoteCluster[]|null
     */
    public function getRemoteCluster()
    {
        return $this->remoteCluster;
    }
    /**
     * Set remoteCluster value
     * @throws \InvalidArgumentException
     * @param RRemoteCluster[] $remoteCluster
     * @return _return
     */
    public function setRemoteCluster(array $remoteCluster = array())
    {
        foreach ($remoteCluster as $returnRemoteClusterItem) {
            // validation for constraint: itemType
            if (!$returnRemoteClusterItem instanceof RRemoteCluster) {
                throw new \InvalidArgumentException(sprintf('The remoteCluster property can only contain items of RRemoteCluster, "%s" given', is_object($returnRemoteClusterItem) ? get_class($returnRemoteClusterItem) : gettype($returnRemoteClusterItem)), __LINE__);
            }
        }
        $this->remoteCluster = $remoteCluster;
        return $this;
    }
    /**
     * Add item to remoteCluster value
     * @throws \InvalidArgumentException
     * @param RRemoteCluster $item
     * @return _return
     */
    public function addToRemoteCluster(RRemoteCluster $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RRemoteCluster) {
            throw new \InvalidArgumentException(sprintf('The remoteCluster property can only contain items of RRemoteCluster, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->remoteCluster[] = $item;
        return $this;
    }
    /**
     * Get ccdAdvertisingService value
     * @return RCcdAdvertisingService[]|null
     */
    public function getCcdAdvertisingService()
    {
        return $this->ccdAdvertisingService;
    }
    /**
     * Set ccdAdvertisingService value
     * @throws \InvalidArgumentException
     * @param RCcdAdvertisingService[] $ccdAdvertisingService
     * @return _return
     */
    public function setCcdAdvertisingService(array $ccdAdvertisingService = array())
    {
        foreach ($ccdAdvertisingService as $returnCcdAdvertisingServiceItem) {
            // validation for constraint: itemType
            if (!$returnCcdAdvertisingServiceItem instanceof RCcdAdvertisingService) {
                throw new \InvalidArgumentException(sprintf('The ccdAdvertisingService property can only contain items of RCcdAdvertisingService, "%s" given', is_object($returnCcdAdvertisingServiceItem) ? get_class($returnCcdAdvertisingServiceItem) : gettype($returnCcdAdvertisingServiceItem)), __LINE__);
            }
        }
        $this->ccdAdvertisingService = $ccdAdvertisingService;
        return $this;
    }
    /**
     * Add item to ccdAdvertisingService value
     * @throws \InvalidArgumentException
     * @param RCcdAdvertisingService $item
     * @return _return
     */
    public function addToCcdAdvertisingService(RCcdAdvertisingService $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCcdAdvertisingService) {
            throw new \InvalidArgumentException(sprintf('The ccdAdvertisingService property can only contain items of RCcdAdvertisingService, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ccdAdvertisingService[] = $item;
        return $this;
    }
    /**
     * Get ldapDirectory value
     * @return RLdapDirectory[]|null
     */
    public function getLdapDirectory()
    {
        return $this->ldapDirectory;
    }
    /**
     * Set ldapDirectory value
     * @throws \InvalidArgumentException
     * @param RLdapDirectory[] $ldapDirectory
     * @return _return
     */
    public function setLdapDirectory(array $ldapDirectory = array())
    {
        foreach ($ldapDirectory as $returnLdapDirectoryItem) {
            // validation for constraint: itemType
            if (!$returnLdapDirectoryItem instanceof RLdapDirectory) {
                throw new \InvalidArgumentException(sprintf('The ldapDirectory property can only contain items of RLdapDirectory, "%s" given', is_object($returnLdapDirectoryItem) ? get_class($returnLdapDirectoryItem) : gettype($returnLdapDirectoryItem)), __LINE__);
            }
        }
        $this->ldapDirectory = $ldapDirectory;
        return $this;
    }
    /**
     * Add item to ldapDirectory value
     * @throws \InvalidArgumentException
     * @param RLdapDirectory $item
     * @return _return
     */
    public function addToLdapDirectory(RLdapDirectory $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLdapDirectory) {
            throw new \InvalidArgumentException(sprintf('The ldapDirectory property can only contain items of RLdapDirectory, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ldapDirectory[] = $item;
        return $this;
    }
    /**
     * Get emccFeatureConfig value
     * @return REmccFeatureConfig|null
     */
    public function getEmccFeatureConfig()
    {
        return $this->emccFeatureConfig;
    }
    /**
     * Set emccFeatureConfig value
     * @param REmccFeatureConfig $emccFeatureConfig
     * @return _return
     */
    public function setEmccFeatureConfig(REmccFeatureConfig $emccFeatureConfig = null)
    {
        $this->emccFeatureConfig = $emccFeatureConfig;
        return $this;
    }
    /**
     * Get safCcdPurgeBlockLearnedRoutes value
     * @return RSafCcdPurgeBlockLearnedRoutes[]|null
     */
    public function getSafCcdPurgeBlockLearnedRoutes()
    {
        return $this->safCcdPurgeBlockLearnedRoutes;
    }
    /**
     * Set safCcdPurgeBlockLearnedRoutes value
     * @throws \InvalidArgumentException
     * @param RSafCcdPurgeBlockLearnedRoutes[] $safCcdPurgeBlockLearnedRoutes
     * @return _return
     */
    public function setSafCcdPurgeBlockLearnedRoutes(array $safCcdPurgeBlockLearnedRoutes = array())
    {
        foreach ($safCcdPurgeBlockLearnedRoutes as $returnSafCcdPurgeBlockLearnedRoutesItem) {
            // validation for constraint: itemType
            if (!$returnSafCcdPurgeBlockLearnedRoutesItem instanceof RSafCcdPurgeBlockLearnedRoutes) {
                throw new \InvalidArgumentException(sprintf('The safCcdPurgeBlockLearnedRoutes property can only contain items of RSafCcdPurgeBlockLearnedRoutes, "%s" given', is_object($returnSafCcdPurgeBlockLearnedRoutesItem) ? get_class($returnSafCcdPurgeBlockLearnedRoutesItem) : gettype($returnSafCcdPurgeBlockLearnedRoutesItem)), __LINE__);
            }
        }
        $this->safCcdPurgeBlockLearnedRoutes = $safCcdPurgeBlockLearnedRoutes;
        return $this;
    }
    /**
     * Add item to safCcdPurgeBlockLearnedRoutes value
     * @throws \InvalidArgumentException
     * @param RSafCcdPurgeBlockLearnedRoutes $item
     * @return _return
     */
    public function addToSafCcdPurgeBlockLearnedRoutes(RSafCcdPurgeBlockLearnedRoutes $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSafCcdPurgeBlockLearnedRoutes) {
            throw new \InvalidArgumentException(sprintf('The safCcdPurgeBlockLearnedRoutes property can only contain items of RSafCcdPurgeBlockLearnedRoutes, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->safCcdPurgeBlockLearnedRoutes[] = $item;
        return $this;
    }
    /**
     * Get vpnGateway value
     * @return RVpnGateway[]|null
     */
    public function getVpnGateway()
    {
        return $this->vpnGateway;
    }
    /**
     * Set vpnGateway value
     * @throws \InvalidArgumentException
     * @param RVpnGateway[] $vpnGateway
     * @return _return
     */
    public function setVpnGateway(array $vpnGateway = array())
    {
        foreach ($vpnGateway as $returnVpnGatewayItem) {
            // validation for constraint: itemType
            if (!$returnVpnGatewayItem instanceof RVpnGateway) {
                throw new \InvalidArgumentException(sprintf('The vpnGateway property can only contain items of RVpnGateway, "%s" given', is_object($returnVpnGatewayItem) ? get_class($returnVpnGatewayItem) : gettype($returnVpnGatewayItem)), __LINE__);
            }
        }
        $this->vpnGateway = $vpnGateway;
        return $this;
    }
    /**
     * Add item to vpnGateway value
     * @throws \InvalidArgumentException
     * @param RVpnGateway $item
     * @return _return
     */
    public function addToVpnGateway(RVpnGateway $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVpnGateway) {
            throw new \InvalidArgumentException(sprintf('The vpnGateway property can only contain items of RVpnGateway, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->vpnGateway[] = $item;
        return $this;
    }
    /**
     * Get vpnGroup value
     * @return RVpnGroup[]|null
     */
    public function getVpnGroup()
    {
        return $this->vpnGroup;
    }
    /**
     * Set vpnGroup value
     * @throws \InvalidArgumentException
     * @param RVpnGroup[] $vpnGroup
     * @return _return
     */
    public function setVpnGroup(array $vpnGroup = array())
    {
        foreach ($vpnGroup as $returnVpnGroupItem) {
            // validation for constraint: itemType
            if (!$returnVpnGroupItem instanceof RVpnGroup) {
                throw new \InvalidArgumentException(sprintf('The vpnGroup property can only contain items of RVpnGroup, "%s" given', is_object($returnVpnGroupItem) ? get_class($returnVpnGroupItem) : gettype($returnVpnGroupItem)), __LINE__);
            }
        }
        $this->vpnGroup = $vpnGroup;
        return $this;
    }
    /**
     * Add item to vpnGroup value
     * @throws \InvalidArgumentException
     * @param RVpnGroup $item
     * @return _return
     */
    public function addToVpnGroup(RVpnGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVpnGroup) {
            throw new \InvalidArgumentException(sprintf('The vpnGroup property can only contain items of RVpnGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->vpnGroup[] = $item;
        return $this;
    }
    /**
     * Get vpnProfile value
     * @return RVpnProfile[]|null
     */
    public function getVpnProfile()
    {
        return $this->vpnProfile;
    }
    /**
     * Set vpnProfile value
     * @throws \InvalidArgumentException
     * @param RVpnProfile[] $vpnProfile
     * @return _return
     */
    public function setVpnProfile(array $vpnProfile = array())
    {
        foreach ($vpnProfile as $returnVpnProfileItem) {
            // validation for constraint: itemType
            if (!$returnVpnProfileItem instanceof RVpnProfile) {
                throw new \InvalidArgumentException(sprintf('The vpnProfile property can only contain items of RVpnProfile, "%s" given', is_object($returnVpnProfileItem) ? get_class($returnVpnProfileItem) : gettype($returnVpnProfileItem)), __LINE__);
            }
        }
        $this->vpnProfile = $vpnProfile;
        return $this;
    }
    /**
     * Add item to vpnProfile value
     * @throws \InvalidArgumentException
     * @param RVpnProfile $item
     * @return _return
     */
    public function addToVpnProfile(RVpnProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RVpnProfile) {
            throw new \InvalidArgumentException(sprintf('The vpnProfile property can only contain items of RVpnProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->vpnProfile[] = $item;
        return $this;
    }
    /**
     * Get imeServer value
     * @return RImeServer[]|null
     */
    public function getImeServer()
    {
        return $this->imeServer;
    }
    /**
     * Set imeServer value
     * @throws \InvalidArgumentException
     * @param RImeServer[] $imeServer
     * @return _return
     */
    public function setImeServer(array $imeServer = array())
    {
        foreach ($imeServer as $returnImeServerItem) {
            // validation for constraint: itemType
            if (!$returnImeServerItem instanceof RImeServer) {
                throw new \InvalidArgumentException(sprintf('The imeServer property can only contain items of RImeServer, "%s" given', is_object($returnImeServerItem) ? get_class($returnImeServerItem) : gettype($returnImeServerItem)), __LINE__);
            }
        }
        $this->imeServer = $imeServer;
        return $this;
    }
    /**
     * Add item to imeServer value
     * @throws \InvalidArgumentException
     * @param RImeServer $item
     * @return _return
     */
    public function addToImeServer(RImeServer $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeServer) {
            throw new \InvalidArgumentException(sprintf('The imeServer property can only contain items of RImeServer, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeServer[] = $item;
        return $this;
    }
    /**
     * Get imeRouteFilterGroup value
     * @return RImeRouteFilterGroup[]|null
     */
    public function getImeRouteFilterGroup()
    {
        return $this->imeRouteFilterGroup;
    }
    /**
     * Set imeRouteFilterGroup value
     * @throws \InvalidArgumentException
     * @param RImeRouteFilterGroup[] $imeRouteFilterGroup
     * @return _return
     */
    public function setImeRouteFilterGroup(array $imeRouteFilterGroup = array())
    {
        foreach ($imeRouteFilterGroup as $returnImeRouteFilterGroupItem) {
            // validation for constraint: itemType
            if (!$returnImeRouteFilterGroupItem instanceof RImeRouteFilterGroup) {
                throw new \InvalidArgumentException(sprintf('The imeRouteFilterGroup property can only contain items of RImeRouteFilterGroup, "%s" given', is_object($returnImeRouteFilterGroupItem) ? get_class($returnImeRouteFilterGroupItem) : gettype($returnImeRouteFilterGroupItem)), __LINE__);
            }
        }
        $this->imeRouteFilterGroup = $imeRouteFilterGroup;
        return $this;
    }
    /**
     * Add item to imeRouteFilterGroup value
     * @throws \InvalidArgumentException
     * @param RImeRouteFilterGroup $item
     * @return _return
     */
    public function addToImeRouteFilterGroup(RImeRouteFilterGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeRouteFilterGroup) {
            throw new \InvalidArgumentException(sprintf('The imeRouteFilterGroup property can only contain items of RImeRouteFilterGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeRouteFilterGroup[] = $item;
        return $this;
    }
    /**
     * Get imeRouteFilterElement value
     * @return RImeRouteFilterElement[]|null
     */
    public function getImeRouteFilterElement()
    {
        return $this->imeRouteFilterElement;
    }
    /**
     * Set imeRouteFilterElement value
     * @throws \InvalidArgumentException
     * @param RImeRouteFilterElement[] $imeRouteFilterElement
     * @return _return
     */
    public function setImeRouteFilterElement(array $imeRouteFilterElement = array())
    {
        foreach ($imeRouteFilterElement as $returnImeRouteFilterElementItem) {
            // validation for constraint: itemType
            if (!$returnImeRouteFilterElementItem instanceof RImeRouteFilterElement) {
                throw new \InvalidArgumentException(sprintf('The imeRouteFilterElement property can only contain items of RImeRouteFilterElement, "%s" given', is_object($returnImeRouteFilterElementItem) ? get_class($returnImeRouteFilterElementItem) : gettype($returnImeRouteFilterElementItem)), __LINE__);
            }
        }
        $this->imeRouteFilterElement = $imeRouteFilterElement;
        return $this;
    }
    /**
     * Add item to imeRouteFilterElement value
     * @throws \InvalidArgumentException
     * @param RImeRouteFilterElement $item
     * @return _return
     */
    public function addToImeRouteFilterElement(RImeRouteFilterElement $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeRouteFilterElement) {
            throw new \InvalidArgumentException(sprintf('The imeRouteFilterElement property can only contain items of RImeRouteFilterElement, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeRouteFilterElement[] = $item;
        return $this;
    }
    /**
     * Get imeClient value
     * @return RImeClient[]|null
     */
    public function getImeClient()
    {
        return $this->imeClient;
    }
    /**
     * Set imeClient value
     * @throws \InvalidArgumentException
     * @param RImeClient[] $imeClient
     * @return _return
     */
    public function setImeClient(array $imeClient = array())
    {
        foreach ($imeClient as $returnImeClientItem) {
            // validation for constraint: itemType
            if (!$returnImeClientItem instanceof RImeClient) {
                throw new \InvalidArgumentException(sprintf('The imeClient property can only contain items of RImeClient, "%s" given', is_object($returnImeClientItem) ? get_class($returnImeClientItem) : gettype($returnImeClientItem)), __LINE__);
            }
        }
        $this->imeClient = $imeClient;
        return $this;
    }
    /**
     * Add item to imeClient value
     * @throws \InvalidArgumentException
     * @param RImeClient $item
     * @return _return
     */
    public function addToImeClient(RImeClient $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeClient) {
            throw new \InvalidArgumentException(sprintf('The imeClient property can only contain items of RImeClient, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeClient[] = $item;
        return $this;
    }
    /**
     * Get imeEnrolledPattern value
     * @return RImeEnrolledPattern[]|null
     */
    public function getImeEnrolledPattern()
    {
        return $this->imeEnrolledPattern;
    }
    /**
     * Set imeEnrolledPattern value
     * @throws \InvalidArgumentException
     * @param RImeEnrolledPattern[] $imeEnrolledPattern
     * @return _return
     */
    public function setImeEnrolledPattern(array $imeEnrolledPattern = array())
    {
        foreach ($imeEnrolledPattern as $returnImeEnrolledPatternItem) {
            // validation for constraint: itemType
            if (!$returnImeEnrolledPatternItem instanceof RImeEnrolledPattern) {
                throw new \InvalidArgumentException(sprintf('The imeEnrolledPattern property can only contain items of RImeEnrolledPattern, "%s" given', is_object($returnImeEnrolledPatternItem) ? get_class($returnImeEnrolledPatternItem) : gettype($returnImeEnrolledPatternItem)), __LINE__);
            }
        }
        $this->imeEnrolledPattern = $imeEnrolledPattern;
        return $this;
    }
    /**
     * Add item to imeEnrolledPattern value
     * @throws \InvalidArgumentException
     * @param RImeEnrolledPattern $item
     * @return _return
     */
    public function addToImeEnrolledPattern(RImeEnrolledPattern $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeEnrolledPattern) {
            throw new \InvalidArgumentException(sprintf('The imeEnrolledPattern property can only contain items of RImeEnrolledPattern, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeEnrolledPattern[] = $item;
        return $this;
    }
    /**
     * Get imeEnrolledPatternGroup value
     * @return RImeEnrolledPatternGroup[]|null
     */
    public function getImeEnrolledPatternGroup()
    {
        return $this->imeEnrolledPatternGroup;
    }
    /**
     * Set imeEnrolledPatternGroup value
     * @throws \InvalidArgumentException
     * @param RImeEnrolledPatternGroup[] $imeEnrolledPatternGroup
     * @return _return
     */
    public function setImeEnrolledPatternGroup(array $imeEnrolledPatternGroup = array())
    {
        foreach ($imeEnrolledPatternGroup as $returnImeEnrolledPatternGroupItem) {
            // validation for constraint: itemType
            if (!$returnImeEnrolledPatternGroupItem instanceof RImeEnrolledPatternGroup) {
                throw new \InvalidArgumentException(sprintf('The imeEnrolledPatternGroup property can only contain items of RImeEnrolledPatternGroup, "%s" given', is_object($returnImeEnrolledPatternGroupItem) ? get_class($returnImeEnrolledPatternGroupItem) : gettype($returnImeEnrolledPatternGroupItem)), __LINE__);
            }
        }
        $this->imeEnrolledPatternGroup = $imeEnrolledPatternGroup;
        return $this;
    }
    /**
     * Add item to imeEnrolledPatternGroup value
     * @throws \InvalidArgumentException
     * @param RImeEnrolledPatternGroup $item
     * @return _return
     */
    public function addToImeEnrolledPatternGroup(RImeEnrolledPatternGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeEnrolledPatternGroup) {
            throw new \InvalidArgumentException(sprintf('The imeEnrolledPatternGroup property can only contain items of RImeEnrolledPatternGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeEnrolledPatternGroup[] = $item;
        return $this;
    }
    /**
     * Get imeExclusionNumber value
     * @return RImeExclusionNumber[]|null
     */
    public function getImeExclusionNumber()
    {
        return $this->imeExclusionNumber;
    }
    /**
     * Set imeExclusionNumber value
     * @throws \InvalidArgumentException
     * @param RImeExclusionNumber[] $imeExclusionNumber
     * @return _return
     */
    public function setImeExclusionNumber(array $imeExclusionNumber = array())
    {
        foreach ($imeExclusionNumber as $returnImeExclusionNumberItem) {
            // validation for constraint: itemType
            if (!$returnImeExclusionNumberItem instanceof RImeExclusionNumber) {
                throw new \InvalidArgumentException(sprintf('The imeExclusionNumber property can only contain items of RImeExclusionNumber, "%s" given', is_object($returnImeExclusionNumberItem) ? get_class($returnImeExclusionNumberItem) : gettype($returnImeExclusionNumberItem)), __LINE__);
            }
        }
        $this->imeExclusionNumber = $imeExclusionNumber;
        return $this;
    }
    /**
     * Add item to imeExclusionNumber value
     * @throws \InvalidArgumentException
     * @param RImeExclusionNumber $item
     * @return _return
     */
    public function addToImeExclusionNumber(RImeExclusionNumber $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeExclusionNumber) {
            throw new \InvalidArgumentException(sprintf('The imeExclusionNumber property can only contain items of RImeExclusionNumber, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeExclusionNumber[] = $item;
        return $this;
    }
    /**
     * Get imeExclusionNumberGroup value
     * @return RImeExclusionNumberGroup[]|null
     */
    public function getImeExclusionNumberGroup()
    {
        return $this->imeExclusionNumberGroup;
    }
    /**
     * Set imeExclusionNumberGroup value
     * @throws \InvalidArgumentException
     * @param RImeExclusionNumberGroup[] $imeExclusionNumberGroup
     * @return _return
     */
    public function setImeExclusionNumberGroup(array $imeExclusionNumberGroup = array())
    {
        foreach ($imeExclusionNumberGroup as $returnImeExclusionNumberGroupItem) {
            // validation for constraint: itemType
            if (!$returnImeExclusionNumberGroupItem instanceof RImeExclusionNumberGroup) {
                throw new \InvalidArgumentException(sprintf('The imeExclusionNumberGroup property can only contain items of RImeExclusionNumberGroup, "%s" given', is_object($returnImeExclusionNumberGroupItem) ? get_class($returnImeExclusionNumberGroupItem) : gettype($returnImeExclusionNumberGroupItem)), __LINE__);
            }
        }
        $this->imeExclusionNumberGroup = $imeExclusionNumberGroup;
        return $this;
    }
    /**
     * Add item to imeExclusionNumberGroup value
     * @throws \InvalidArgumentException
     * @param RImeExclusionNumberGroup $item
     * @return _return
     */
    public function addToImeExclusionNumberGroup(RImeExclusionNumberGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeExclusionNumberGroup) {
            throw new \InvalidArgumentException(sprintf('The imeExclusionNumberGroup property can only contain items of RImeExclusionNumberGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeExclusionNumberGroup[] = $item;
        return $this;
    }
    /**
     * Get imeFirewall value
     * @return RImeFirewall[]|null
     */
    public function getImeFirewall()
    {
        return $this->imeFirewall;
    }
    /**
     * Set imeFirewall value
     * @throws \InvalidArgumentException
     * @param RImeFirewall[] $imeFirewall
     * @return _return
     */
    public function setImeFirewall(array $imeFirewall = array())
    {
        foreach ($imeFirewall as $returnImeFirewallItem) {
            // validation for constraint: itemType
            if (!$returnImeFirewallItem instanceof RImeFirewall) {
                throw new \InvalidArgumentException(sprintf('The imeFirewall property can only contain items of RImeFirewall, "%s" given', is_object($returnImeFirewallItem) ? get_class($returnImeFirewallItem) : gettype($returnImeFirewallItem)), __LINE__);
            }
        }
        $this->imeFirewall = $imeFirewall;
        return $this;
    }
    /**
     * Add item to imeFirewall value
     * @throws \InvalidArgumentException
     * @param RImeFirewall $item
     * @return _return
     */
    public function addToImeFirewall(RImeFirewall $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeFirewall) {
            throw new \InvalidArgumentException(sprintf('The imeFirewall property can only contain items of RImeFirewall, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeFirewall[] = $item;
        return $this;
    }
    /**
     * Get imeE164Transformation value
     * @return RImeE164Transformation[]|null
     */
    public function getImeE164Transformation()
    {
        return $this->imeE164Transformation;
    }
    /**
     * Set imeE164Transformation value
     * @throws \InvalidArgumentException
     * @param RImeE164Transformation[] $imeE164Transformation
     * @return _return
     */
    public function setImeE164Transformation(array $imeE164Transformation = array())
    {
        foreach ($imeE164Transformation as $returnImeE164TransformationItem) {
            // validation for constraint: itemType
            if (!$returnImeE164TransformationItem instanceof RImeE164Transformation) {
                throw new \InvalidArgumentException(sprintf('The imeE164Transformation property can only contain items of RImeE164Transformation, "%s" given', is_object($returnImeE164TransformationItem) ? get_class($returnImeE164TransformationItem) : gettype($returnImeE164TransformationItem)), __LINE__);
            }
        }
        $this->imeE164Transformation = $imeE164Transformation;
        return $this;
    }
    /**
     * Add item to imeE164Transformation value
     * @throws \InvalidArgumentException
     * @param RImeE164Transformation $item
     * @return _return
     */
    public function addToImeE164Transformation(RImeE164Transformation $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImeE164Transformation) {
            throw new \InvalidArgumentException(sprintf('The imeE164Transformation property can only contain items of RImeE164Transformation, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->imeE164Transformation[] = $item;
        return $this;
    }
    /**
     * Get transformationProfile value
     * @return RTransformationProfile[]|null
     */
    public function getTransformationProfile()
    {
        return $this->transformationProfile;
    }
    /**
     * Set transformationProfile value
     * @throws \InvalidArgumentException
     * @param RTransformationProfile[] $transformationProfile
     * @return _return
     */
    public function setTransformationProfile(array $transformationProfile = array())
    {
        foreach ($transformationProfile as $returnTransformationProfileItem) {
            // validation for constraint: itemType
            if (!$returnTransformationProfileItem instanceof RTransformationProfile) {
                throw new \InvalidArgumentException(sprintf('The transformationProfile property can only contain items of RTransformationProfile, "%s" given', is_object($returnTransformationProfileItem) ? get_class($returnTransformationProfileItem) : gettype($returnTransformationProfileItem)), __LINE__);
            }
        }
        $this->transformationProfile = $transformationProfile;
        return $this;
    }
    /**
     * Add item to transformationProfile value
     * @throws \InvalidArgumentException
     * @param RTransformationProfile $item
     * @return _return
     */
    public function addToTransformationProfile(RTransformationProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTransformationProfile) {
            throw new \InvalidArgumentException(sprintf('The transformationProfile property can only contain items of RTransformationProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->transformationProfile[] = $item;
        return $this;
    }
    /**
     * Get fallbackProfile value
     * @return RFallbackProfile[]|null
     */
    public function getFallbackProfile()
    {
        return $this->fallbackProfile;
    }
    /**
     * Set fallbackProfile value
     * @throws \InvalidArgumentException
     * @param RFallbackProfile[] $fallbackProfile
     * @return _return
     */
    public function setFallbackProfile(array $fallbackProfile = array())
    {
        foreach ($fallbackProfile as $returnFallbackProfileItem) {
            // validation for constraint: itemType
            if (!$returnFallbackProfileItem instanceof RFallbackProfile) {
                throw new \InvalidArgumentException(sprintf('The fallbackProfile property can only contain items of RFallbackProfile, "%s" given', is_object($returnFallbackProfileItem) ? get_class($returnFallbackProfileItem) : gettype($returnFallbackProfileItem)), __LINE__);
            }
        }
        $this->fallbackProfile = $fallbackProfile;
        return $this;
    }
    /**
     * Add item to fallbackProfile value
     * @throws \InvalidArgumentException
     * @param RFallbackProfile $item
     * @return _return
     */
    public function addToFallbackProfile(RFallbackProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RFallbackProfile) {
            throw new \InvalidArgumentException(sprintf('The fallbackProfile property can only contain items of RFallbackProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->fallbackProfile[] = $item;
        return $this;
    }
    /**
     * Get ldapFilter value
     * @return RLdapFilter[]|null
     */
    public function getLdapFilter()
    {
        return $this->ldapFilter;
    }
    /**
     * Set ldapFilter value
     * @throws \InvalidArgumentException
     * @param RLdapFilter[] $ldapFilter
     * @return _return
     */
    public function setLdapFilter(array $ldapFilter = array())
    {
        foreach ($ldapFilter as $returnLdapFilterItem) {
            // validation for constraint: itemType
            if (!$returnLdapFilterItem instanceof RLdapFilter) {
                throw new \InvalidArgumentException(sprintf('The ldapFilter property can only contain items of RLdapFilter, "%s" given', is_object($returnLdapFilterItem) ? get_class($returnLdapFilterItem) : gettype($returnLdapFilterItem)), __LINE__);
            }
        }
        $this->ldapFilter = $ldapFilter;
        return $this;
    }
    /**
     * Add item to ldapFilter value
     * @throws \InvalidArgumentException
     * @param RLdapFilter $item
     * @return _return
     */
    public function addToLdapFilter(RLdapFilter $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLdapFilter) {
            throw new \InvalidArgumentException(sprintf('The ldapFilter property can only contain items of RLdapFilter, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ldapFilter[] = $item;
        return $this;
    }
    /**
     * Get tvsCertificate value
     * @return RTvsCertificate[]|null
     */
    public function getTvsCertificate()
    {
        return $this->tvsCertificate;
    }
    /**
     * Set tvsCertificate value
     * @throws \InvalidArgumentException
     * @param RTvsCertificate[] $tvsCertificate
     * @return _return
     */
    public function setTvsCertificate(array $tvsCertificate = array())
    {
        foreach ($tvsCertificate as $returnTvsCertificateItem) {
            // validation for constraint: itemType
            if (!$returnTvsCertificateItem instanceof RTvsCertificate) {
                throw new \InvalidArgumentException(sprintf('The tvsCertificate property can only contain items of RTvsCertificate, "%s" given', is_object($returnTvsCertificateItem) ? get_class($returnTvsCertificateItem) : gettype($returnTvsCertificateItem)), __LINE__);
            }
        }
        $this->tvsCertificate = $tvsCertificate;
        return $this;
    }
    /**
     * Add item to tvsCertificate value
     * @throws \InvalidArgumentException
     * @param RTvsCertificate $item
     * @return _return
     */
    public function addToTvsCertificate(RTvsCertificate $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RTvsCertificate) {
            throw new \InvalidArgumentException(sprintf('The tvsCertificate property can only contain items of RTvsCertificate, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->tvsCertificate[] = $item;
        return $this;
    }
    /**
     * Get featureControlPolicy value
     * @return RFeatureControlPolicy[]|null
     */
    public function getFeatureControlPolicy()
    {
        return $this->featureControlPolicy;
    }
    /**
     * Set featureControlPolicy value
     * @throws \InvalidArgumentException
     * @param RFeatureControlPolicy[] $featureControlPolicy
     * @return _return
     */
    public function setFeatureControlPolicy(array $featureControlPolicy = array())
    {
        foreach ($featureControlPolicy as $returnFeatureControlPolicyItem) {
            // validation for constraint: itemType
            if (!$returnFeatureControlPolicyItem instanceof RFeatureControlPolicy) {
                throw new \InvalidArgumentException(sprintf('The featureControlPolicy property can only contain items of RFeatureControlPolicy, "%s" given', is_object($returnFeatureControlPolicyItem) ? get_class($returnFeatureControlPolicyItem) : gettype($returnFeatureControlPolicyItem)), __LINE__);
            }
        }
        $this->featureControlPolicy = $featureControlPolicy;
        return $this;
    }
    /**
     * Add item to featureControlPolicy value
     * @throws \InvalidArgumentException
     * @param RFeatureControlPolicy $item
     * @return _return
     */
    public function addToFeatureControlPolicy(RFeatureControlPolicy $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RFeatureControlPolicy) {
            throw new \InvalidArgumentException(sprintf('The featureControlPolicy property can only contain items of RFeatureControlPolicy, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->featureControlPolicy[] = $item;
        return $this;
    }
    /**
     * Get mobilityProfile value
     * @return RMobilityProfile[]|null
     */
    public function getMobilityProfile()
    {
        return $this->mobilityProfile;
    }
    /**
     * Set mobilityProfile value
     * @throws \InvalidArgumentException
     * @param RMobilityProfile[] $mobilityProfile
     * @return _return
     */
    public function setMobilityProfile(array $mobilityProfile = array())
    {
        foreach ($mobilityProfile as $returnMobilityProfileItem) {
            // validation for constraint: itemType
            if (!$returnMobilityProfileItem instanceof RMobilityProfile) {
                throw new \InvalidArgumentException(sprintf('The mobilityProfile property can only contain items of RMobilityProfile, "%s" given', is_object($returnMobilityProfileItem) ? get_class($returnMobilityProfileItem) : gettype($returnMobilityProfileItem)), __LINE__);
            }
        }
        $this->mobilityProfile = $mobilityProfile;
        return $this;
    }
    /**
     * Add item to mobilityProfile value
     * @throws \InvalidArgumentException
     * @param RMobilityProfile $item
     * @return _return
     */
    public function addToMobilityProfile(RMobilityProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RMobilityProfile) {
            throw new \InvalidArgumentException(sprintf('The mobilityProfile property can only contain items of RMobilityProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->mobilityProfile[] = $item;
        return $this;
    }
    /**
     * Get enterpriseFeatureAccessConfiguration value
     * @return REnterpriseFeatureAccessConfiguration[]|null
     */
    public function getEnterpriseFeatureAccessConfiguration()
    {
        return $this->enterpriseFeatureAccessConfiguration;
    }
    /**
     * Set enterpriseFeatureAccessConfiguration value
     * @throws \InvalidArgumentException
     * @param REnterpriseFeatureAccessConfiguration[] $enterpriseFeatureAccessConfiguration
     * @return _return
     */
    public function setEnterpriseFeatureAccessConfiguration(array $enterpriseFeatureAccessConfiguration = array())
    {
        foreach ($enterpriseFeatureAccessConfiguration as $returnEnterpriseFeatureAccessConfigurationItem) {
            // validation for constraint: itemType
            if (!$returnEnterpriseFeatureAccessConfigurationItem instanceof REnterpriseFeatureAccessConfiguration) {
                throw new \InvalidArgumentException(sprintf('The enterpriseFeatureAccessConfiguration property can only contain items of REnterpriseFeatureAccessConfiguration, "%s" given', is_object($returnEnterpriseFeatureAccessConfigurationItem) ? get_class($returnEnterpriseFeatureAccessConfigurationItem) : gettype($returnEnterpriseFeatureAccessConfigurationItem)), __LINE__);
            }
        }
        $this->enterpriseFeatureAccessConfiguration = $enterpriseFeatureAccessConfiguration;
        return $this;
    }
    /**
     * Add item to enterpriseFeatureAccessConfiguration value
     * @throws \InvalidArgumentException
     * @param REnterpriseFeatureAccessConfiguration $item
     * @return _return
     */
    public function addToEnterpriseFeatureAccessConfiguration(REnterpriseFeatureAccessConfiguration $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof REnterpriseFeatureAccessConfiguration) {
            throw new \InvalidArgumentException(sprintf('The enterpriseFeatureAccessConfiguration property can only contain items of REnterpriseFeatureAccessConfiguration, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->enterpriseFeatureAccessConfiguration[] = $item;
        return $this;
    }
    /**
     * Get handoffConfiguration value
     * @return RHandoffConfiguration|null
     */
    public function getHandoffConfiguration()
    {
        return $this->handoffConfiguration;
    }
    /**
     * Set handoffConfiguration value
     * @param RHandoffConfiguration $handoffConfiguration
     * @return _return
     */
    public function setHandoffConfiguration(RHandoffConfiguration $handoffConfiguration = null)
    {
        $this->handoffConfiguration = $handoffConfiguration;
        return $this;
    }
    /**
     * Get calledPartyTracing value
     * @return LCalledPartyTracing[]|null
     */
    public function getCalledPartyTracing()
    {
        return $this->calledPartyTracing;
    }
    /**
     * Set calledPartyTracing value
     * @throws \InvalidArgumentException
     * @param LCalledPartyTracing[] $calledPartyTracing
     * @return _return
     */
    public function setCalledPartyTracing(array $calledPartyTracing = array())
    {
        foreach ($calledPartyTracing as $returnCalledPartyTracingItem) {
            // validation for constraint: itemType
            if (!$returnCalledPartyTracingItem instanceof LCalledPartyTracing) {
                throw new \InvalidArgumentException(sprintf('The calledPartyTracing property can only contain items of LCalledPartyTracing, "%s" given', is_object($returnCalledPartyTracingItem) ? get_class($returnCalledPartyTracingItem) : gettype($returnCalledPartyTracingItem)), __LINE__);
            }
        }
        $this->calledPartyTracing = $calledPartyTracing;
        return $this;
    }
    /**
     * Add item to calledPartyTracing value
     * @throws \InvalidArgumentException
     * @param LCalledPartyTracing $item
     * @return _return
     */
    public function addToCalledPartyTracing(LCalledPartyTracing $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof LCalledPartyTracing) {
            throw new \InvalidArgumentException(sprintf('The calledPartyTracing property can only contain items of LCalledPartyTracing, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->calledPartyTracing[] = $item;
        return $this;
    }
    /**
     * Get sIPNormalizationScript value
     * @return RSIPNormalizationScript[]|null
     */
    public function getSIPNormalizationScript()
    {
        return $this->sIPNormalizationScript;
    }
    /**
     * Set sIPNormalizationScript value
     * @throws \InvalidArgumentException
     * @param RSIPNormalizationScript[] $sIPNormalizationScript
     * @return _return
     */
    public function setSIPNormalizationScript(array $sIPNormalizationScript = array())
    {
        foreach ($sIPNormalizationScript as $returnSIPNormalizationScriptItem) {
            // validation for constraint: itemType
            if (!$returnSIPNormalizationScriptItem instanceof RSIPNormalizationScript) {
                throw new \InvalidArgumentException(sprintf('The sIPNormalizationScript property can only contain items of RSIPNormalizationScript, "%s" given', is_object($returnSIPNormalizationScriptItem) ? get_class($returnSIPNormalizationScriptItem) : gettype($returnSIPNormalizationScriptItem)), __LINE__);
            }
        }
        $this->sIPNormalizationScript = $sIPNormalizationScript;
        return $this;
    }
    /**
     * Add item to sIPNormalizationScript value
     * @throws \InvalidArgumentException
     * @param RSIPNormalizationScript $item
     * @return _return
     */
    public function addToSIPNormalizationScript(RSIPNormalizationScript $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RSIPNormalizationScript) {
            throw new \InvalidArgumentException(sprintf('The sIPNormalizationScript property can only contain items of RSIPNormalizationScript, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->sIPNormalizationScript[] = $item;
        return $this;
    }
    /**
     * Get customUserField value
     * @return RCustomUserField[]|null
     */
    public function getCustomUserField()
    {
        return $this->customUserField;
    }
    /**
     * Set customUserField value
     * @throws \InvalidArgumentException
     * @param RCustomUserField[] $customUserField
     * @return _return
     */
    public function setCustomUserField(array $customUserField = array())
    {
        foreach ($customUserField as $returnCustomUserFieldItem) {
            // validation for constraint: itemType
            if (!$returnCustomUserFieldItem instanceof RCustomUserField) {
                throw new \InvalidArgumentException(sprintf('The customUserField property can only contain items of RCustomUserField, "%s" given', is_object($returnCustomUserFieldItem) ? get_class($returnCustomUserFieldItem) : gettype($returnCustomUserFieldItem)), __LINE__);
            }
        }
        $this->customUserField = $customUserField;
        return $this;
    }
    /**
     * Add item to customUserField value
     * @throws \InvalidArgumentException
     * @param RCustomUserField $item
     * @return _return
     */
    public function addToCustomUserField(RCustomUserField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RCustomUserField) {
            throw new \InvalidArgumentException(sprintf('The customUserField property can only contain items of RCustomUserField, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->customUserField[] = $item;
        return $this;
    }
    /**
     * Get gatewaySccpEndpoints value
     * @return RGatewaySccpEndpoints|null
     */
    public function getGatewaySccpEndpoints()
    {
        return $this->gatewaySccpEndpoints;
    }
    /**
     * Set gatewaySccpEndpoints value
     * @param RGatewaySccpEndpoints $gatewaySccpEndpoints
     * @return _return
     */
    public function setGatewaySccpEndpoints(RGatewaySccpEndpoints $gatewaySccpEndpoints = null)
    {
        $this->gatewaySccpEndpoints = $gatewaySccpEndpoints;
        return $this;
    }
    /**
     * Get billingServer value
     * @return LBillingServer|null
     */
    public function getBillingServer()
    {
        return $this->billingServer;
    }
    /**
     * Set billingServer value
     * @param LBillingServer $billingServer
     * @return _return
     */
    public function setBillingServer(LBillingServer $billingServer = null)
    {
        $this->billingServer = $billingServer;
        return $this;
    }
    /**
     * Get lbmGroup value
     * @return RLbmGroup[]|null
     */
    public function getLbmGroup()
    {
        return $this->lbmGroup;
    }
    /**
     * Set lbmGroup value
     * @throws \InvalidArgumentException
     * @param RLbmGroup[] $lbmGroup
     * @return _return
     */
    public function setLbmGroup(array $lbmGroup = array())
    {
        foreach ($lbmGroup as $returnLbmGroupItem) {
            // validation for constraint: itemType
            if (!$returnLbmGroupItem instanceof RLbmGroup) {
                throw new \InvalidArgumentException(sprintf('The lbmGroup property can only contain items of RLbmGroup, "%s" given', is_object($returnLbmGroupItem) ? get_class($returnLbmGroupItem) : gettype($returnLbmGroupItem)), __LINE__);
            }
        }
        $this->lbmGroup = $lbmGroup;
        return $this;
    }
    /**
     * Add item to lbmGroup value
     * @throws \InvalidArgumentException
     * @param RLbmGroup $item
     * @return _return
     */
    public function addToLbmGroup(RLbmGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLbmGroup) {
            throw new \InvalidArgumentException(sprintf('The lbmGroup property can only contain items of RLbmGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->lbmGroup[] = $item;
        return $this;
    }
    /**
     * Get announcement value
     * @return RAnnouncement[]|null
     */
    public function getAnnouncement()
    {
        return $this->announcement;
    }
    /**
     * Set announcement value
     * @throws \InvalidArgumentException
     * @param RAnnouncement[] $announcement
     * @return _return
     */
    public function setAnnouncement(array $announcement = array())
    {
        foreach ($announcement as $returnAnnouncementItem) {
            // validation for constraint: itemType
            if (!$returnAnnouncementItem instanceof RAnnouncement) {
                throw new \InvalidArgumentException(sprintf('The announcement property can only contain items of RAnnouncement, "%s" given', is_object($returnAnnouncementItem) ? get_class($returnAnnouncementItem) : gettype($returnAnnouncementItem)), __LINE__);
            }
        }
        $this->announcement = $announcement;
        return $this;
    }
    /**
     * Add item to announcement value
     * @throws \InvalidArgumentException
     * @param RAnnouncement $item
     * @return _return
     */
    public function addToAnnouncement(RAnnouncement $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RAnnouncement) {
            throw new \InvalidArgumentException(sprintf('The announcement property can only contain items of RAnnouncement, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->announcement[] = $item;
        return $this;
    }
    /**
     * Get serviceProfile value
     * @return RServiceProfile[]|null
     */
    public function getServiceProfile()
    {
        return $this->serviceProfile;
    }
    /**
     * Set serviceProfile value
     * @throws \InvalidArgumentException
     * @param RServiceProfile[] $serviceProfile
     * @return _return
     */
    public function setServiceProfile(array $serviceProfile = array())
    {
        foreach ($serviceProfile as $returnServiceProfileItem) {
            // validation for constraint: itemType
            if (!$returnServiceProfileItem instanceof RServiceProfile) {
                throw new \InvalidArgumentException(sprintf('The serviceProfile property can only contain items of RServiceProfile, "%s" given', is_object($returnServiceProfileItem) ? get_class($returnServiceProfileItem) : gettype($returnServiceProfileItem)), __LINE__);
            }
        }
        $this->serviceProfile = $serviceProfile;
        return $this;
    }
    /**
     * Add item to serviceProfile value
     * @throws \InvalidArgumentException
     * @param RServiceProfile $item
     * @return _return
     */
    public function addToServiceProfile(RServiceProfile $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RServiceProfile) {
            throw new \InvalidArgumentException(sprintf('The serviceProfile property can only contain items of RServiceProfile, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->serviceProfile[] = $item;
        return $this;
    }
    /**
     * Get ldapSyncCustomField value
     * @return RLdapSyncCustomField[]|null
     */
    public function getLdapSyncCustomField()
    {
        return $this->ldapSyncCustomField;
    }
    /**
     * Set ldapSyncCustomField value
     * @throws \InvalidArgumentException
     * @param RLdapSyncCustomField[] $ldapSyncCustomField
     * @return _return
     */
    public function setLdapSyncCustomField(array $ldapSyncCustomField = array())
    {
        foreach ($ldapSyncCustomField as $returnLdapSyncCustomFieldItem) {
            // validation for constraint: itemType
            if (!$returnLdapSyncCustomFieldItem instanceof RLdapSyncCustomField) {
                throw new \InvalidArgumentException(sprintf('The ldapSyncCustomField property can only contain items of RLdapSyncCustomField, "%s" given', is_object($returnLdapSyncCustomFieldItem) ? get_class($returnLdapSyncCustomFieldItem) : gettype($returnLdapSyncCustomFieldItem)), __LINE__);
            }
        }
        $this->ldapSyncCustomField = $ldapSyncCustomField;
        return $this;
    }
    /**
     * Add item to ldapSyncCustomField value
     * @throws \InvalidArgumentException
     * @param RLdapSyncCustomField $item
     * @return _return
     */
    public function addToLdapSyncCustomField(RLdapSyncCustomField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLdapSyncCustomField) {
            throw new \InvalidArgumentException(sprintf('The ldapSyncCustomField property can only contain items of RLdapSyncCustomField, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ldapSyncCustomField[] = $item;
        return $this;
    }
    /**
     * Get audioCodecPreferenceList value
     * @return RAudioCodecPreferenceList[]|null
     */
    public function getAudioCodecPreferenceList()
    {
        return $this->audioCodecPreferenceList;
    }
    /**
     * Set audioCodecPreferenceList value
     * @throws \InvalidArgumentException
     * @param RAudioCodecPreferenceList[] $audioCodecPreferenceList
     * @return _return
     */
    public function setAudioCodecPreferenceList(array $audioCodecPreferenceList = array())
    {
        foreach ($audioCodecPreferenceList as $returnAudioCodecPreferenceListItem) {
            // validation for constraint: itemType
            if (!$returnAudioCodecPreferenceListItem instanceof RAudioCodecPreferenceList) {
                throw new \InvalidArgumentException(sprintf('The audioCodecPreferenceList property can only contain items of RAudioCodecPreferenceList, "%s" given', is_object($returnAudioCodecPreferenceListItem) ? get_class($returnAudioCodecPreferenceListItem) : gettype($returnAudioCodecPreferenceListItem)), __LINE__);
            }
        }
        $this->audioCodecPreferenceList = $audioCodecPreferenceList;
        return $this;
    }
    /**
     * Add item to audioCodecPreferenceList value
     * @throws \InvalidArgumentException
     * @param RAudioCodecPreferenceList $item
     * @return _return
     */
    public function addToAudioCodecPreferenceList(RAudioCodecPreferenceList $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RAudioCodecPreferenceList) {
            throw new \InvalidArgumentException(sprintf('The audioCodecPreferenceList property can only contain items of RAudioCodecPreferenceList, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->audioCodecPreferenceList[] = $item;
        return $this;
    }
    /**
     * Get ucService value
     * @return RUcService[]|null
     */
    public function getUcService()
    {
        return $this->ucService;
    }
    /**
     * Set ucService value
     * @throws \InvalidArgumentException
     * @param RUcService[] $ucService
     * @return _return
     */
    public function setUcService(array $ucService = array())
    {
        foreach ($ucService as $returnUcServiceItem) {
            // validation for constraint: itemType
            if (!$returnUcServiceItem instanceof RUcService) {
                throw new \InvalidArgumentException(sprintf('The ucService property can only contain items of RUcService, "%s" given', is_object($returnUcServiceItem) ? get_class($returnUcServiceItem) : gettype($returnUcServiceItem)), __LINE__);
            }
        }
        $this->ucService = $ucService;
        return $this;
    }
    /**
     * Add item to ucService value
     * @throws \InvalidArgumentException
     * @param RUcService $item
     * @return _return
     */
    public function addToUcService(RUcService $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RUcService) {
            throw new \InvalidArgumentException(sprintf('The ucService property can only contain items of RUcService, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->ucService[] = $item;
        return $this;
    }
    /**
     * Get lbmHubGroup value
     * @return RLbmHubGroup[]|null
     */
    public function getLbmHubGroup()
    {
        return $this->lbmHubGroup;
    }
    /**
     * Set lbmHubGroup value
     * @throws \InvalidArgumentException
     * @param RLbmHubGroup[] $lbmHubGroup
     * @return _return
     */
    public function setLbmHubGroup(array $lbmHubGroup = array())
    {
        foreach ($lbmHubGroup as $returnLbmHubGroupItem) {
            // validation for constraint: itemType
            if (!$returnLbmHubGroupItem instanceof RLbmHubGroup) {
                throw new \InvalidArgumentException(sprintf('The lbmHubGroup property can only contain items of RLbmHubGroup, "%s" given', is_object($returnLbmHubGroupItem) ? get_class($returnLbmHubGroupItem) : gettype($returnLbmHubGroupItem)), __LINE__);
            }
        }
        $this->lbmHubGroup = $lbmHubGroup;
        return $this;
    }
    /**
     * Add item to lbmHubGroup value
     * @throws \InvalidArgumentException
     * @param RLbmHubGroup $item
     * @return _return
     */
    public function addToLbmHubGroup(RLbmHubGroup $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RLbmHubGroup) {
            throw new \InvalidArgumentException(sprintf('The lbmHubGroup property can only contain items of RLbmHubGroup, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->lbmHubGroup[] = $item;
        return $this;
    }
    /**
     * Get importedDirectoryUriCatalogs value
     * @return RImportedDirectoryUriCatalogs[]|null
     */
    public function getImportedDirectoryUriCatalogs()
    {
        return $this->importedDirectoryUriCatalogs;
    }
    /**
     * Set importedDirectoryUriCatalogs value
     * @throws \InvalidArgumentException
     * @param RImportedDirectoryUriCatalogs[] $importedDirectoryUriCatalogs
     * @return _return
     */
    public function setImportedDirectoryUriCatalogs(array $importedDirectoryUriCatalogs = array())
    {
        foreach ($importedDirectoryUriCatalogs as $returnImportedDirectoryUriCatalogsItem) {
            // validation for constraint: itemType
            if (!$returnImportedDirectoryUriCatalogsItem instanceof RImportedDirectoryUriCatalogs) {
                throw new \InvalidArgumentException(sprintf('The importedDirectoryUriCatalogs property can only contain items of RImportedDirectoryUriCatalogs, "%s" given', is_object($returnImportedDirectoryUriCatalogsItem) ? get_class($returnImportedDirectoryUriCatalogsItem) : gettype($returnImportedDirectoryUriCatalogsItem)), __LINE__);
            }
        }
        $this->importedDirectoryUriCatalogs = $importedDirectoryUriCatalogs;
        return $this;
    }
    /**
     * Add item to importedDirectoryUriCatalogs value
     * @throws \InvalidArgumentException
     * @param RImportedDirectoryUriCatalogs $item
     * @return _return
     */
    public function addToImportedDirectoryUriCatalogs(RImportedDirectoryUriCatalogs $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof RImportedDirectoryUriCatalogs) {
            throw new \InvalidArgumentException(sprintf('The importedDirectoryUriCatalogs property can only contain items of RImportedDirectoryUriCatalogs, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->importedDirectoryUriCatalogs[] = $item;
        return $this;
    }
    /**
     * Get row value
     * @return mixed[]|null
     */
    public function getRow()
    {
        return $this->row;
    }
    /**
     * Set row value
     * @throws \InvalidArgumentException
     * @param mixed[] $row
     * @return _return
     */
    public function setRow(array $row = array())
    {
        foreach ($row as $returnRowItem) {
            // validation for constraint: itemType
            if (!false) {
                throw new \InvalidArgumentException(sprintf('The row property can only contain items of anyType, "%s" given', is_object($returnRowItem) ? get_class($returnRowItem) : gettype($returnRowItem)), __LINE__);
            }
        }
        $this->row = $row;
        return $this;
    }
    /**
     * Add item to row value
     * @throws \InvalidArgumentException
     * @param mixed $item
     * @return _return
     */
    public function addToRow($item)
    {
        // validation for constraint: itemType
        if (!false) {
            throw new \InvalidArgumentException(sprintf('The row property can only contain items of anyType, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->row[] = $item;
        return $this;
    }
    /**
     * Get rowsUpdated value
     * @return int|null
     */
    public function getRowsUpdated()
    {
        return $this->rowsUpdated;
    }
    /**
     * Set rowsUpdated value
     * @param int $rowsUpdated
     * @return _return
     */
    public function setRowsUpdated($rowsUpdated = null)
    {
        // validation for constraint: int
        if (!is_null($rowsUpdated) && !is_numeric($rowsUpdated)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($rowsUpdated)), __LINE__);
        }
        $this->rowsUpdated = $rowsUpdated;
        return $this;
    }
    /**
     * Get userAuthenticated value
     * @return string|null
     */
    public function getUserAuthenticated()
    {
        return $this->userAuthenticated;
    }
    /**
     * Set userAuthenticated value
     * @param string $userAuthenticated
     * @return _return
     */
    public function setUserAuthenticated($userAuthenticated = null)
    {
        // validation for constraint: pattern
        if (is_scalar($userAuthenticated) && !preg_match('/(t)|(f)|(true)|(false)|(0)|(1)/', $userAuthenticated)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "(t)|(f)|(true)|(false)|(0)|(1)", "%s" given', var_export($userAuthenticated, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($userAuthenticated) && !is_string($userAuthenticated)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($userAuthenticated)), __LINE__);
        }
        $this->userAuthenticated = $userAuthenticated;
        return $this;
    }
    /**
     * Get code value
     * @return int|null
     */
    public function getCode()
    {
        return $this->code;
    }
    /**
     * Set code value
     * @param int $code
     * @return _return
     */
    public function setCode($code = null)
    {
        // validation for constraint: int
        if (!is_null($code) && !is_numeric($code)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($code)), __LINE__);
        }
        $this->code = $code;
        return $this;
    }
    /**
     * Get daysToExpiry value
     * @return int|null
     */
    public function getDaysToExpiry()
    {
        return $this->daysToExpiry;
    }
    /**
     * Set daysToExpiry value
     * @param int $daysToExpiry
     * @return _return
     */
    public function setDaysToExpiry($daysToExpiry = null)
    {
        // validation for constraint: int
        if (!is_null($daysToExpiry) && !is_numeric($daysToExpiry)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($daysToExpiry)), __LINE__);
        }
        $this->daysToExpiry = $daysToExpiry;
        return $this;
    }
    /**
     * Get os value
     * @return XOSVersion|null
     */
    public function getOs()
    {
        return $this->os;
    }
    /**
     * Set os value
     * @param XOSVersion $os
     * @return _return
     */
    public function setOs(XOSVersion $os = null)
    {
        $this->os = $os;
        return $this;
    }
    /**
     * Get _ value
     * @return int|null
     */
    public function get_()
    {
        return $this->_;
    }
    /**
     * Set _ value
     * @param int $_
     * @return _return
     */
    public function set_($_ = null)
    {
        // validation for constraint: int
        if (!is_null($_) && !is_numeric($_)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($_)), __LINE__);
        }
        $this->_ = $_;
        return $this;
    }
    /**
     * Get mobility value
     * @return RMobility|null
     */
    public function getMobility()
    {
        return $this->mobility;
    }
    /**
     * Set mobility value
     * @param RMobility $mobility
     * @return _return
     */
    public function setMobility(RMobility $mobility = null)
    {
        $this->mobility = $mobility;
        return $this;
    }
    /**
     * Get enterprisePhoneConfig value
     * @return XEnterprisePhoneConfig|null
     */
    public function getEnterprisePhoneConfig()
    {
        return $this->enterprisePhoneConfig;
    }
    /**
     * Set enterprisePhoneConfig value
     * @param XEnterprisePhoneConfig $enterprisePhoneConfig
     * @return _return
     */
    public function setEnterprisePhoneConfig(XEnterprisePhoneConfig $enterprisePhoneConfig = null)
    {
        $this->enterprisePhoneConfig = $enterprisePhoneConfig;
        return $this;
    }
    /**
     * Get licenseUnitReport value
     * @return XLicenseUnitReport|null
     */
    public function getLicenseUnitReport()
    {
        return $this->licenseUnitReport;
    }
    /**
     * Set licenseUnitReport value
     * @param XLicenseUnitReport $licenseUnitReport
     * @return _return
     */
    public function setLicenseUnitReport(XLicenseUnitReport $licenseUnitReport = null)
    {
        $this->licenseUnitReport = $licenseUnitReport;
        return $this;
    }
    /**
     * Get ldapSystem value
     * @return XLdapSystem|null
     */
    public function getLdapSystem()
    {
        return $this->ldapSystem;
    }
    /**
     * Set ldapSystem value
     * @param XLdapSystem $ldapSystem
     * @return _return
     */
    public function setLdapSystem(XLdapSystem $ldapSystem = null)
    {
        $this->ldapSystem = $ldapSystem;
        return $this;
    }
    /**
     * Get ldapAuthentication value
     * @return XLdapAuthentication|null
     */
    public function getLdapAuthentication()
    {
        return $this->ldapAuthentication;
    }
    /**
     * Set ldapAuthentication value
     * @param XLdapAuthentication $ldapAuthentication
     * @return _return
     */
    public function setLdapAuthentication(XLdapAuthentication $ldapAuthentication = null)
    {
        $this->ldapAuthentication = $ldapAuthentication;
        return $this;
    }
    /**
     * Get componentVersion value
     * @return ComponentVersion|null
     */
    public function getComponentVersion()
    {
        return $this->componentVersion;
    }
    /**
     * Set componentVersion value
     * @param ComponentVersion $componentVersion
     * @return _return
     */
    public function setComponentVersion(ComponentVersion $componentVersion = null)
    {
        $this->componentVersion = $componentVersion;
        return $this;
    }
    /**
     * Get fallbackFeatureConfig value
     * @return RFallbackFeatureConfig|null
     */
    public function getFallbackFeatureConfig()
    {
        return $this->fallbackFeatureConfig;
    }
    /**
     * Set fallbackFeatureConfig value
     * @param RFallbackFeatureConfig $fallbackFeatureConfig
     * @return _return
     */
    public function setFallbackFeatureConfig(RFallbackFeatureConfig $fallbackFeatureConfig = null)
    {
        $this->fallbackFeatureConfig = $fallbackFeatureConfig;
        return $this;
    }
    /**
     * Get imeLearnedRoutes value
     * @return RImeLearnedRoutes|null
     */
    public function getImeLearnedRoutes()
    {
        return $this->imeLearnedRoutes;
    }
    /**
     * Set imeLearnedRoutes value
     * @param RImeLearnedRoutes $imeLearnedRoutes
     * @return _return
     */
    public function setImeLearnedRoutes(RImeLearnedRoutes $imeLearnedRoutes = null)
    {
        $this->imeLearnedRoutes = $imeLearnedRoutes;
        return $this;
    }
    /**
     * Get imeFeatureConfig value
     * @return RImeFeatureConfig|null
     */
    public function getImeFeatureConfig()
    {
        return $this->imeFeatureConfig;
    }
    /**
     * Set imeFeatureConfig value
     * @param RImeFeatureConfig $imeFeatureConfig
     * @return _return
     */
    public function setImeFeatureConfig(RImeFeatureConfig $imeFeatureConfig = null)
    {
        $this->imeFeatureConfig = $imeFeatureConfig;
        return $this;
    }
    /**
     * Get appServerInfo value
     * @return RAppServerInfo|null
     */
    public function getAppServerInfo()
    {
        return $this->appServerInfo;
    }
    /**
     * Set appServerInfo value
     * @param RAppServerInfo $appServerInfo
     * @return _return
     */
    public function setAppServerInfo(RAppServerInfo $appServerInfo = null)
    {
        $this->appServerInfo = $appServerInfo;
        return $this;
    }
    /**
     * Get softKeySet value
     * @return RSoftKeySet|null
     */
    public function getSoftKeySet()
    {
        return $this->softKeySet;
    }
    /**
     * Set softKeySet value
     * @param RSoftKeySet $softKeySet
     * @return _return
     */
    public function setSoftKeySet(RSoftKeySet $softKeySet = null)
    {
        $this->softKeySet = $softKeySet;
        return $this;
    }
    /**
     * Get syslogConfiguration value
     * @return RSyslogConfiguration|null
     */
    public function getSyslogConfiguration()
    {
        return $this->syslogConfiguration;
    }
    /**
     * Set syslogConfiguration value
     * @param RSyslogConfiguration $syslogConfiguration
     * @return _return
     */
    public function setSyslogConfiguration(RSyslogConfiguration $syslogConfiguration = null)
    {
        $this->syslogConfiguration = $syslogConfiguration;
        return $this;
    }
    /**
     * Get ilsConfig value
     * @return NewIlsConfig|null
     */
    public function getIlsConfig()
    {
        return $this->ilsConfig;
    }
    /**
     * Set ilsConfig value
     * @param NewIlsConfig $ilsConfig
     * @return _return
     */
    public function setIlsConfig(NewIlsConfig $ilsConfig = null)
    {
        $this->ilsConfig = $ilsConfig;
        return $this;
    }
    /**
     * Get SNMPCommunityString value
     * @return RSNMPCommunityString|null
     */
    public function getSNMPCommunityString()
    {
        return $this->SNMPCommunityString;
    }
    /**
     * Set SNMPCommunityString value
     * @param RSNMPCommunityString $sNMPCommunityString
     * @return _return
     */
    public function setSNMPCommunityString(RSNMPCommunityString $sNMPCommunityString = null)
    {
        $this->SNMPCommunityString = $sNMPCommunityString;
        return $this;
    }
    /**
     * Get SNMPUser value
     * @return RSNMPGetUser|null
     */
    public function getSNMPUser()
    {
        return $this->SNMPUser;
    }
    /**
     * Set SNMPUser value
     * @param RSNMPGetUser $sNMPUser
     * @return _return
     */
    public function setSNMPUser(RSNMPGetUser $sNMPUser = null)
    {
        $this->SNMPUser = $sNMPUser;
        return $this;
    }
    /**
     * Get SNMPMIB2List value
     * @return RSNMPMIB2List|null
     */
    public function getSNMPMIB2List()
    {
        return $this->SNMPMIB2List;
    }
    /**
     * Set SNMPMIB2List value
     * @param RSNMPMIB2List $sNMPMIB2List
     * @return _return
     */
    public function setSNMPMIB2List(RSNMPMIB2List $sNMPMIB2List = null)
    {
        $this->SNMPMIB2List = $sNMPMIB2List;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return _return
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
