<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for searchCriteria StructType
 * Meta informations extracted from the WSDL
 * - documentation: Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has
 * to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria
 * has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under
 * searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element
 * under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one
 * element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast
 * one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned |
 * Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned
 * | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be
 * mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to
 * be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has
 * to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria
 * has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under
 * searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element
 * under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one
 * element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast
 * one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned |
 * Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned
 * | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be
 * mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to
 * be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has
 * to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria
 * has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under
 * searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element
 * under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one
 * element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast
 * one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned |
 * Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned
 * | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be
 * mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to
 * be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has
 * to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria
 * has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under
 * searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element
 * under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one
 * element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast
 * one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Atleast one element under searchCriteria has to be mentioned | Specify Search Criterion
 * @subpackage Structs
 */
class SearchCriteria extends AbstractStructBase
{
    /**
     * The name
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $name;
    /**
     * The description
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $description;
    /**
     * The ownerIdName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ownerIdName;
    /**
     * The dirn
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dirn;
    /**
     * The cssName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $cssName;
    /**
     * The callManagerGroupName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $callManagerGroupName;
    /**
     * The regionName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $regionName;
    /**
     * The namespace
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $namespace;
    /**
     * The subNet
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $subNet;
    /**
     * The subNetMaskSz
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $subNetMaskSz;
    /**
     * The code
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $code;
    /**
     * The authorizationLevel
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $authorizationLevel;
    /**
     * The userLocale
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $userLocale;
    /**
     * The recordingCssName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $recordingCssName;
    /**
     * The recorderDestination
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $recorderDestination;
    /**
     * The processNodeName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $processNodeName;
    /**
     * The sourceId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $sourceId;
    /**
     * The primaryDnsIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $primaryDnsIpAddress;
    /**
     * The secondaryDnsIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $secondaryDnsIpAddress;
    /**
     * The domainName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $domainName;
    /**
     * The dhcpServerName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dhcpServerName;
    /**
     * The subnetIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $subnetIpAddress;
    /**
     * The primaryStartIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $primaryStartIpAddress;
    /**
     * The primaryEndIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $primaryEndIpAddress;
    /**
     * The secondaryStartIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $secondaryStartIpAddress;
    /**
     * The secondaryEndIpAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $secondaryEndIpAddress;
    /**
     * The pattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $pattern;
    /**
     * The routePartitionName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $routePartitionName;
    /**
     * The callManagerName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $callManagerName;
    /**
     * The reversionPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $reversionPattern;
    /**
     * The firstName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $firstName;
    /**
     * The lastName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastName;
    /**
     * The userid
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $userid;
    /**
     * The department
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $department;
    /**
     * The realm
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $realm;
    /**
     * The ipAddress
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ipAddress;
    /**
     * The timeZone
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $timeZone;
    /**
     * The applicationUser
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $applicationUser;
    /**
     * The instanceId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $instanceId;
    /**
     * The endUserId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $endUserId;
    /**
     * The callingSearchSpaceName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $callingSearchSpaceName;
    /**
     * The devicePoolName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $devicePoolName;
    /**
     * The securityProfileName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $securityProfileName;
    /**
     * The dnPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dnPattern;
    /**
     * The serviceName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $serviceName;
    /**
     * The serviceDescription
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $serviceDescription;
    /**
     * The dialPlanName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dialPlanName;
    /**
     * The routeFilterName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $routeFilterName;
    /**
     * The dnOrPatternIpv6
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dnOrPatternIpv6;
    /**
     * The numberBeginWith
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $numberBeginWith;
    /**
     * The dialPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dialPattern;
    /**
     * The protocol
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $protocol;
    /**
     * The remoteDestinationProfileName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $remoteDestinationProfileName;
    /**
     * The dualModeDeviceName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dualModeDeviceName;
    /**
     * The dnOrPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dnOrPattern;
    /**
     * The partition
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $partition;
    /**
     * The type
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $type;
    /**
     * The hostedPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hostedPattern;
    /**
     * The clusterId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $clusterId;
    /**
     * The ldapDn
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ldapDn;
    /**
     * The userSearchBase
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $userSearchBase;
    /**
     * The learnedPattern
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $learnedPattern;
    /**
     * The learnedPatternPrefix
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $learnedPatternPrefix;
    /**
     * The callControlIdentity
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $callControlIdentity;
    /**
     * The domain
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $domain;
    /**
     * The imeEnrolledPatternGroupName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $imeEnrolledPatternGroupName;
    /**
     * The imeExclusionNumberGroupName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $imeExclusionNumberGroupName;
    /**
     * The filter
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $filter;
    /**
     * The subjectName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $subjectName;
    /**
     * The issuerName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $issuerName;
    /**
     * The serialNumber
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $serialNumber;
    /**
     * The timeToLive
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $timeToLive;
    /**
     * The directorynumber
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $directorynumber;
    /**
     * The field
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $field;
    /**
     * The hostName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $hostName;
    /**
     * The Description
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $Description;
    /**
     * The routeString
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $routeString;
    /**
     * The ldapConfigurationName
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ldapConfigurationName;
    /**
     * Constructor method for searchCriteria
     * @uses SearchCriteria::setName()
     * @uses SearchCriteria::setDescription()
     * @uses SearchCriteria::setOwnerIdName()
     * @uses SearchCriteria::setDirn()
     * @uses SearchCriteria::setCssName()
     * @uses SearchCriteria::setCallManagerGroupName()
     * @uses SearchCriteria::setRegionName()
     * @uses SearchCriteria::setNamespace()
     * @uses SearchCriteria::setSubNet()
     * @uses SearchCriteria::setSubNetMaskSz()
     * @uses SearchCriteria::setCode()
     * @uses SearchCriteria::setAuthorizationLevel()
     * @uses SearchCriteria::setUserLocale()
     * @uses SearchCriteria::setRecordingCssName()
     * @uses SearchCriteria::setRecorderDestination()
     * @uses SearchCriteria::setProcessNodeName()
     * @uses SearchCriteria::setSourceId()
     * @uses SearchCriteria::setPrimaryDnsIpAddress()
     * @uses SearchCriteria::setSecondaryDnsIpAddress()
     * @uses SearchCriteria::setDomainName()
     * @uses SearchCriteria::setDhcpServerName()
     * @uses SearchCriteria::setSubnetIpAddress()
     * @uses SearchCriteria::setPrimaryStartIpAddress()
     * @uses SearchCriteria::setPrimaryEndIpAddress()
     * @uses SearchCriteria::setSecondaryStartIpAddress()
     * @uses SearchCriteria::setSecondaryEndIpAddress()
     * @uses SearchCriteria::setPattern()
     * @uses SearchCriteria::setRoutePartitionName()
     * @uses SearchCriteria::setCallManagerName()
     * @uses SearchCriteria::setReversionPattern()
     * @uses SearchCriteria::setFirstName()
     * @uses SearchCriteria::setLastName()
     * @uses SearchCriteria::setUserid()
     * @uses SearchCriteria::setDepartment()
     * @uses SearchCriteria::setRealm()
     * @uses SearchCriteria::setIpAddress()
     * @uses SearchCriteria::setTimeZone()
     * @uses SearchCriteria::setApplicationUser()
     * @uses SearchCriteria::setInstanceId()
     * @uses SearchCriteria::setEndUserId()
     * @uses SearchCriteria::setCallingSearchSpaceName()
     * @uses SearchCriteria::setDevicePoolName()
     * @uses SearchCriteria::setSecurityProfileName()
     * @uses SearchCriteria::setDnPattern()
     * @uses SearchCriteria::setServiceName()
     * @uses SearchCriteria::setServiceDescription()
     * @uses SearchCriteria::setDialPlanName()
     * @uses SearchCriteria::setRouteFilterName()
     * @uses SearchCriteria::setDnOrPatternIpv6()
     * @uses SearchCriteria::setNumberBeginWith()
     * @uses SearchCriteria::setDialPattern()
     * @uses SearchCriteria::setProtocol()
     * @uses SearchCriteria::setRemoteDestinationProfileName()
     * @uses SearchCriteria::setDualModeDeviceName()
     * @uses SearchCriteria::setDnOrPattern()
     * @uses SearchCriteria::setPartition()
     * @uses SearchCriteria::setType()
     * @uses SearchCriteria::setHostedPattern()
     * @uses SearchCriteria::setClusterId()
     * @uses SearchCriteria::setLdapDn()
     * @uses SearchCriteria::setUserSearchBase()
     * @uses SearchCriteria::setLearnedPattern()
     * @uses SearchCriteria::setLearnedPatternPrefix()
     * @uses SearchCriteria::setCallControlIdentity()
     * @uses SearchCriteria::setDomain()
     * @uses SearchCriteria::setImeEnrolledPatternGroupName()
     * @uses SearchCriteria::setImeExclusionNumberGroupName()
     * @uses SearchCriteria::setFilter()
     * @uses SearchCriteria::setSubjectName()
     * @uses SearchCriteria::setIssuerName()
     * @uses SearchCriteria::setSerialNumber()
     * @uses SearchCriteria::setTimeToLive()
     * @uses SearchCriteria::setDirectorynumber()
     * @uses SearchCriteria::setField()
     * @uses SearchCriteria::setHostName()
     * @uses SearchCriteria::setDescription_1()
     * @uses SearchCriteria::setRouteString()
     * @uses SearchCriteria::setLdapConfigurationName()
     * @param string $name
     * @param string $description
     * @param string $ownerIdName
     * @param string $dirn
     * @param string $cssName
     * @param string $callManagerGroupName
     * @param string $regionName
     * @param string $namespace
     * @param string $subNet
     * @param string $subNetMaskSz
     * @param string $code
     * @param string $authorizationLevel
     * @param string $userLocale
     * @param string $recordingCssName
     * @param string $recorderDestination
     * @param string $processNodeName
     * @param string $sourceId
     * @param string $primaryDnsIpAddress
     * @param string $secondaryDnsIpAddress
     * @param string $domainName
     * @param string $dhcpServerName
     * @param string $subnetIpAddress
     * @param string $primaryStartIpAddress
     * @param string $primaryEndIpAddress
     * @param string $secondaryStartIpAddress
     * @param string $secondaryEndIpAddress
     * @param string $pattern
     * @param string $routePartitionName
     * @param string $callManagerName
     * @param string $reversionPattern
     * @param string $firstName
     * @param string $lastName
     * @param string $userid
     * @param string $department
     * @param string $realm
     * @param string $ipAddress
     * @param string $timeZone
     * @param string $applicationUser
     * @param string $instanceId
     * @param string $endUserId
     * @param string $callingSearchSpaceName
     * @param string $devicePoolName
     * @param string $securityProfileName
     * @param string $dnPattern
     * @param string $serviceName
     * @param string $serviceDescription
     * @param string $dialPlanName
     * @param string $routeFilterName
     * @param string $dnOrPatternIpv6
     * @param string $numberBeginWith
     * @param string $dialPattern
     * @param string $protocol
     * @param string $remoteDestinationProfileName
     * @param string $dualModeDeviceName
     * @param string $dnOrPattern
     * @param string $partition
     * @param string $type
     * @param string $hostedPattern
     * @param string $clusterId
     * @param string $ldapDn
     * @param string $userSearchBase
     * @param string $learnedPattern
     * @param string $learnedPatternPrefix
     * @param string $callControlIdentity
     * @param string $domain
     * @param string $imeEnrolledPatternGroupName
     * @param string $imeExclusionNumberGroupName
     * @param string $filter
     * @param string $subjectName
     * @param string $issuerName
     * @param string $serialNumber
     * @param string $timeToLive
     * @param string $directorynumber
     * @param string $field
     * @param string $hostName
     * @param string $description
     * @param string $routeString
     * @param string $ldapConfigurationName
     */
    public function __construct($name = null, $description = null, $ownerIdName = null, $dirn = null, $cssName = null, $callManagerGroupName = null, $regionName = null, $namespace = null, $subNet = null, $subNetMaskSz = null, $code = null, $authorizationLevel = null, $userLocale = null, $recordingCssName = null, $recorderDestination = null, $processNodeName = null, $sourceId = null, $primaryDnsIpAddress = null, $secondaryDnsIpAddress = null, $domainName = null, $dhcpServerName = null, $subnetIpAddress = null, $primaryStartIpAddress = null, $primaryEndIpAddress = null, $secondaryStartIpAddress = null, $secondaryEndIpAddress = null, $pattern = null, $routePartitionName = null, $callManagerName = null, $reversionPattern = null, $firstName = null, $lastName = null, $userid = null, $department = null, $realm = null, $ipAddress = null, $timeZone = null, $applicationUser = null, $instanceId = null, $endUserId = null, $callingSearchSpaceName = null, $devicePoolName = null, $securityProfileName = null, $dnPattern = null, $serviceName = null, $serviceDescription = null, $dialPlanName = null, $routeFilterName = null, $dnOrPatternIpv6 = null, $numberBeginWith = null, $dialPattern = null, $protocol = null, $remoteDestinationProfileName = null, $dualModeDeviceName = null, $dnOrPattern = null, $partition = null, $type = null, $hostedPattern = null, $clusterId = null, $ldapDn = null, $userSearchBase = null, $learnedPattern = null, $learnedPatternPrefix = null, $callControlIdentity = null, $domain = null, $imeEnrolledPatternGroupName = null, $imeExclusionNumberGroupName = null, $filter = null, $subjectName = null, $issuerName = null, $serialNumber = null, $timeToLive = null, $directorynumber = null, $field = null, $hostName = null, $description = null, $routeString = null, $ldapConfigurationName = null)
    {
        $this
            ->setName($name)
            ->setDescription($description)
            ->setOwnerIdName($ownerIdName)
            ->setDirn($dirn)
            ->setCssName($cssName)
            ->setCallManagerGroupName($callManagerGroupName)
            ->setRegionName($regionName)
            ->setNamespace($namespace)
            ->setSubNet($subNet)
            ->setSubNetMaskSz($subNetMaskSz)
            ->setCode($code)
            ->setAuthorizationLevel($authorizationLevel)
            ->setUserLocale($userLocale)
            ->setRecordingCssName($recordingCssName)
            ->setRecorderDestination($recorderDestination)
            ->setProcessNodeName($processNodeName)
            ->setSourceId($sourceId)
            ->setPrimaryDnsIpAddress($primaryDnsIpAddress)
            ->setSecondaryDnsIpAddress($secondaryDnsIpAddress)
            ->setDomainName($domainName)
            ->setDhcpServerName($dhcpServerName)
            ->setSubnetIpAddress($subnetIpAddress)
            ->setPrimaryStartIpAddress($primaryStartIpAddress)
            ->setPrimaryEndIpAddress($primaryEndIpAddress)
            ->setSecondaryStartIpAddress($secondaryStartIpAddress)
            ->setSecondaryEndIpAddress($secondaryEndIpAddress)
            ->setPattern($pattern)
            ->setRoutePartitionName($routePartitionName)
            ->setCallManagerName($callManagerName)
            ->setReversionPattern($reversionPattern)
            ->setFirstName($firstName)
            ->setLastName($lastName)
            ->setUserid($userid)
            ->setDepartment($department)
            ->setRealm($realm)
            ->setIpAddress($ipAddress)
            ->setTimeZone($timeZone)
            ->setApplicationUser($applicationUser)
            ->setInstanceId($instanceId)
            ->setEndUserId($endUserId)
            ->setCallingSearchSpaceName($callingSearchSpaceName)
            ->setDevicePoolName($devicePoolName)
            ->setSecurityProfileName($securityProfileName)
            ->setDnPattern($dnPattern)
            ->setServiceName($serviceName)
            ->setServiceDescription($serviceDescription)
            ->setDialPlanName($dialPlanName)
            ->setRouteFilterName($routeFilterName)
            ->setDnOrPatternIpv6($dnOrPatternIpv6)
            ->setNumberBeginWith($numberBeginWith)
            ->setDialPattern($dialPattern)
            ->setProtocol($protocol)
            ->setRemoteDestinationProfileName($remoteDestinationProfileName)
            ->setDualModeDeviceName($dualModeDeviceName)
            ->setDnOrPattern($dnOrPattern)
            ->setPartition($partition)
            ->setType($type)
            ->setHostedPattern($hostedPattern)
            ->setClusterId($clusterId)
            ->setLdapDn($ldapDn)
            ->setUserSearchBase($userSearchBase)
            ->setLearnedPattern($learnedPattern)
            ->setLearnedPatternPrefix($learnedPatternPrefix)
            ->setCallControlIdentity($callControlIdentity)
            ->setDomain($domain)
            ->setImeEnrolledPatternGroupName($imeEnrolledPatternGroupName)
            ->setImeExclusionNumberGroupName($imeExclusionNumberGroupName)
            ->setFilter($filter)
            ->setSubjectName($subjectName)
            ->setIssuerName($issuerName)
            ->setSerialNumber($serialNumber)
            ->setTimeToLive($timeToLive)
            ->setDirectorynumber($directorynumber)
            ->setField($field)
            ->setHostName($hostName)
            ->setDescription_1($description)
            ->setRouteString($routeString)
            ->setLdapConfigurationName($ldapConfigurationName);
    }
    /**
     * Get name value
     * @return string|null
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * Set name value
     * @param string $name
     * @return SearchCriteria
     */
    public function setName($name = null)
    {
        // validation for constraint: string
        if (!is_null($name) && !is_string($name)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($name)), __LINE__);
        }
        $this->name = $name;
        return $this;
    }
    /**
     * Get Description value
     * @return string|null
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set Description value
     * @param string $description
     * @return SearchCriteria
     */
    public function setDescription($description = null)
    {
        // validation for constraint: string
        if (!is_null($description) && !is_string($description)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($description)), __LINE__);
        }
        $this->description = $description;
        return $this;
    }
    /**
     * Get ownerIdName value
     * @return string|null
     */
    public function getOwnerIdName()
    {
        return $this->ownerIdName;
    }
    /**
     * Set ownerIdName value
     * @param string $ownerIdName
     * @return SearchCriteria
     */
    public function setOwnerIdName($ownerIdName = null)
    {
        // validation for constraint: string
        if (!is_null($ownerIdName) && !is_string($ownerIdName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ownerIdName)), __LINE__);
        }
        $this->ownerIdName = $ownerIdName;
        return $this;
    }
    /**
     * Get dirn value
     * @return string|null
     */
    public function getDirn()
    {
        return $this->dirn;
    }
    /**
     * Set dirn value
     * @param string $dirn
     * @return SearchCriteria
     */
    public function setDirn($dirn = null)
    {
        // validation for constraint: string
        if (!is_null($dirn) && !is_string($dirn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dirn)), __LINE__);
        }
        $this->dirn = $dirn;
        return $this;
    }
    /**
     * Get cssName value
     * @return string|null
     */
    public function getCssName()
    {
        return $this->cssName;
    }
    /**
     * Set cssName value
     * @param string $cssName
     * @return SearchCriteria
     */
    public function setCssName($cssName = null)
    {
        // validation for constraint: string
        if (!is_null($cssName) && !is_string($cssName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cssName)), __LINE__);
        }
        $this->cssName = $cssName;
        return $this;
    }
    /**
     * Get callManagerGroupName value
     * @return string|null
     */
    public function getCallManagerGroupName()
    {
        return $this->callManagerGroupName;
    }
    /**
     * Set callManagerGroupName value
     * @param string $callManagerGroupName
     * @return SearchCriteria
     */
    public function setCallManagerGroupName($callManagerGroupName = null)
    {
        // validation for constraint: string
        if (!is_null($callManagerGroupName) && !is_string($callManagerGroupName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($callManagerGroupName)), __LINE__);
        }
        $this->callManagerGroupName = $callManagerGroupName;
        return $this;
    }
    /**
     * Get regionName value
     * @return string|null
     */
    public function getRegionName()
    {
        return $this->regionName;
    }
    /**
     * Set regionName value
     * @param string $regionName
     * @return SearchCriteria
     */
    public function setRegionName($regionName = null)
    {
        // validation for constraint: string
        if (!is_null($regionName) && !is_string($regionName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($regionName)), __LINE__);
        }
        $this->regionName = $regionName;
        return $this;
    }
    /**
     * Get namespace value
     * @return string|null
     */
    public function getNamespace()
    {
        return $this->namespace;
    }
    /**
     * Set namespace value
     * @param string $namespace
     * @return SearchCriteria
     */
    public function setNamespace($namespace = null)
    {
        // validation for constraint: string
        if (!is_null($namespace) && !is_string($namespace)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($namespace)), __LINE__);
        }
        $this->namespace = $namespace;
        return $this;
    }
    /**
     * Get subNet value
     * @return string|null
     */
    public function getSubNet()
    {
        return $this->subNet;
    }
    /**
     * Set subNet value
     * @param string $subNet
     * @return SearchCriteria
     */
    public function setSubNet($subNet = null)
    {
        // validation for constraint: string
        if (!is_null($subNet) && !is_string($subNet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($subNet)), __LINE__);
        }
        $this->subNet = $subNet;
        return $this;
    }
    /**
     * Get subNetMaskSz value
     * @return string|null
     */
    public function getSubNetMaskSz()
    {
        return $this->subNetMaskSz;
    }
    /**
     * Set subNetMaskSz value
     * @param string $subNetMaskSz
     * @return SearchCriteria
     */
    public function setSubNetMaskSz($subNetMaskSz = null)
    {
        // validation for constraint: string
        if (!is_null($subNetMaskSz) && !is_string($subNetMaskSz)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($subNetMaskSz)), __LINE__);
        }
        $this->subNetMaskSz = $subNetMaskSz;
        return $this;
    }
    /**
     * Get code value
     * @return string|null
     */
    public function getCode()
    {
        return $this->code;
    }
    /**
     * Set code value
     * @param string $code
     * @return SearchCriteria
     */
    public function setCode($code = null)
    {
        // validation for constraint: string
        if (!is_null($code) && !is_string($code)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($code)), __LINE__);
        }
        $this->code = $code;
        return $this;
    }
    /**
     * Get authorizationLevel value
     * @return string|null
     */
    public function getAuthorizationLevel()
    {
        return $this->authorizationLevel;
    }
    /**
     * Set authorizationLevel value
     * @param string $authorizationLevel
     * @return SearchCriteria
     */
    public function setAuthorizationLevel($authorizationLevel = null)
    {
        // validation for constraint: string
        if (!is_null($authorizationLevel) && !is_string($authorizationLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($authorizationLevel)), __LINE__);
        }
        $this->authorizationLevel = $authorizationLevel;
        return $this;
    }
    /**
     * Get userLocale value
     * @return string|null
     */
    public function getUserLocale()
    {
        return $this->userLocale;
    }
    /**
     * Set userLocale value
     * @param string $userLocale
     * @return SearchCriteria
     */
    public function setUserLocale($userLocale = null)
    {
        // validation for constraint: string
        if (!is_null($userLocale) && !is_string($userLocale)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($userLocale)), __LINE__);
        }
        $this->userLocale = $userLocale;
        return $this;
    }
    /**
     * Get recordingCssName value
     * @return string|null
     */
    public function getRecordingCssName()
    {
        return $this->recordingCssName;
    }
    /**
     * Set recordingCssName value
     * @param string $recordingCssName
     * @return SearchCriteria
     */
    public function setRecordingCssName($recordingCssName = null)
    {
        // validation for constraint: string
        if (!is_null($recordingCssName) && !is_string($recordingCssName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($recordingCssName)), __LINE__);
        }
        $this->recordingCssName = $recordingCssName;
        return $this;
    }
    /**
     * Get recorderDestination value
     * @return string|null
     */
    public function getRecorderDestination()
    {
        return $this->recorderDestination;
    }
    /**
     * Set recorderDestination value
     * @param string $recorderDestination
     * @return SearchCriteria
     */
    public function setRecorderDestination($recorderDestination = null)
    {
        // validation for constraint: string
        if (!is_null($recorderDestination) && !is_string($recorderDestination)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($recorderDestination)), __LINE__);
        }
        $this->recorderDestination = $recorderDestination;
        return $this;
    }
    /**
     * Get processNodeName value
     * @return string|null
     */
    public function getProcessNodeName()
    {
        return $this->processNodeName;
    }
    /**
     * Set processNodeName value
     * @param string $processNodeName
     * @return SearchCriteria
     */
    public function setProcessNodeName($processNodeName = null)
    {
        // validation for constraint: string
        if (!is_null($processNodeName) && !is_string($processNodeName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($processNodeName)), __LINE__);
        }
        $this->processNodeName = $processNodeName;
        return $this;
    }
    /**
     * Get sourceId value
     * @return string|null
     */
    public function getSourceId()
    {
        return $this->sourceId;
    }
    /**
     * Set sourceId value
     * @param string $sourceId
     * @return SearchCriteria
     */
    public function setSourceId($sourceId = null)
    {
        // validation for constraint: string
        if (!is_null($sourceId) && !is_string($sourceId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($sourceId)), __LINE__);
        }
        $this->sourceId = $sourceId;
        return $this;
    }
    /**
     * Get primaryDnsIpAddress value
     * @return string|null
     */
    public function getPrimaryDnsIpAddress()
    {
        return $this->primaryDnsIpAddress;
    }
    /**
     * Set primaryDnsIpAddress value
     * @param string $primaryDnsIpAddress
     * @return SearchCriteria
     */
    public function setPrimaryDnsIpAddress($primaryDnsIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($primaryDnsIpAddress) && !is_string($primaryDnsIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($primaryDnsIpAddress)), __LINE__);
        }
        $this->primaryDnsIpAddress = $primaryDnsIpAddress;
        return $this;
    }
    /**
     * Get secondaryDnsIpAddress value
     * @return string|null
     */
    public function getSecondaryDnsIpAddress()
    {
        return $this->secondaryDnsIpAddress;
    }
    /**
     * Set secondaryDnsIpAddress value
     * @param string $secondaryDnsIpAddress
     * @return SearchCriteria
     */
    public function setSecondaryDnsIpAddress($secondaryDnsIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($secondaryDnsIpAddress) && !is_string($secondaryDnsIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($secondaryDnsIpAddress)), __LINE__);
        }
        $this->secondaryDnsIpAddress = $secondaryDnsIpAddress;
        return $this;
    }
    /**
     * Get domainName value
     * @return string|null
     */
    public function getDomainName()
    {
        return $this->domainName;
    }
    /**
     * Set domainName value
     * @param string $domainName
     * @return SearchCriteria
     */
    public function setDomainName($domainName = null)
    {
        // validation for constraint: string
        if (!is_null($domainName) && !is_string($domainName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($domainName)), __LINE__);
        }
        $this->domainName = $domainName;
        return $this;
    }
    /**
     * Get dhcpServerName value
     * @return string|null
     */
    public function getDhcpServerName()
    {
        return $this->dhcpServerName;
    }
    /**
     * Set dhcpServerName value
     * @param string $dhcpServerName
     * @return SearchCriteria
     */
    public function setDhcpServerName($dhcpServerName = null)
    {
        // validation for constraint: string
        if (!is_null($dhcpServerName) && !is_string($dhcpServerName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dhcpServerName)), __LINE__);
        }
        $this->dhcpServerName = $dhcpServerName;
        return $this;
    }
    /**
     * Get subnetIpAddress value
     * @return string|null
     */
    public function getSubnetIpAddress()
    {
        return $this->subnetIpAddress;
    }
    /**
     * Set subnetIpAddress value
     * @param string $subnetIpAddress
     * @return SearchCriteria
     */
    public function setSubnetIpAddress($subnetIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($subnetIpAddress) && !is_string($subnetIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($subnetIpAddress)), __LINE__);
        }
        $this->subnetIpAddress = $subnetIpAddress;
        return $this;
    }
    /**
     * Get primaryStartIpAddress value
     * @return string|null
     */
    public function getPrimaryStartIpAddress()
    {
        return $this->primaryStartIpAddress;
    }
    /**
     * Set primaryStartIpAddress value
     * @param string $primaryStartIpAddress
     * @return SearchCriteria
     */
    public function setPrimaryStartIpAddress($primaryStartIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($primaryStartIpAddress) && !is_string($primaryStartIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($primaryStartIpAddress)), __LINE__);
        }
        $this->primaryStartIpAddress = $primaryStartIpAddress;
        return $this;
    }
    /**
     * Get primaryEndIpAddress value
     * @return string|null
     */
    public function getPrimaryEndIpAddress()
    {
        return $this->primaryEndIpAddress;
    }
    /**
     * Set primaryEndIpAddress value
     * @param string $primaryEndIpAddress
     * @return SearchCriteria
     */
    public function setPrimaryEndIpAddress($primaryEndIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($primaryEndIpAddress) && !is_string($primaryEndIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($primaryEndIpAddress)), __LINE__);
        }
        $this->primaryEndIpAddress = $primaryEndIpAddress;
        return $this;
    }
    /**
     * Get secondaryStartIpAddress value
     * @return string|null
     */
    public function getSecondaryStartIpAddress()
    {
        return $this->secondaryStartIpAddress;
    }
    /**
     * Set secondaryStartIpAddress value
     * @param string $secondaryStartIpAddress
     * @return SearchCriteria
     */
    public function setSecondaryStartIpAddress($secondaryStartIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($secondaryStartIpAddress) && !is_string($secondaryStartIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($secondaryStartIpAddress)), __LINE__);
        }
        $this->secondaryStartIpAddress = $secondaryStartIpAddress;
        return $this;
    }
    /**
     * Get secondaryEndIpAddress value
     * @return string|null
     */
    public function getSecondaryEndIpAddress()
    {
        return $this->secondaryEndIpAddress;
    }
    /**
     * Set secondaryEndIpAddress value
     * @param string $secondaryEndIpAddress
     * @return SearchCriteria
     */
    public function setSecondaryEndIpAddress($secondaryEndIpAddress = null)
    {
        // validation for constraint: string
        if (!is_null($secondaryEndIpAddress) && !is_string($secondaryEndIpAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($secondaryEndIpAddress)), __LINE__);
        }
        $this->secondaryEndIpAddress = $secondaryEndIpAddress;
        return $this;
    }
    /**
     * Get pattern value
     * @return string|null
     */
    public function getPattern()
    {
        return $this->pattern;
    }
    /**
     * Set pattern value
     * @param string $pattern
     * @return SearchCriteria
     */
    public function setPattern($pattern = null)
    {
        // validation for constraint: string
        if (!is_null($pattern) && !is_string($pattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($pattern)), __LINE__);
        }
        $this->pattern = $pattern;
        return $this;
    }
    /**
     * Get routePartitionName value
     * @return string|null
     */
    public function getRoutePartitionName()
    {
        return $this->routePartitionName;
    }
    /**
     * Set routePartitionName value
     * @param string $routePartitionName
     * @return SearchCriteria
     */
    public function setRoutePartitionName($routePartitionName = null)
    {
        // validation for constraint: string
        if (!is_null($routePartitionName) && !is_string($routePartitionName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($routePartitionName)), __LINE__);
        }
        $this->routePartitionName = $routePartitionName;
        return $this;
    }
    /**
     * Get callManagerName value
     * @return string|null
     */
    public function getCallManagerName()
    {
        return $this->callManagerName;
    }
    /**
     * Set callManagerName value
     * @param string $callManagerName
     * @return SearchCriteria
     */
    public function setCallManagerName($callManagerName = null)
    {
        // validation for constraint: string
        if (!is_null($callManagerName) && !is_string($callManagerName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($callManagerName)), __LINE__);
        }
        $this->callManagerName = $callManagerName;
        return $this;
    }
    /**
     * Get reversionPattern value
     * @return string|null
     */
    public function getReversionPattern()
    {
        return $this->reversionPattern;
    }
    /**
     * Set reversionPattern value
     * @param string $reversionPattern
     * @return SearchCriteria
     */
    public function setReversionPattern($reversionPattern = null)
    {
        // validation for constraint: string
        if (!is_null($reversionPattern) && !is_string($reversionPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($reversionPattern)), __LINE__);
        }
        $this->reversionPattern = $reversionPattern;
        return $this;
    }
    /**
     * Get firstName value
     * @return string|null
     */
    public function getFirstName()
    {
        return $this->firstName;
    }
    /**
     * Set firstName value
     * @param string $firstName
     * @return SearchCriteria
     */
    public function setFirstName($firstName = null)
    {
        // validation for constraint: string
        if (!is_null($firstName) && !is_string($firstName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($firstName)), __LINE__);
        }
        $this->firstName = $firstName;
        return $this;
    }
    /**
     * Get lastName value
     * @return string|null
     */
    public function getLastName()
    {
        return $this->lastName;
    }
    /**
     * Set lastName value
     * @param string $lastName
     * @return SearchCriteria
     */
    public function setLastName($lastName = null)
    {
        // validation for constraint: string
        if (!is_null($lastName) && !is_string($lastName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($lastName)), __LINE__);
        }
        $this->lastName = $lastName;
        return $this;
    }
    /**
     * Get userid value
     * @return string|null
     */
    public function getUserid()
    {
        return $this->userid;
    }
    /**
     * Set userid value
     * @param string $userid
     * @return SearchCriteria
     */
    public function setUserid($userid = null)
    {
        // validation for constraint: string
        if (!is_null($userid) && !is_string($userid)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($userid)), __LINE__);
        }
        $this->userid = $userid;
        return $this;
    }
    /**
     * Get department value
     * @return string|null
     */
    public function getDepartment()
    {
        return $this->department;
    }
    /**
     * Set department value
     * @param string $department
     * @return SearchCriteria
     */
    public function setDepartment($department = null)
    {
        // validation for constraint: string
        if (!is_null($department) && !is_string($department)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($department)), __LINE__);
        }
        $this->department = $department;
        return $this;
    }
    /**
     * Get realm value
     * @return string|null
     */
    public function getRealm()
    {
        return $this->realm;
    }
    /**
     * Set realm value
     * @param string $realm
     * @return SearchCriteria
     */
    public function setRealm($realm = null)
    {
        // validation for constraint: string
        if (!is_null($realm) && !is_string($realm)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($realm)), __LINE__);
        }
        $this->realm = $realm;
        return $this;
    }
    /**
     * Get ipAddress value
     * @return string|null
     */
    public function getIpAddress()
    {
        return $this->ipAddress;
    }
    /**
     * Set ipAddress value
     * @param string $ipAddress
     * @return SearchCriteria
     */
    public function setIpAddress($ipAddress = null)
    {
        // validation for constraint: string
        if (!is_null($ipAddress) && !is_string($ipAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ipAddress)), __LINE__);
        }
        $this->ipAddress = $ipAddress;
        return $this;
    }
    /**
     * Get timeZone value
     * @return string|null
     */
    public function getTimeZone()
    {
        return $this->timeZone;
    }
    /**
     * Set timeZone value
     * @param string $timeZone
     * @return SearchCriteria
     */
    public function setTimeZone($timeZone = null)
    {
        // validation for constraint: string
        if (!is_null($timeZone) && !is_string($timeZone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($timeZone)), __LINE__);
        }
        $this->timeZone = $timeZone;
        return $this;
    }
    /**
     * Get applicationUser value
     * @return string|null
     */
    public function getApplicationUser()
    {
        return $this->applicationUser;
    }
    /**
     * Set applicationUser value
     * @param string $applicationUser
     * @return SearchCriteria
     */
    public function setApplicationUser($applicationUser = null)
    {
        // validation for constraint: string
        if (!is_null($applicationUser) && !is_string($applicationUser)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($applicationUser)), __LINE__);
        }
        $this->applicationUser = $applicationUser;
        return $this;
    }
    /**
     * Get instanceId value
     * @return string|null
     */
    public function getInstanceId()
    {
        return $this->instanceId;
    }
    /**
     * Set instanceId value
     * @param string $instanceId
     * @return SearchCriteria
     */
    public function setInstanceId($instanceId = null)
    {
        // validation for constraint: string
        if (!is_null($instanceId) && !is_string($instanceId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($instanceId)), __LINE__);
        }
        $this->instanceId = $instanceId;
        return $this;
    }
    /**
     * Get endUserId value
     * @return string|null
     */
    public function getEndUserId()
    {
        return $this->endUserId;
    }
    /**
     * Set endUserId value
     * @param string $endUserId
     * @return SearchCriteria
     */
    public function setEndUserId($endUserId = null)
    {
        // validation for constraint: string
        if (!is_null($endUserId) && !is_string($endUserId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($endUserId)), __LINE__);
        }
        $this->endUserId = $endUserId;
        return $this;
    }
    /**
     * Get callingSearchSpaceName value
     * @return string|null
     */
    public function getCallingSearchSpaceName()
    {
        return $this->callingSearchSpaceName;
    }
    /**
     * Set callingSearchSpaceName value
     * @param string $callingSearchSpaceName
     * @return SearchCriteria
     */
    public function setCallingSearchSpaceName($callingSearchSpaceName = null)
    {
        // validation for constraint: string
        if (!is_null($callingSearchSpaceName) && !is_string($callingSearchSpaceName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($callingSearchSpaceName)), __LINE__);
        }
        $this->callingSearchSpaceName = $callingSearchSpaceName;
        return $this;
    }
    /**
     * Get devicePoolName value
     * @return string|null
     */
    public function getDevicePoolName()
    {
        return $this->devicePoolName;
    }
    /**
     * Set devicePoolName value
     * @param string $devicePoolName
     * @return SearchCriteria
     */
    public function setDevicePoolName($devicePoolName = null)
    {
        // validation for constraint: string
        if (!is_null($devicePoolName) && !is_string($devicePoolName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($devicePoolName)), __LINE__);
        }
        $this->devicePoolName = $devicePoolName;
        return $this;
    }
    /**
     * Get securityProfileName value
     * @return string|null
     */
    public function getSecurityProfileName()
    {
        return $this->securityProfileName;
    }
    /**
     * Set securityProfileName value
     * @param string $securityProfileName
     * @return SearchCriteria
     */
    public function setSecurityProfileName($securityProfileName = null)
    {
        // validation for constraint: string
        if (!is_null($securityProfileName) && !is_string($securityProfileName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($securityProfileName)), __LINE__);
        }
        $this->securityProfileName = $securityProfileName;
        return $this;
    }
    /**
     * Get dnPattern value
     * @return string|null
     */
    public function getDnPattern()
    {
        return $this->dnPattern;
    }
    /**
     * Set dnPattern value
     * @param string $dnPattern
     * @return SearchCriteria
     */
    public function setDnPattern($dnPattern = null)
    {
        // validation for constraint: string
        if (!is_null($dnPattern) && !is_string($dnPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dnPattern)), __LINE__);
        }
        $this->dnPattern = $dnPattern;
        return $this;
    }
    /**
     * Get serviceName value
     * @return string|null
     */
    public function getServiceName()
    {
        return $this->serviceName;
    }
    /**
     * Set serviceName value
     * @param string $serviceName
     * @return SearchCriteria
     */
    public function setServiceName($serviceName = null)
    {
        // validation for constraint: string
        if (!is_null($serviceName) && !is_string($serviceName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serviceName)), __LINE__);
        }
        $this->serviceName = $serviceName;
        return $this;
    }
    /**
     * Get serviceDescription value
     * @return string|null
     */
    public function getServiceDescription()
    {
        return $this->serviceDescription;
    }
    /**
     * Set serviceDescription value
     * @param string $serviceDescription
     * @return SearchCriteria
     */
    public function setServiceDescription($serviceDescription = null)
    {
        // validation for constraint: string
        if (!is_null($serviceDescription) && !is_string($serviceDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serviceDescription)), __LINE__);
        }
        $this->serviceDescription = $serviceDescription;
        return $this;
    }
    /**
     * Get dialPlanName value
     * @return string|null
     */
    public function getDialPlanName()
    {
        return $this->dialPlanName;
    }
    /**
     * Set dialPlanName value
     * @param string $dialPlanName
     * @return SearchCriteria
     */
    public function setDialPlanName($dialPlanName = null)
    {
        // validation for constraint: string
        if (!is_null($dialPlanName) && !is_string($dialPlanName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dialPlanName)), __LINE__);
        }
        $this->dialPlanName = $dialPlanName;
        return $this;
    }
    /**
     * Get routeFilterName value
     * @return string|null
     */
    public function getRouteFilterName()
    {
        return $this->routeFilterName;
    }
    /**
     * Set routeFilterName value
     * @param string $routeFilterName
     * @return SearchCriteria
     */
    public function setRouteFilterName($routeFilterName = null)
    {
        // validation for constraint: string
        if (!is_null($routeFilterName) && !is_string($routeFilterName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($routeFilterName)), __LINE__);
        }
        $this->routeFilterName = $routeFilterName;
        return $this;
    }
    /**
     * Get dnOrPatternIpv6 value
     * @return string|null
     */
    public function getDnOrPatternIpv6()
    {
        return $this->dnOrPatternIpv6;
    }
    /**
     * Set dnOrPatternIpv6 value
     * @param string $dnOrPatternIpv6
     * @return SearchCriteria
     */
    public function setDnOrPatternIpv6($dnOrPatternIpv6 = null)
    {
        // validation for constraint: string
        if (!is_null($dnOrPatternIpv6) && !is_string($dnOrPatternIpv6)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dnOrPatternIpv6)), __LINE__);
        }
        $this->dnOrPatternIpv6 = $dnOrPatternIpv6;
        return $this;
    }
    /**
     * Get numberBeginWith value
     * @return string|null
     */
    public function getNumberBeginWith()
    {
        return $this->numberBeginWith;
    }
    /**
     * Set numberBeginWith value
     * @param string $numberBeginWith
     * @return SearchCriteria
     */
    public function setNumberBeginWith($numberBeginWith = null)
    {
        // validation for constraint: string
        if (!is_null($numberBeginWith) && !is_string($numberBeginWith)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numberBeginWith)), __LINE__);
        }
        $this->numberBeginWith = $numberBeginWith;
        return $this;
    }
    /**
     * Get dialPattern value
     * @return string|null
     */
    public function getDialPattern()
    {
        return $this->dialPattern;
    }
    /**
     * Set dialPattern value
     * @param string $dialPattern
     * @return SearchCriteria
     */
    public function setDialPattern($dialPattern = null)
    {
        // validation for constraint: string
        if (!is_null($dialPattern) && !is_string($dialPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dialPattern)), __LINE__);
        }
        $this->dialPattern = $dialPattern;
        return $this;
    }
    /**
     * Get protocol value
     * @return string|null
     */
    public function getProtocol()
    {
        return $this->protocol;
    }
    /**
     * Set protocol value
     * @param string $protocol
     * @return SearchCriteria
     */
    public function setProtocol($protocol = null)
    {
        // validation for constraint: string
        if (!is_null($protocol) && !is_string($protocol)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($protocol)), __LINE__);
        }
        $this->protocol = $protocol;
        return $this;
    }
    /**
     * Get remoteDestinationProfileName value
     * @return string|null
     */
    public function getRemoteDestinationProfileName()
    {
        return $this->remoteDestinationProfileName;
    }
    /**
     * Set remoteDestinationProfileName value
     * @param string $remoteDestinationProfileName
     * @return SearchCriteria
     */
    public function setRemoteDestinationProfileName($remoteDestinationProfileName = null)
    {
        // validation for constraint: string
        if (!is_null($remoteDestinationProfileName) && !is_string($remoteDestinationProfileName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($remoteDestinationProfileName)), __LINE__);
        }
        $this->remoteDestinationProfileName = $remoteDestinationProfileName;
        return $this;
    }
    /**
     * Get dualModeDeviceName value
     * @return string|null
     */
    public function getDualModeDeviceName()
    {
        return $this->dualModeDeviceName;
    }
    /**
     * Set dualModeDeviceName value
     * @param string $dualModeDeviceName
     * @return SearchCriteria
     */
    public function setDualModeDeviceName($dualModeDeviceName = null)
    {
        // validation for constraint: string
        if (!is_null($dualModeDeviceName) && !is_string($dualModeDeviceName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dualModeDeviceName)), __LINE__);
        }
        $this->dualModeDeviceName = $dualModeDeviceName;
        return $this;
    }
    /**
     * Get dnOrPattern value
     * @return string|null
     */
    public function getDnOrPattern()
    {
        return $this->dnOrPattern;
    }
    /**
     * Set dnOrPattern value
     * @param string $dnOrPattern
     * @return SearchCriteria
     */
    public function setDnOrPattern($dnOrPattern = null)
    {
        // validation for constraint: string
        if (!is_null($dnOrPattern) && !is_string($dnOrPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dnOrPattern)), __LINE__);
        }
        $this->dnOrPattern = $dnOrPattern;
        return $this;
    }
    /**
     * Get partition value
     * @return string|null
     */
    public function getPartition()
    {
        return $this->partition;
    }
    /**
     * Set partition value
     * @param string $partition
     * @return SearchCriteria
     */
    public function setPartition($partition = null)
    {
        // validation for constraint: string
        if (!is_null($partition) && !is_string($partition)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($partition)), __LINE__);
        }
        $this->partition = $partition;
        return $this;
    }
    /**
     * Get type value
     * @return string|null
     */
    public function getType()
    {
        return $this->type;
    }
    /**
     * Set type value
     * @param string $type
     * @return SearchCriteria
     */
    public function setType($type = null)
    {
        // validation for constraint: string
        if (!is_null($type) && !is_string($type)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($type)), __LINE__);
        }
        $this->type = $type;
        return $this;
    }
    /**
     * Get hostedPattern value
     * @return string|null
     */
    public function getHostedPattern()
    {
        return $this->hostedPattern;
    }
    /**
     * Set hostedPattern value
     * @param string $hostedPattern
     * @return SearchCriteria
     */
    public function setHostedPattern($hostedPattern = null)
    {
        // validation for constraint: string
        if (!is_null($hostedPattern) && !is_string($hostedPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($hostedPattern)), __LINE__);
        }
        $this->hostedPattern = $hostedPattern;
        return $this;
    }
    /**
     * Get clusterId value
     * @return string|null
     */
    public function getClusterId()
    {
        return $this->clusterId;
    }
    /**
     * Set clusterId value
     * @param string $clusterId
     * @return SearchCriteria
     */
    public function setClusterId($clusterId = null)
    {
        // validation for constraint: string
        if (!is_null($clusterId) && !is_string($clusterId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($clusterId)), __LINE__);
        }
        $this->clusterId = $clusterId;
        return $this;
    }
    /**
     * Get ldapDn value
     * @return string|null
     */
    public function getLdapDn()
    {
        return $this->ldapDn;
    }
    /**
     * Set ldapDn value
     * @param string $ldapDn
     * @return SearchCriteria
     */
    public function setLdapDn($ldapDn = null)
    {
        // validation for constraint: string
        if (!is_null($ldapDn) && !is_string($ldapDn)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ldapDn)), __LINE__);
        }
        $this->ldapDn = $ldapDn;
        return $this;
    }
    /**
     * Get userSearchBase value
     * @return string|null
     */
    public function getUserSearchBase()
    {
        return $this->userSearchBase;
    }
    /**
     * Set userSearchBase value
     * @param string $userSearchBase
     * @return SearchCriteria
     */
    public function setUserSearchBase($userSearchBase = null)
    {
        // validation for constraint: string
        if (!is_null($userSearchBase) && !is_string($userSearchBase)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($userSearchBase)), __LINE__);
        }
        $this->userSearchBase = $userSearchBase;
        return $this;
    }
    /**
     * Get learnedPattern value
     * @return string|null
     */
    public function getLearnedPattern()
    {
        return $this->learnedPattern;
    }
    /**
     * Set learnedPattern value
     * @param string $learnedPattern
     * @return SearchCriteria
     */
    public function setLearnedPattern($learnedPattern = null)
    {
        // validation for constraint: string
        if (!is_null($learnedPattern) && !is_string($learnedPattern)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($learnedPattern)), __LINE__);
        }
        $this->learnedPattern = $learnedPattern;
        return $this;
    }
    /**
     * Get learnedPatternPrefix value
     * @return string|null
     */
    public function getLearnedPatternPrefix()
    {
        return $this->learnedPatternPrefix;
    }
    /**
     * Set learnedPatternPrefix value
     * @param string $learnedPatternPrefix
     * @return SearchCriteria
     */
    public function setLearnedPatternPrefix($learnedPatternPrefix = null)
    {
        // validation for constraint: string
        if (!is_null($learnedPatternPrefix) && !is_string($learnedPatternPrefix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($learnedPatternPrefix)), __LINE__);
        }
        $this->learnedPatternPrefix = $learnedPatternPrefix;
        return $this;
    }
    /**
     * Get callControlIdentity value
     * @return string|null
     */
    public function getCallControlIdentity()
    {
        return $this->callControlIdentity;
    }
    /**
     * Set callControlIdentity value
     * @param string $callControlIdentity
     * @return SearchCriteria
     */
    public function setCallControlIdentity($callControlIdentity = null)
    {
        // validation for constraint: string
        if (!is_null($callControlIdentity) && !is_string($callControlIdentity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($callControlIdentity)), __LINE__);
        }
        $this->callControlIdentity = $callControlIdentity;
        return $this;
    }
    /**
     * Get domain value
     * @return string|null
     */
    public function getDomain()
    {
        return $this->domain;
    }
    /**
     * Set domain value
     * @param string $domain
     * @return SearchCriteria
     */
    public function setDomain($domain = null)
    {
        // validation for constraint: string
        if (!is_null($domain) && !is_string($domain)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($domain)), __LINE__);
        }
        $this->domain = $domain;
        return $this;
    }
    /**
     * Get imeEnrolledPatternGroupName value
     * @return string|null
     */
    public function getImeEnrolledPatternGroupName()
    {
        return $this->imeEnrolledPatternGroupName;
    }
    /**
     * Set imeEnrolledPatternGroupName value
     * @param string $imeEnrolledPatternGroupName
     * @return SearchCriteria
     */
    public function setImeEnrolledPatternGroupName($imeEnrolledPatternGroupName = null)
    {
        // validation for constraint: string
        if (!is_null($imeEnrolledPatternGroupName) && !is_string($imeEnrolledPatternGroupName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($imeEnrolledPatternGroupName)), __LINE__);
        }
        $this->imeEnrolledPatternGroupName = $imeEnrolledPatternGroupName;
        return $this;
    }
    /**
     * Get imeExclusionNumberGroupName value
     * @return string|null
     */
    public function getImeExclusionNumberGroupName()
    {
        return $this->imeExclusionNumberGroupName;
    }
    /**
     * Set imeExclusionNumberGroupName value
     * @param string $imeExclusionNumberGroupName
     * @return SearchCriteria
     */
    public function setImeExclusionNumberGroupName($imeExclusionNumberGroupName = null)
    {
        // validation for constraint: string
        if (!is_null($imeExclusionNumberGroupName) && !is_string($imeExclusionNumberGroupName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($imeExclusionNumberGroupName)), __LINE__);
        }
        $this->imeExclusionNumberGroupName = $imeExclusionNumberGroupName;
        return $this;
    }
    /**
     * Get filter value
     * @return string|null
     */
    public function getFilter()
    {
        return $this->filter;
    }
    /**
     * Set filter value
     * @param string $filter
     * @return SearchCriteria
     */
    public function setFilter($filter = null)
    {
        // validation for constraint: string
        if (!is_null($filter) && !is_string($filter)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($filter)), __LINE__);
        }
        $this->filter = $filter;
        return $this;
    }
    /**
     * Get subjectName value
     * @return string|null
     */
    public function getSubjectName()
    {
        return $this->subjectName;
    }
    /**
     * Set subjectName value
     * @param string $subjectName
     * @return SearchCriteria
     */
    public function setSubjectName($subjectName = null)
    {
        // validation for constraint: string
        if (!is_null($subjectName) && !is_string($subjectName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($subjectName)), __LINE__);
        }
        $this->subjectName = $subjectName;
        return $this;
    }
    /**
     * Get issuerName value
     * @return string|null
     */
    public function getIssuerName()
    {
        return $this->issuerName;
    }
    /**
     * Set issuerName value
     * @param string $issuerName
     * @return SearchCriteria
     */
    public function setIssuerName($issuerName = null)
    {
        // validation for constraint: string
        if (!is_null($issuerName) && !is_string($issuerName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($issuerName)), __LINE__);
        }
        $this->issuerName = $issuerName;
        return $this;
    }
    /**
     * Get serialNumber value
     * @return string|null
     */
    public function getSerialNumber()
    {
        return $this->serialNumber;
    }
    /**
     * Set serialNumber value
     * @param string $serialNumber
     * @return SearchCriteria
     */
    public function setSerialNumber($serialNumber = null)
    {
        // validation for constraint: string
        if (!is_null($serialNumber) && !is_string($serialNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serialNumber)), __LINE__);
        }
        $this->serialNumber = $serialNumber;
        return $this;
    }
    /**
     * Get timeToLive value
     * @return string|null
     */
    public function getTimeToLive()
    {
        return $this->timeToLive;
    }
    /**
     * Set timeToLive value
     * @param string $timeToLive
     * @return SearchCriteria
     */
    public function setTimeToLive($timeToLive = null)
    {
        // validation for constraint: string
        if (!is_null($timeToLive) && !is_string($timeToLive)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($timeToLive)), __LINE__);
        }
        $this->timeToLive = $timeToLive;
        return $this;
    }
    /**
     * Get directorynumber value
     * @return string|null
     */
    public function getDirectorynumber()
    {
        return $this->directorynumber;
    }
    /**
     * Set directorynumber value
     * @param string $directorynumber
     * @return SearchCriteria
     */
    public function setDirectorynumber($directorynumber = null)
    {
        // validation for constraint: string
        if (!is_null($directorynumber) && !is_string($directorynumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($directorynumber)), __LINE__);
        }
        $this->directorynumber = $directorynumber;
        return $this;
    }
    /**
     * Get field value
     * @return string|null
     */
    public function getField()
    {
        return $this->field;
    }
    /**
     * Set field value
     * @param string $field
     * @return SearchCriteria
     */
    public function setField($field = null)
    {
        // validation for constraint: string
        if (!is_null($field) && !is_string($field)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($field)), __LINE__);
        }
        $this->field = $field;
        return $this;
    }
    /**
     * Get hostName value
     * @return string|null
     */
    public function getHostName()
    {
        return $this->hostName;
    }
    /**
     * Set hostName value
     * @param string $hostName
     * @return SearchCriteria
     */
    public function setHostName($hostName = null)
    {
        // validation for constraint: string
        if (!is_null($hostName) && !is_string($hostName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($hostName)), __LINE__);
        }
        $this->hostName = $hostName;
        return $this;
    }
    /**
     * Get description_1 value
     * @return description_1
     */
    public function getDescription_1()
    {
        return $this->Description;
    }
    /**
     * Set Description value
     * @param string $description
     * @return SearchCriteria
     */
    public function setDescription_1($description = null)
    {
        // validation for constraint: string
        if (!is_null($description) && !is_string($description)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($description)), __LINE__);
        }
        $this->Description = $description;
        return $this;
    }
    /**
     * Get routeString value
     * @return string|null
     */
    public function getRouteString()
    {
        return $this->routeString;
    }
    /**
     * Set routeString value
     * @param string $routeString
     * @return SearchCriteria
     */
    public function setRouteString($routeString = null)
    {
        // validation for constraint: string
        if (!is_null($routeString) && !is_string($routeString)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($routeString)), __LINE__);
        }
        $this->routeString = $routeString;
        return $this;
    }
    /**
     * Get ldapConfigurationName value
     * @return string|null
     */
    public function getLdapConfigurationName()
    {
        return $this->ldapConfigurationName;
    }
    /**
     * Set ldapConfigurationName value
     * @param string $ldapConfigurationName
     * @return SearchCriteria
     */
    public function setLdapConfigurationName($ldapConfigurationName = null)
    {
        // validation for constraint: string
        if (!is_null($ldapConfigurationName) && !is_string($ldapConfigurationName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ldapConfigurationName)), __LINE__);
        }
        $this->ldapConfigurationName = $ldapConfigurationName;
        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 SearchCriteria
     */
    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__;
    }
}
