Sanctions Search API: v2

<back to all web services

GetValidId

ValidID
The following routes are available for this service:
POST/validid/getGet a ValidID Search
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


// @DataContract
class Authentication implements JsonSerializable
{
    public function __construct(
        /** @description The API User ID provided by us when you signed up to use our API */
        // @DataMember
        // @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
        /** @var string */
        public string $apiUserId='',

        /** @description The API User Key provided by us when you signed up to use our API */
        // @DataMember
        // @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
        /** @var string */
        public string $apiUserKey=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['apiUserId'])) $this->apiUserId = $o['apiUserId'];
        if (isset($o['apiUserKey'])) $this->apiUserKey = $o['apiUserKey'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->apiUserId)) $o['apiUserId'] = $this->apiUserId;
        if (isset($this->apiUserKey)) $o['apiUserKey'] = $this->apiUserKey;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BaseRequest implements IBaseRequest, JsonSerializable
{
    public function __construct(
        /** @description The authentication credentials */
        // @DataMember
        // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
        /** @var Authentication|null */
        public ?Authentication $authentication=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['authentication'])) $this->authentication = JsonConverters::from('Authentication', $o['authentication']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->authentication)) $o['authentication'] = JsonConverters::to('Authentication', $this->authentication);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class ResponseError implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var string|null */
        public ?string $errorCode=null,

        // @DataMember(Order=2)
        /** @var string|null */
        public ?string $fieldName=null,

        // @DataMember(Order=3)
        /** @var string|null */
        public ?string $message=null,

        // @DataMember(Order=4)
        /** @var array<string,string>|null */
        public ?array $meta=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['errorCode'])) $this->errorCode = $o['errorCode'];
        if (isset($o['fieldName'])) $this->fieldName = $o['fieldName'];
        if (isset($o['message'])) $this->message = $o['message'];
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->errorCode)) $o['errorCode'] = $this->errorCode;
        if (isset($this->fieldName)) $o['fieldName'] = $this->fieldName;
        if (isset($this->message)) $o['message'] = $this->message;
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template array of ResponseError
 */
class ArrayOfResponseError extends \ArrayObject implements JsonSerializable
{
    public function __construct(ResponseError ...$items) {
        parent::__construct($items, \ArrayObject::STD_PROP_LIST);
    }
    
    /** @throws \Exception */
    public function append($value): void {
        if ($value instanceof ResponseError)
            parent::append($value);
        else
            throw new \Exception("Can only append a ResponseError to " . __CLASS__);
    }
    
    /** @throws Exception */
    public function fromMap($o): void {
        foreach ($o as $item) {
            $el = new ResponseError();
            $el->fromMap($item);
            $this->append($el);
        }
    }
    
    /** @throws Exception */
    public function jsonSerialize(): array {
        return parent::getArrayCopy();
    }
}

// @DataContract
class ResponseStatus implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var string|null */
        public ?string $errorCode=null,

        // @DataMember(Order=2)
        /** @var string|null */
        public ?string $message=null,

        // @DataMember(Order=3)
        /** @var string|null */
        public ?string $stackTrace=null,

        // @DataMember(Order=4)
        /** @var ArrayOfResponseError|null */
        public ?ArrayOfResponseError $errors=null,

        // @DataMember(Order=5)
        /** @var array<string,string>|null */
        public ?array $meta=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['errorCode'])) $this->errorCode = $o['errorCode'];
        if (isset($o['message'])) $this->message = $o['message'];
        if (isset($o['stackTrace'])) $this->stackTrace = $o['stackTrace'];
        if (isset($o['errors'])) $this->errors = JsonConverters::from('ArrayOfResponseError', $o['errors']);
        if (isset($o['meta'])) $this->meta = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','string']), $o['meta']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->errorCode)) $o['errorCode'] = $this->errorCode;
        if (isset($this->message)) $o['message'] = $this->message;
        if (isset($this->stackTrace)) $o['stackTrace'] = $this->stackTrace;
        if (isset($this->errors)) $o['errors'] = JsonConverters::to('ArrayOfResponseError', $this->errors);
        if (isset($this->meta)) $o['meta'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','string']), $this->meta);
        return empty($o) ? new class(){} : $o;
    }
}

class BaseResponse implements IBaseDataResponse, IHasResponseStatus, JsonSerializable
{
    public function __construct(
        /** @description The status of the response */
        // @ApiMember(Description="The status of the response")
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

class LinkedTo implements JsonSerializable
{
    public function __construct(
        /** @var int|null */
        public ?int $clientId=null,
        /** @var int|null */
        public ?int $id=null,
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $subtype=null,
        /** @var string|null */
        public ?string $status=null,
        /** @var string|null */
        public ?string $description=null,
        /** @var bool|null */
        public ?bool $isArchived=null,
        /** @var string|null */
        public ?string $name=null,
        /** @var DateTime|null */
        public ?DateTime $date=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['clientId'])) $this->clientId = $o['clientId'];
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['subtype'])) $this->subtype = $o['subtype'];
        if (isset($o['status'])) $this->status = $o['status'];
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['isArchived'])) $this->isArchived = $o['isArchived'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->clientId)) $o['clientId'] = $this->clientId;
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->subtype)) $o['subtype'] = $this->subtype;
        if (isset($this->status)) $o['status'] = $this->status;
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->isArchived)) $o['isArchived'] = $this->isArchived;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template array of LinkedTo
 */
class ArrayOfLinkedTo extends \ArrayObject implements JsonSerializable
{
    public function __construct(LinkedTo ...$items) {
        parent::__construct($items, \ArrayObject::STD_PROP_LIST);
    }
    
    /** @throws \Exception */
    public function append($value): void {
        if ($value instanceof LinkedTo)
            parent::append($value);
        else
            throw new \Exception("Can only append a LinkedTo to " . __CLASS__);
    }
    
    /** @throws Exception */
    public function fromMap($o): void {
        foreach ($o as $item) {
            $el = new LinkedTo();
            $el->fromMap($item);
            $this->append($el);
        }
    }
    
    /** @throws Exception */
    public function jsonSerialize(): array {
        return parent::getArrayCopy();
    }
}

class ValidIdBasicRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name1=null,
        /** @var string|null */
        public ?string $name2=null,
        /** @var string|null */
        public ?string $name3=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfBirth=null,
        /** @var string|null */
        public ?string $gender=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name1'])) $this->name1 = $o['name1'];
        if (isset($o['name2'])) $this->name2 = $o['name2'];
        if (isset($o['name3'])) $this->name3 = $o['name3'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = JsonConverters::from('DateTime', $o['dateOfBirth']);
        if (isset($o['gender'])) $this->gender = $o['gender'];
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name1)) $o['name1'] = $this->name1;
        if (isset($this->name2)) $o['name2'] = $this->name2;
        if (isset($this->name3)) $o['name3'] = $this->name3;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = JsonConverters::to('DateTime', $this->dateOfBirth);
        if (isset($this->gender)) $o['gender'] = $this->gender;
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPassportRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $passport1=null,
        /** @var string|null */
        public ?string $passport2=null,
        /** @var string|null */
        public ?string $passport3=null,
        /** @var string|null */
        public ?string $passport4=null,
        /** @var string|null */
        public ?string $passport5=null,
        /** @var string|null */
        public ?string $passport6=null,
        /** @var string|null */
        public ?string $passport7=null,
        /** @var string|null */
        public ?string $passport8=null,
        /** @var string|null */
        public ?string $passportMrzLineOne1=null,
        /** @var string|null */
        public ?string $passportMrzLineOne2=null,
        /** @var string|null */
        public ?string $passportMrzLineOne3=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['passport1'])) $this->passport1 = $o['passport1'];
        if (isset($o['passport2'])) $this->passport2 = $o['passport2'];
        if (isset($o['passport3'])) $this->passport3 = $o['passport3'];
        if (isset($o['passport4'])) $this->passport4 = $o['passport4'];
        if (isset($o['passport5'])) $this->passport5 = $o['passport5'];
        if (isset($o['passport6'])) $this->passport6 = $o['passport6'];
        if (isset($o['passport7'])) $this->passport7 = $o['passport7'];
        if (isset($o['passport8'])) $this->passport8 = $o['passport8'];
        if (isset($o['passportMrzLineOne1'])) $this->passportMrzLineOne1 = $o['passportMrzLineOne1'];
        if (isset($o['passportMrzLineOne2'])) $this->passportMrzLineOne2 = $o['passportMrzLineOne2'];
        if (isset($o['passportMrzLineOne3'])) $this->passportMrzLineOne3 = $o['passportMrzLineOne3'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->passport1)) $o['passport1'] = $this->passport1;
        if (isset($this->passport2)) $o['passport2'] = $this->passport2;
        if (isset($this->passport3)) $o['passport3'] = $this->passport3;
        if (isset($this->passport4)) $o['passport4'] = $this->passport4;
        if (isset($this->passport5)) $o['passport5'] = $this->passport5;
        if (isset($this->passport6)) $o['passport6'] = $this->passport6;
        if (isset($this->passport7)) $o['passport7'] = $this->passport7;
        if (isset($this->passport8)) $o['passport8'] = $this->passport8;
        if (isset($this->passportMrzLineOne1)) $o['passportMrzLineOne1'] = $this->passportMrzLineOne1;
        if (isset($this->passportMrzLineOne2)) $o['passportMrzLineOne2'] = $this->passportMrzLineOne2;
        if (isset($this->passportMrzLineOne3)) $o['passportMrzLineOne3'] = $this->passportMrzLineOne3;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdDrivingRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $driving1=null,
        /** @var string|null */
        public ?string $driving2=null,
        /** @var string|null */
        public ?string $driving3=null,
        /** @var string|null */
        public ?string $drivingPostcode=null,
        /** @var string|null */
        public ?string $drivingMailSort=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['driving1'])) $this->driving1 = $o['driving1'];
        if (isset($o['driving2'])) $this->driving2 = $o['driving2'];
        if (isset($o['driving3'])) $this->driving3 = $o['driving3'];
        if (isset($o['drivingPostcode'])) $this->drivingPostcode = $o['drivingPostcode'];
        if (isset($o['drivingMailSort'])) $this->drivingMailSort = $o['drivingMailSort'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->driving1)) $o['driving1'] = $this->driving1;
        if (isset($this->driving2)) $o['driving2'] = $this->driving2;
        if (isset($this->driving3)) $o['driving3'] = $this->driving3;
        if (isset($this->drivingPostcode)) $o['drivingPostcode'] = $this->drivingPostcode;
        if (isset($this->drivingMailSort)) $o['drivingMailSort'] = $this->drivingMailSort;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdBirthRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $birthForeName=null,
        /** @var string|null */
        public ?string $birthMiddleName=null,
        /** @var string|null */
        public ?string $birthSurname=null,
        /** @var string|null */
        public ?string $birthMaidenName=null,
        /** @var string|null */
        public ?string $birthDistrict=null,
        /** @var string|null */
        public ?string $birthCertIssueNum=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['birthForeName'])) $this->birthForeName = $o['birthForeName'];
        if (isset($o['birthMiddleName'])) $this->birthMiddleName = $o['birthMiddleName'];
        if (isset($o['birthSurname'])) $this->birthSurname = $o['birthSurname'];
        if (isset($o['birthMaidenName'])) $this->birthMaidenName = $o['birthMaidenName'];
        if (isset($o['birthDistrict'])) $this->birthDistrict = $o['birthDistrict'];
        if (isset($o['birthCertIssueNum'])) $this->birthCertIssueNum = $o['birthCertIssueNum'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->birthForeName)) $o['birthForeName'] = $this->birthForeName;
        if (isset($this->birthMiddleName)) $o['birthMiddleName'] = $this->birthMiddleName;
        if (isset($this->birthSurname)) $o['birthSurname'] = $this->birthSurname;
        if (isset($this->birthMaidenName)) $o['birthMaidenName'] = $this->birthMaidenName;
        if (isset($this->birthDistrict)) $o['birthDistrict'] = $this->birthDistrict;
        if (isset($this->birthCertIssueNum)) $o['birthCertIssueNum'] = $this->birthCertIssueNum;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdNIRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $niNumber=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['niNumber'])) $this->niNumber = $o['niNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->niNumber)) $o['niNumber'] = $this->niNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdNHSRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $nhsNumber=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['nhsNumber'])) $this->nhsNumber = $o['nhsNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->nhsNumber)) $o['nhsNumber'] = $this->nhsNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdElectricityRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $mpanNumber1=null,
        /** @var string|null */
        public ?string $mpanNumber2=null,
        /** @var string|null */
        public ?string $mpanNumber3=null,
        /** @var string|null */
        public ?string $mpanNumber4=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['mpanNumber1'])) $this->mpanNumber1 = $o['mpanNumber1'];
        if (isset($o['mpanNumber2'])) $this->mpanNumber2 = $o['mpanNumber2'];
        if (isset($o['mpanNumber3'])) $this->mpanNumber3 = $o['mpanNumber3'];
        if (isset($o['mpanNumber4'])) $this->mpanNumber4 = $o['mpanNumber4'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->mpanNumber1)) $o['mpanNumber1'] = $this->mpanNumber1;
        if (isset($this->mpanNumber2)) $o['mpanNumber2'] = $this->mpanNumber2;
        if (isset($this->mpanNumber3)) $o['mpanNumber3'] = $this->mpanNumber3;
        if (isset($this->mpanNumber4)) $o['mpanNumber4'] = $this->mpanNumber4;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdBankRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $bankSortCode=null,
        /** @var string|null */
        public ?string $bankAccountNumber=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['bankSortCode'])) $this->bankSortCode = $o['bankSortCode'];
        if (isset($o['bankAccountNumber'])) $this->bankAccountNumber = $o['bankAccountNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->bankSortCode)) $o['bankSortCode'] = $this->bankSortCode;
        if (isset($this->bankAccountNumber)) $o['bankAccountNumber'] = $this->bankAccountNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCardNumberRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $cardNumber=null,
        /** @var string|null */
        public ?string $cardType=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['cardNumber'])) $this->cardNumber = $o['cardNumber'];
        if (isset($o['cardType'])) $this->cardType = $o['cardType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->cardNumber)) $o['cardNumber'] = $this->cardNumber;
        if (isset($this->cardType)) $o['cardType'] = $this->cardType;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdTravelVisaRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $travelVisa1=null,
        /** @var string|null */
        public ?string $travelVisa2=null,
        /** @var string|null */
        public ?string $travelVisa3=null,
        /** @var string|null */
        public ?string $travelVisa4=null,
        /** @var string|null */
        public ?string $travelVisa5=null,
        /** @var string|null */
        public ?string $travelVisa6=null,
        /** @var string|null */
        public ?string $travelVisa7=null,
        /** @var string|null */
        public ?string $travelVisa8=null,
        /** @var string|null */
        public ?string $travelVisa9=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['travelVisa1'])) $this->travelVisa1 = $o['travelVisa1'];
        if (isset($o['travelVisa2'])) $this->travelVisa2 = $o['travelVisa2'];
        if (isset($o['travelVisa3'])) $this->travelVisa3 = $o['travelVisa3'];
        if (isset($o['travelVisa4'])) $this->travelVisa4 = $o['travelVisa4'];
        if (isset($o['travelVisa5'])) $this->travelVisa5 = $o['travelVisa5'];
        if (isset($o['travelVisa6'])) $this->travelVisa6 = $o['travelVisa6'];
        if (isset($o['travelVisa7'])) $this->travelVisa7 = $o['travelVisa7'];
        if (isset($o['travelVisa8'])) $this->travelVisa8 = $o['travelVisa8'];
        if (isset($o['travelVisa9'])) $this->travelVisa9 = $o['travelVisa9'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->travelVisa1)) $o['travelVisa1'] = $this->travelVisa1;
        if (isset($this->travelVisa2)) $o['travelVisa2'] = $this->travelVisa2;
        if (isset($this->travelVisa3)) $o['travelVisa3'] = $this->travelVisa3;
        if (isset($this->travelVisa4)) $o['travelVisa4'] = $this->travelVisa4;
        if (isset($this->travelVisa5)) $o['travelVisa5'] = $this->travelVisa5;
        if (isset($this->travelVisa6)) $o['travelVisa6'] = $this->travelVisa6;
        if (isset($this->travelVisa7)) $o['travelVisa7'] = $this->travelVisa7;
        if (isset($this->travelVisa8)) $o['travelVisa8'] = $this->travelVisa8;
        if (isset($this->travelVisa9)) $o['travelVisa9'] = $this->travelVisa9;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdIdCardRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $idCard1=null,
        /** @var string|null */
        public ?string $idCard2=null,
        /** @var string|null */
        public ?string $idCard3=null,
        /** @var string|null */
        public ?string $idCard4=null,
        /** @var string|null */
        public ?string $idCard5=null,
        /** @var string|null */
        public ?string $idCard6=null,
        /** @var string|null */
        public ?string $idCard7=null,
        /** @var string|null */
        public ?string $idCard8=null,
        /** @var string|null */
        public ?string $idCard9=null,
        /** @var string|null */
        public ?string $idCard10=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['idCard1'])) $this->idCard1 = $o['idCard1'];
        if (isset($o['idCard2'])) $this->idCard2 = $o['idCard2'];
        if (isset($o['idCard3'])) $this->idCard3 = $o['idCard3'];
        if (isset($o['idCard4'])) $this->idCard4 = $o['idCard4'];
        if (isset($o['idCard5'])) $this->idCard5 = $o['idCard5'];
        if (isset($o['idCard6'])) $this->idCard6 = $o['idCard6'];
        if (isset($o['idCard7'])) $this->idCard7 = $o['idCard7'];
        if (isset($o['idCard8'])) $this->idCard8 = $o['idCard8'];
        if (isset($o['idCard9'])) $this->idCard9 = $o['idCard9'];
        if (isset($o['idCard10'])) $this->idCard10 = $o['idCard10'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->idCard1)) $o['idCard1'] = $this->idCard1;
        if (isset($this->idCard2)) $o['idCard2'] = $this->idCard2;
        if (isset($this->idCard3)) $o['idCard3'] = $this->idCard3;
        if (isset($this->idCard4)) $o['idCard4'] = $this->idCard4;
        if (isset($this->idCard5)) $o['idCard5'] = $this->idCard5;
        if (isset($this->idCard6)) $o['idCard6'] = $this->idCard6;
        if (isset($this->idCard7)) $o['idCard7'] = $this->idCard7;
        if (isset($this->idCard8)) $o['idCard8'] = $this->idCard8;
        if (isset($this->idCard9)) $o['idCard9'] = $this->idCard9;
        if (isset($this->idCard10)) $o['idCard10'] = $this->idCard10;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPollNumberRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $pollNumber=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['pollNumber'])) $this->pollNumber = $o['pollNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->pollNumber)) $o['pollNumber'] = $this->pollNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdMarriageRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $forename=null,
        /** @var string|null */
        public ?string $surname=null,
        /** @var string|null */
        public ?string $partnerForename=null,
        /** @var string|null */
        public ?string $partnerSurname=null,
        /** @var string|null */
        public ?string $date=null,
        /** @var string|null */
        public ?string $district=null,
        /** @var string|null */
        public ?string $certIssueNum=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['forename'])) $this->forename = $o['forename'];
        if (isset($o['surname'])) $this->surname = $o['surname'];
        if (isset($o['partnerForename'])) $this->partnerForename = $o['partnerForename'];
        if (isset($o['partnerSurname'])) $this->partnerSurname = $o['partnerSurname'];
        if (isset($o['date'])) $this->date = $o['date'];
        if (isset($o['district'])) $this->district = $o['district'];
        if (isset($o['certIssueNum'])) $this->certIssueNum = $o['certIssueNum'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->forename)) $o['forename'] = $this->forename;
        if (isset($this->surname)) $o['surname'] = $this->surname;
        if (isset($this->partnerForename)) $o['partnerForename'] = $this->partnerForename;
        if (isset($this->partnerSurname)) $o['partnerSurname'] = $this->partnerSurname;
        if (isset($this->date)) $o['date'] = $this->date;
        if (isset($this->district)) $o['district'] = $this->district;
        if (isset($this->certIssueNum)) $o['certIssueNum'] = $this->certIssueNum;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdResultSummary implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $summaryStatus=null,
        /** @var int|null */
        public ?int $summaryId=null,
        /** @var string|null */
        public ?string $summaryReference=null,
        /** @var int|null */
        public ?int $summarySmartscore=null,
        /** @var string|null */
        public ?string $summaryResultText=null,
        /** @var string|null */
        public ?string $noticeOfCorrection=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['summaryStatus'])) $this->summaryStatus = $o['summaryStatus'];
        if (isset($o['summaryId'])) $this->summaryId = $o['summaryId'];
        if (isset($o['summaryReference'])) $this->summaryReference = $o['summaryReference'];
        if (isset($o['summarySmartscore'])) $this->summarySmartscore = $o['summarySmartscore'];
        if (isset($o['summaryResultText'])) $this->summaryResultText = $o['summaryResultText'];
        if (isset($o['noticeOfCorrection'])) $this->noticeOfCorrection = $o['noticeOfCorrection'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->summaryStatus)) $o['summaryStatus'] = $this->summaryStatus;
        if (isset($this->summaryId)) $o['summaryId'] = $this->summaryId;
        if (isset($this->summaryReference)) $o['summaryReference'] = $this->summaryReference;
        if (isset($this->summarySmartscore)) $o['summarySmartscore'] = $this->summarySmartscore;
        if (isset($this->summaryResultText)) $o['summaryResultText'] = $this->summaryResultText;
        if (isset($this->noticeOfCorrection)) $o['noticeOfCorrection'] = $this->noticeOfCorrection;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdResultErrors implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $service=null,
        /** @var string|null */
        public ?string $details=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['service'])) $this->service = $o['service'];
        if (isset($o['details'])) $this->details = $o['details'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->service)) $o['service'] = $this->service;
        if (isset($this->details)) $o['details'] = $this->details;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdDrivingResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $drivingLicenseResultFlag=null,
        /** @var bool|null */
        public ?bool $drivingLicenseMailSortFlag=null,
        /** @var bool|null */
        public ?bool $drivingLicenseMiddleNameWarning=null,
        /** @var string|null */
        public ?string $drivingLicenceErrors=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['drivingLicenseResultFlag'])) $this->drivingLicenseResultFlag = $o['drivingLicenseResultFlag'];
        if (isset($o['drivingLicenseMailSortFlag'])) $this->drivingLicenseMailSortFlag = $o['drivingLicenseMailSortFlag'];
        if (isset($o['drivingLicenseMiddleNameWarning'])) $this->drivingLicenseMiddleNameWarning = $o['drivingLicenseMiddleNameWarning'];
        if (isset($o['drivingLicenceErrors'])) $this->drivingLicenceErrors = $o['drivingLicenceErrors'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->drivingLicenseResultFlag)) $o['drivingLicenseResultFlag'] = $this->drivingLicenseResultFlag;
        if (isset($this->drivingLicenseMailSortFlag)) $o['drivingLicenseMailSortFlag'] = $this->drivingLicenseMailSortFlag;
        if (isset($this->drivingLicenseMiddleNameWarning)) $o['drivingLicenseMiddleNameWarning'] = $this->drivingLicenseMiddleNameWarning;
        if (isset($this->drivingLicenceErrors)) $o['drivingLicenceErrors'] = $this->drivingLicenceErrors;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdDOBResult implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $dobTracesmartCount=0,
        /** @var int */
        public int $dobExperianCount=0,
        /** @var int */
        public int $dobEquifaxCount=0,
        /** @var bool|null */
        public ?bool $dobEquifaxSpecified=null,
        /** @var string|null */
        public ?string $dobEquifaxStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['dobTracesmartCount'])) $this->dobTracesmartCount = $o['dobTracesmartCount'];
        if (isset($o['dobExperianCount'])) $this->dobExperianCount = $o['dobExperianCount'];
        if (isset($o['dobEquifaxCount'])) $this->dobEquifaxCount = $o['dobEquifaxCount'];
        if (isset($o['dobEquifaxSpecified'])) $this->dobEquifaxSpecified = $o['dobEquifaxSpecified'];
        if (isset($o['dobEquifaxStatus'])) $this->dobEquifaxStatus = $o['dobEquifaxStatus'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->dobTracesmartCount)) $o['dobTracesmartCount'] = $this->dobTracesmartCount;
        if (isset($this->dobExperianCount)) $o['dobExperianCount'] = $this->dobExperianCount;
        if (isset($this->dobEquifaxCount)) $o['dobEquifaxCount'] = $this->dobEquifaxCount;
        if (isset($this->dobEquifaxSpecified)) $o['dobEquifaxSpecified'] = $this->dobEquifaxSpecified;
        if (isset($this->dobEquifaxStatus)) $o['dobEquifaxStatus'] = $this->dobEquifaxStatus;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdNHSResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $nhsResultFlag=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['nhsResultFlag'])) $this->nhsResultFlag = $o['nhsResultFlag'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->nhsResultFlag)) $o['nhsResultFlag'] = $this->nhsResultFlag;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdNIResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $niResultFlag=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['niResultFlag'])) $this->niResultFlag = $o['niResultFlag'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->niResultFlag)) $o['niResultFlag'] = $this->niResultFlag;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPassportResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $passportMRZLine1Valid=null,
        /** @var bool|null */
        public ?bool $passportMRZValid=null,
        /** @var bool|null */
        public ?bool $passportDOBValid=null,
        /** @var bool|null */
        public ?bool $passportGenderValid=null,
        /** @var bool|null */
        public ?bool $passportExpiryValid=null,
        /** @var bool|null */
        public ?bool $passportNameValid=null,
        /** @var string|null */
        public ?string $passportErrors=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['passportMRZLine1Valid'])) $this->passportMRZLine1Valid = $o['passportMRZLine1Valid'];
        if (isset($o['passportMRZValid'])) $this->passportMRZValid = $o['passportMRZValid'];
        if (isset($o['passportDOBValid'])) $this->passportDOBValid = $o['passportDOBValid'];
        if (isset($o['passportGenderValid'])) $this->passportGenderValid = $o['passportGenderValid'];
        if (isset($o['passportExpiryValid'])) $this->passportExpiryValid = $o['passportExpiryValid'];
        if (isset($o['passportNameValid'])) $this->passportNameValid = $o['passportNameValid'];
        if (isset($o['passportErrors'])) $this->passportErrors = $o['passportErrors'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->passportMRZLine1Valid)) $o['passportMRZLine1Valid'] = $this->passportMRZLine1Valid;
        if (isset($this->passportMRZValid)) $o['passportMRZValid'] = $this->passportMRZValid;
        if (isset($this->passportDOBValid)) $o['passportDOBValid'] = $this->passportDOBValid;
        if (isset($this->passportGenderValid)) $o['passportGenderValid'] = $this->passportGenderValid;
        if (isset($this->passportExpiryValid)) $o['passportExpiryValid'] = $this->passportExpiryValid;
        if (isset($this->passportNameValid)) $o['passportNameValid'] = $this->passportNameValid;
        if (isset($this->passportErrors)) $o['passportErrors'] = $this->passportErrors;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPassportChipResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $contentAuthenticity=null,
        /** @var bool|null */
        public ?bool $chipAuthenticity=null,
        /** @var bool|null */
        public ?bool $chipDataToImageDataMatch=null,
        /** @var bool|null */
        public ?bool $chipPhotoToImagePhotoMatch=null,
        /** @var string|null */
        public ?string $passportChipMrzLineOne=null,
        /** @var string|null */
        public ?string $passportChipMrzLineTwo=null,
        /** @var bool|null */
        public ?bool $passportChipMrzLineOneValid=null,
        /** @var bool|null */
        public ?bool $passportChipMrzLineTwoValid=null,
        /** @var bool|null */
        public ?bool $passportChipDOBValid=null,
        /** @var bool|null */
        public ?bool $passportChipGenderValid=null,
        /** @var bool|null */
        public ?bool $passportChipExpiryValid=null,
        /** @var bool|null */
        public ?bool $passportChipNameValid=null,
        /** @var string|null */
        public ?string $passportChipErrors=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['contentAuthenticity'])) $this->contentAuthenticity = $o['contentAuthenticity'];
        if (isset($o['chipAuthenticity'])) $this->chipAuthenticity = $o['chipAuthenticity'];
        if (isset($o['chipDataToImageDataMatch'])) $this->chipDataToImageDataMatch = $o['chipDataToImageDataMatch'];
        if (isset($o['chipPhotoToImagePhotoMatch'])) $this->chipPhotoToImagePhotoMatch = $o['chipPhotoToImagePhotoMatch'];
        if (isset($o['passportChipMrzLineOne'])) $this->passportChipMrzLineOne = $o['passportChipMrzLineOne'];
        if (isset($o['passportChipMrzLineTwo'])) $this->passportChipMrzLineTwo = $o['passportChipMrzLineTwo'];
        if (isset($o['passportChipMrzLineOneValid'])) $this->passportChipMrzLineOneValid = $o['passportChipMrzLineOneValid'];
        if (isset($o['passportChipMrzLineTwoValid'])) $this->passportChipMrzLineTwoValid = $o['passportChipMrzLineTwoValid'];
        if (isset($o['passportChipDOBValid'])) $this->passportChipDOBValid = $o['passportChipDOBValid'];
        if (isset($o['passportChipGenderValid'])) $this->passportChipGenderValid = $o['passportChipGenderValid'];
        if (isset($o['passportChipExpiryValid'])) $this->passportChipExpiryValid = $o['passportChipExpiryValid'];
        if (isset($o['passportChipNameValid'])) $this->passportChipNameValid = $o['passportChipNameValid'];
        if (isset($o['passportChipErrors'])) $this->passportChipErrors = $o['passportChipErrors'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->contentAuthenticity)) $o['contentAuthenticity'] = $this->contentAuthenticity;
        if (isset($this->chipAuthenticity)) $o['chipAuthenticity'] = $this->chipAuthenticity;
        if (isset($this->chipDataToImageDataMatch)) $o['chipDataToImageDataMatch'] = $this->chipDataToImageDataMatch;
        if (isset($this->chipPhotoToImagePhotoMatch)) $o['chipPhotoToImagePhotoMatch'] = $this->chipPhotoToImagePhotoMatch;
        if (isset($this->passportChipMrzLineOne)) $o['passportChipMrzLineOne'] = $this->passportChipMrzLineOne;
        if (isset($this->passportChipMrzLineTwo)) $o['passportChipMrzLineTwo'] = $this->passportChipMrzLineTwo;
        if (isset($this->passportChipMrzLineOneValid)) $o['passportChipMrzLineOneValid'] = $this->passportChipMrzLineOneValid;
        if (isset($this->passportChipMrzLineTwoValid)) $o['passportChipMrzLineTwoValid'] = $this->passportChipMrzLineTwoValid;
        if (isset($this->passportChipDOBValid)) $o['passportChipDOBValid'] = $this->passportChipDOBValid;
        if (isset($this->passportChipGenderValid)) $o['passportChipGenderValid'] = $this->passportChipGenderValid;
        if (isset($this->passportChipExpiryValid)) $o['passportChipExpiryValid'] = $this->passportChipExpiryValid;
        if (isset($this->passportChipNameValid)) $o['passportChipNameValid'] = $this->passportChipNameValid;
        if (isset($this->passportChipErrors)) $o['passportChipErrors'] = $this->passportChipErrors;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdBirthResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $birthResultFlag=null,
        /** @var string|null */
        public ?string $birthName=null,
        /** @var string|null */
        public ?string $birthMaidenName=null,
        /** @var string|null */
        public ?string $birthRegDate=null,
        /** @var string|null */
        public ?string $birthRegDistrict=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['birthResultFlag'])) $this->birthResultFlag = $o['birthResultFlag'];
        if (isset($o['birthName'])) $this->birthName = $o['birthName'];
        if (isset($o['birthMaidenName'])) $this->birthMaidenName = $o['birthMaidenName'];
        if (isset($o['birthRegDate'])) $this->birthRegDate = $o['birthRegDate'];
        if (isset($o['birthRegDistrict'])) $this->birthRegDistrict = $o['birthRegDistrict'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->birthResultFlag)) $o['birthResultFlag'] = $this->birthResultFlag;
        if (isset($this->birthName)) $o['birthName'] = $this->birthName;
        if (isset($this->birthMaidenName)) $o['birthMaidenName'] = $this->birthMaidenName;
        if (isset($this->birthRegDate)) $o['birthRegDate'] = $this->birthRegDate;
        if (isset($this->birthRegDistrict)) $o['birthRegDistrict'] = $this->birthRegDistrict;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdElectricityResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $mpanResultFlag=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['mpanResultFlag'])) $this->mpanResultFlag = $o['mpanResultFlag'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->mpanResultFlag)) $o['mpanResultFlag'] = $this->mpanResultFlag;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdBankResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $bankAccountResultFlag=null,
        /** @var string|null */
        public ?string $bankAccountName=null,
        /** @var string|null */
        public ?string $bankAccountBranch=null,
        /** @var bool|null */
        public ?bool $bankAccountBACSPayments=null,
        /** @var bool|null */
        public ?bool $bankAccountCHAPSPayments=null,
        /** @var bool|null */
        public ?bool $bankAccountFasterPayments=null,
        /** @var bool|null */
        public ?bool $bankAccountDirectDebits=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['bankAccountResultFlag'])) $this->bankAccountResultFlag = $o['bankAccountResultFlag'];
        if (isset($o['bankAccountName'])) $this->bankAccountName = $o['bankAccountName'];
        if (isset($o['bankAccountBranch'])) $this->bankAccountBranch = $o['bankAccountBranch'];
        if (isset($o['bankAccountBACSPayments'])) $this->bankAccountBACSPayments = $o['bankAccountBACSPayments'];
        if (isset($o['bankAccountCHAPSPayments'])) $this->bankAccountCHAPSPayments = $o['bankAccountCHAPSPayments'];
        if (isset($o['bankAccountFasterPayments'])) $this->bankAccountFasterPayments = $o['bankAccountFasterPayments'];
        if (isset($o['bankAccountDirectDebits'])) $this->bankAccountDirectDebits = $o['bankAccountDirectDebits'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->bankAccountResultFlag)) $o['bankAccountResultFlag'] = $this->bankAccountResultFlag;
        if (isset($this->bankAccountName)) $o['bankAccountName'] = $this->bankAccountName;
        if (isset($this->bankAccountBranch)) $o['bankAccountBranch'] = $this->bankAccountBranch;
        if (isset($this->bankAccountBACSPayments)) $o['bankAccountBACSPayments'] = $this->bankAccountBACSPayments;
        if (isset($this->bankAccountCHAPSPayments)) $o['bankAccountCHAPSPayments'] = $this->bankAccountCHAPSPayments;
        if (isset($this->bankAccountFasterPayments)) $o['bankAccountFasterPayments'] = $this->bankAccountFasterPayments;
        if (isset($this->bankAccountDirectDebits)) $o['bankAccountDirectDebits'] = $this->bankAccountDirectDebits;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCardNumberResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $cardNumberValid=null,
        /** @var bool|null */
        public ?bool $cardTypeValid=null,
        /** @var string|null */
        public ?string $cardTypeConfirm=null,
        /** @var string|null */
        public ?string $cardFraudCheck=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['cardNumberValid'])) $this->cardNumberValid = $o['cardNumberValid'];
        if (isset($o['cardTypeValid'])) $this->cardTypeValid = $o['cardTypeValid'];
        if (isset($o['cardTypeConfirm'])) $this->cardTypeConfirm = $o['cardTypeConfirm'];
        if (isset($o['cardFraudCheck'])) $this->cardFraudCheck = $o['cardFraudCheck'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->cardNumberValid)) $o['cardNumberValid'] = $this->cardNumberValid;
        if (isset($this->cardTypeValid)) $o['cardTypeValid'] = $this->cardTypeValid;
        if (isset($this->cardTypeConfirm)) $o['cardTypeConfirm'] = $this->cardTypeConfirm;
        if (isset($this->cardFraudCheck)) $o['cardFraudCheck'] = $this->cardFraudCheck;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCreditActiveResult implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $creditActiveAccounts=0,
        /** @var int */
        public int $creditActiveLenders=0,
        /** @var string|null */
        public ?string $creditActiveCIFAS=null,
        /** @var int */
        public int $creditActiveCAIS=0,
        /** @var int */
        public int $creditActiveInsightAccounts=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['creditActiveAccounts'])) $this->creditActiveAccounts = $o['creditActiveAccounts'];
        if (isset($o['creditActiveLenders'])) $this->creditActiveLenders = $o['creditActiveLenders'];
        if (isset($o['creditActiveCIFAS'])) $this->creditActiveCIFAS = $o['creditActiveCIFAS'];
        if (isset($o['creditActiveCAIS'])) $this->creditActiveCAIS = $o['creditActiveCAIS'];
        if (isset($o['creditActiveInsightAccounts'])) $this->creditActiveInsightAccounts = $o['creditActiveInsightAccounts'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->creditActiveAccounts)) $o['creditActiveAccounts'] = $this->creditActiveAccounts;
        if (isset($this->creditActiveLenders)) $o['creditActiveLenders'] = $this->creditActiveLenders;
        if (isset($this->creditActiveCIFAS)) $o['creditActiveCIFAS'] = $this->creditActiveCIFAS;
        if (isset($this->creditActiveCAIS)) $o['creditActiveCAIS'] = $this->creditActiveCAIS;
        if (isset($this->creditActiveInsightAccounts)) $o['creditActiveInsightAccounts'] = $this->creditActiveInsightAccounts;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdAddressOccupantsResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var DateTime|null */
        public ?DateTime $recency=null,
        /** @var string|null */
        public ?string $residency=null,
        /** @var string|null */
        public ?string $telephone=null,
        /** @var string|null */
        public ?string $telephoneName=null,
        /** @var string|null */
        public ?string $source=null,
        /** @var string|null */
        public ?string $residencyScore=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['recency'])) $this->recency = JsonConverters::from('DateTime', $o['recency']);
        if (isset($o['residency'])) $this->residency = $o['residency'];
        if (isset($o['telephone'])) $this->telephone = $o['telephone'];
        if (isset($o['telephoneName'])) $this->telephoneName = $o['telephoneName'];
        if (isset($o['source'])) $this->source = $o['source'];
        if (isset($o['residencyScore'])) $this->residencyScore = $o['residencyScore'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->recency)) $o['recency'] = JsonConverters::to('DateTime', $this->recency);
        if (isset($this->residency)) $o['residency'] = $this->residency;
        if (isset($this->telephone)) $o['telephone'] = $this->telephone;
        if (isset($this->telephoneName)) $o['telephoneName'] = $this->telephoneName;
        if (isset($this->source)) $o['source'] = $this->source;
        if (isset($this->residencyScore)) $o['residencyScore'] = $this->residencyScore;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdAddressSaleResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $tenure=null,
        /** @var DateTime|null */
        public ?DateTime $date=null,
        /** @var string|null */
        public ?string $price=null,
        /** @var string|null */
        public ?string $silhouette=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['tenure'])) $this->tenure = $o['tenure'];
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
        if (isset($o['price'])) $this->price = $o['price'];
        if (isset($o['silhouette'])) $this->silhouette = $o['silhouette'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->tenure)) $o['tenure'] = $this->tenure;
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        if (isset($this->price)) $o['price'] = $this->price;
        if (isset($this->silhouette)) $o['silhouette'] = $this->silhouette;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdAddressResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $addressForename=null,
        /** @var string|null */
        public ?string $addressMiddleName=null,
        /** @var string|null */
        public ?string $addressSurname=null,
        /** @var string|null */
        public ?string $addressMatchType=null,
        /** @var DateTime|null */
        public ?DateTime $addressDOB=null,
        /** @var bool|null */
        public ?bool $addressForenameAppended=null,
        /** @var bool|null */
        public ?bool $addressMiddleNameAppended=null,
        /** @var bool|null */
        public ?bool $addressDOBAppended=null,
        /** @var string|null */
        public ?string $addressTelephone=null,
        /** @var string|null */
        public ?string $addressTelephoneName=null,
        /** @var string|null */
        public ?string $addressGoneAway=null,
        /** @var string|null */
        public ?string $addressSource=null,
        /** @var bool|null */
        public ?bool $credivaFullER=null,
        /** @var bool|null */
        public ?bool $addressValidated=null,
        /** @var DateTime|null */
        public ?DateTime $addressRecency=null,
        /** @var array<ValidIdAddressOccupantsResult>|null */
        public ?array $occupants=null,
        /** @var array<ValidIdAddressSaleResult>|null */
        public ?array $sales=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['addressForename'])) $this->addressForename = $o['addressForename'];
        if (isset($o['addressMiddleName'])) $this->addressMiddleName = $o['addressMiddleName'];
        if (isset($o['addressSurname'])) $this->addressSurname = $o['addressSurname'];
        if (isset($o['addressMatchType'])) $this->addressMatchType = $o['addressMatchType'];
        if (isset($o['addressDOB'])) $this->addressDOB = JsonConverters::from('DateTime', $o['addressDOB']);
        if (isset($o['addressForenameAppended'])) $this->addressForenameAppended = $o['addressForenameAppended'];
        if (isset($o['addressMiddleNameAppended'])) $this->addressMiddleNameAppended = $o['addressMiddleNameAppended'];
        if (isset($o['addressDOBAppended'])) $this->addressDOBAppended = $o['addressDOBAppended'];
        if (isset($o['addressTelephone'])) $this->addressTelephone = $o['addressTelephone'];
        if (isset($o['addressTelephoneName'])) $this->addressTelephoneName = $o['addressTelephoneName'];
        if (isset($o['addressGoneAway'])) $this->addressGoneAway = $o['addressGoneAway'];
        if (isset($o['addressSource'])) $this->addressSource = $o['addressSource'];
        if (isset($o['credivaFullER'])) $this->credivaFullER = $o['credivaFullER'];
        if (isset($o['addressValidated'])) $this->addressValidated = $o['addressValidated'];
        if (isset($o['addressRecency'])) $this->addressRecency = JsonConverters::from('DateTime', $o['addressRecency']);
        if (isset($o['occupants'])) $this->occupants = JsonConverters::fromArray('ValidIdAddressOccupantsResult', $o['occupants']);
        if (isset($o['sales'])) $this->sales = JsonConverters::fromArray('ValidIdAddressSaleResult', $o['sales']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->addressForename)) $o['addressForename'] = $this->addressForename;
        if (isset($this->addressMiddleName)) $o['addressMiddleName'] = $this->addressMiddleName;
        if (isset($this->addressSurname)) $o['addressSurname'] = $this->addressSurname;
        if (isset($this->addressMatchType)) $o['addressMatchType'] = $this->addressMatchType;
        if (isset($this->addressDOB)) $o['addressDOB'] = JsonConverters::to('DateTime', $this->addressDOB);
        if (isset($this->addressForenameAppended)) $o['addressForenameAppended'] = $this->addressForenameAppended;
        if (isset($this->addressMiddleNameAppended)) $o['addressMiddleNameAppended'] = $this->addressMiddleNameAppended;
        if (isset($this->addressDOBAppended)) $o['addressDOBAppended'] = $this->addressDOBAppended;
        if (isset($this->addressTelephone)) $o['addressTelephone'] = $this->addressTelephone;
        if (isset($this->addressTelephoneName)) $o['addressTelephoneName'] = $this->addressTelephoneName;
        if (isset($this->addressGoneAway)) $o['addressGoneAway'] = $this->addressGoneAway;
        if (isset($this->addressSource)) $o['addressSource'] = $this->addressSource;
        if (isset($this->credivaFullER)) $o['credivaFullER'] = $this->credivaFullER;
        if (isset($this->addressValidated)) $o['addressValidated'] = $this->addressValidated;
        if (isset($this->addressRecency)) $o['addressRecency'] = JsonConverters::to('DateTime', $this->addressRecency);
        if (isset($this->occupants)) $o['occupants'] = JsonConverters::toArray('ValidIdAddressOccupantsResult', $this->occupants);
        if (isset($this->sales)) $o['sales'] = JsonConverters::toArray('ValidIdAddressSaleResult', $this->sales);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdSmartlinkAddressResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $forename=null,
        /** @var string|null */
        public ?string $middleName=null,
        /** @var string|null */
        public ?string $surname=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $deliveryPointSuffix=null,
        /** @var DateTime|null */
        public ?DateTime $recency=null,
        /** @var string|null */
        public ?string $residency=null,
        /** @var string|null */
        public ?string $linkSource=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['forename'])) $this->forename = $o['forename'];
        if (isset($o['middleName'])) $this->middleName = $o['middleName'];
        if (isset($o['surname'])) $this->surname = $o['surname'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['deliveryPointSuffix'])) $this->deliveryPointSuffix = $o['deliveryPointSuffix'];
        if (isset($o['recency'])) $this->recency = JsonConverters::from('DateTime', $o['recency']);
        if (isset($o['residency'])) $this->residency = $o['residency'];
        if (isset($o['linkSource'])) $this->linkSource = $o['linkSource'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->forename)) $o['forename'] = $this->forename;
        if (isset($this->middleName)) $o['middleName'] = $this->middleName;
        if (isset($this->surname)) $o['surname'] = $this->surname;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->deliveryPointSuffix)) $o['deliveryPointSuffix'] = $this->deliveryPointSuffix;
        if (isset($this->recency)) $o['recency'] = JsonConverters::to('DateTime', $this->recency);
        if (isset($this->residency)) $o['residency'] = $this->residency;
        if (isset($this->linkSource)) $o['linkSource'] = $this->linkSource;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdSmartlinkResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdSmartlinkAddressResult>|null */
        public ?array $addresses=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('ValidIdSmartlinkAddressResult', $o['addresses']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('ValidIdSmartlinkAddressResult', $this->addresses);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdDeathscreenDeathResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $forename=null,
        /** @var string|null */
        public ?string $secondName=null,
        /** @var string|null */
        public ?string $thirdName=null,
        /** @var string|null */
        public ?string $fourthName=null,
        /** @var string|null */
        public ?string $surname=null,
        /** @var string|null */
        public ?string $district=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var DateTime|null */
        public ?DateTime $dod=null,
        /** @var string|null */
        public ?string $dor=null,
        /** @var string|null */
        public ?string $volumeNo=null,
        /** @var string|null */
        public ?string $distNo=null,
        /** @var string|null */
        public ?string $pageNo=null,
        /** @var string|null */
        public ?string $regNo=null,
        /** @var string|null */
        public ?string $entryNo=null,
        /** @var string|null */
        public ?string $placeOfBirth=null,
        /** @var string|null */
        public ?string $maidenName=null,
        /** @var string|null */
        public ?string $groReference=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $matchType=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['forename'])) $this->forename = $o['forename'];
        if (isset($o['secondName'])) $this->secondName = $o['secondName'];
        if (isset($o['thirdName'])) $this->thirdName = $o['thirdName'];
        if (isset($o['fourthName'])) $this->fourthName = $o['fourthName'];
        if (isset($o['surname'])) $this->surname = $o['surname'];
        if (isset($o['district'])) $this->district = $o['district'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['dod'])) $this->dod = JsonConverters::from('DateTime', $o['dod']);
        if (isset($o['dor'])) $this->dor = $o['dor'];
        if (isset($o['volumeNo'])) $this->volumeNo = $o['volumeNo'];
        if (isset($o['distNo'])) $this->distNo = $o['distNo'];
        if (isset($o['pageNo'])) $this->pageNo = $o['pageNo'];
        if (isset($o['regNo'])) $this->regNo = $o['regNo'];
        if (isset($o['entryNo'])) $this->entryNo = $o['entryNo'];
        if (isset($o['placeOfBirth'])) $this->placeOfBirth = $o['placeOfBirth'];
        if (isset($o['maidenName'])) $this->maidenName = $o['maidenName'];
        if (isset($o['groReference'])) $this->groReference = $o['groReference'];
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['matchType'])) $this->matchType = $o['matchType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->forename)) $o['forename'] = $this->forename;
        if (isset($this->secondName)) $o['secondName'] = $this->secondName;
        if (isset($this->thirdName)) $o['thirdName'] = $this->thirdName;
        if (isset($this->fourthName)) $o['fourthName'] = $this->fourthName;
        if (isset($this->surname)) $o['surname'] = $this->surname;
        if (isset($this->district)) $o['district'] = $this->district;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->dod)) $o['dod'] = JsonConverters::to('DateTime', $this->dod);
        if (isset($this->dor)) $o['dor'] = $this->dor;
        if (isset($this->volumeNo)) $o['volumeNo'] = $this->volumeNo;
        if (isset($this->distNo)) $o['distNo'] = $this->distNo;
        if (isset($this->pageNo)) $o['pageNo'] = $this->pageNo;
        if (isset($this->regNo)) $o['regNo'] = $this->regNo;
        if (isset($this->entryNo)) $o['entryNo'] = $this->entryNo;
        if (isset($this->placeOfBirth)) $o['placeOfBirth'] = $this->placeOfBirth;
        if (isset($this->maidenName)) $o['maidenName'] = $this->maidenName;
        if (isset($this->groReference)) $o['groReference'] = $this->groReference;
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->matchType)) $o['matchType'] = $this->matchType;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdDeathscreenResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdDeathscreenDeathResult>|null */
        public ?array $deaths=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['deaths'])) $this->deaths = JsonConverters::fromArray('ValidIdDeathscreenDeathResult', $o['deaths']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->deaths)) $o['deaths'] = JsonConverters::toArray('ValidIdDeathscreenDeathResult', $this->deaths);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPEPPersonAddressResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $deliveryPointSuffix=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['deliveryPointSuffix'])) $this->deliveryPointSuffix = $o['deliveryPointSuffix'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->deliveryPointSuffix)) $o['deliveryPointSuffix'] = $this->deliveryPointSuffix;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPEPPersonAliasResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPEPPersonPositionResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $position=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['position'])) $this->position = $o['position'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->position)) $o['position'] = $this->position;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPEPPersonResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var DateTime|null */
        public ?DateTime $recency=null,
        /** @var string|null */
        public ?string $dob=null,
        /** @var array<ValidIdPEPPersonAddressResult>|null */
        public ?array $addresses=null,
        /** @var array<ValidIdPEPPersonAliasResult>|null */
        public ?array $aliases=null,
        /** @var array<ValidIdPEPPersonPositionResult>|null */
        public ?array $positions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['recency'])) $this->recency = JsonConverters::from('DateTime', $o['recency']);
        if (isset($o['dob'])) $this->dob = $o['dob'];
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('ValidIdPEPPersonAddressResult', $o['addresses']);
        if (isset($o['aliases'])) $this->aliases = JsonConverters::fromArray('ValidIdPEPPersonAliasResult', $o['aliases']);
        if (isset($o['positions'])) $this->positions = JsonConverters::fromArray('ValidIdPEPPersonPositionResult', $o['positions']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->recency)) $o['recency'] = JsonConverters::to('DateTime', $this->recency);
        if (isset($this->dob)) $o['dob'] = $this->dob;
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('ValidIdPEPPersonAddressResult', $this->addresses);
        if (isset($this->aliases)) $o['aliases'] = JsonConverters::toArray('ValidIdPEPPersonAliasResult', $this->aliases);
        if (isset($this->positions)) $o['positions'] = JsonConverters::toArray('ValidIdPEPPersonPositionResult', $this->positions);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPEPResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdPEPPersonResult>|null */
        public ?array $pepPersons=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['pepPersons'])) $this->pepPersons = JsonConverters::fromArray('ValidIdPEPPersonResult', $o['pepPersons']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->pepPersons)) $o['pepPersons'] = JsonConverters::toArray('ValidIdPEPPersonResult', $this->pepPersons);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCCJCaseResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var DateTime|null */
        public ?DateTime $judgementDate=null,
        /** @var string|null */
        public ?string $judgementType=null,
        /** @var string|null */
        public ?string $amount=null,
        /** @var string|null */
        public ?string $caseNo=null,
        /** @var string|null */
        public ?string $courtName=null,
        /** @var DateTime|null */
        public ?DateTime $dateEnd=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['judgementDate'])) $this->judgementDate = JsonConverters::from('DateTime', $o['judgementDate']);
        if (isset($o['judgementType'])) $this->judgementType = $o['judgementType'];
        if (isset($o['amount'])) $this->amount = $o['amount'];
        if (isset($o['caseNo'])) $this->caseNo = $o['caseNo'];
        if (isset($o['courtName'])) $this->courtName = $o['courtName'];
        if (isset($o['dateEnd'])) $this->dateEnd = JsonConverters::from('DateTime', $o['dateEnd']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->judgementDate)) $o['judgementDate'] = JsonConverters::to('DateTime', $this->judgementDate);
        if (isset($this->judgementType)) $o['judgementType'] = $this->judgementType;
        if (isset($this->amount)) $o['amount'] = $this->amount;
        if (isset($this->caseNo)) $o['caseNo'] = $this->caseNo;
        if (isset($this->courtName)) $o['courtName'] = $this->courtName;
        if (isset($this->dateEnd)) $o['dateEnd'] = JsonConverters::to('DateTime', $this->dateEnd);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCCJResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdCCJCaseResult>|null */
        public ?array $ccJs=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ccJs'])) $this->ccJs = JsonConverters::fromArray('ValidIdCCJCaseResult', $o['ccJs']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ccJs)) $o['ccJs'] = JsonConverters::toArray('ValidIdCCJCaseResult', $this->ccJs);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdInsolvencyCaseResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $caseType=null,
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $caseNo=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $deliveryPointSuffix=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var string|null */
        public ?string $court=null,
        /** @var DateTime|null */
        public ?DateTime $startDate=null,
        /** @var string|null */
        public ?string $status=null,
        /** @var string|null */
        public ?string $occupation=null,
        /** @var string|null */
        public ?string $aliases=null,
        /** @var string|null */
        public ?string $description=null,
        /** @var string|null */
        public ?string $serviceOffice=null,
        /** @var string|null */
        public ?string $telephoneNumber=null,
        /** @var string|null */
        public ?string $tradingNames=null,
        /** @var string|null */
        public ?string $debtTotal=null,
        /** @var string|null */
        public ?string $assetTotal=null,
        /** @var string|null */
        public ?string $previousAddress1=null,
        /** @var string|null */
        public ?string $previousAddress2=null,
        /** @var string|null */
        public ?string $previousAddress3=null,
        /** @var string|null */
        public ?string $previousAddress4=null,
        /** @var string|null */
        public ?string $previousAddress5=null,
        /** @var string|null */
        public ?string $previousPostCode=null,
        /** @var string|null */
        public ?string $previousDeliveryPointSuffix=null,
        /** @var DateTime|null */
        public ?DateTime $presentationDate=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['caseType'])) $this->caseType = $o['caseType'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['caseNo'])) $this->caseNo = $o['caseNo'];
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['deliveryPointSuffix'])) $this->deliveryPointSuffix = $o['deliveryPointSuffix'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['court'])) $this->court = $o['court'];
        if (isset($o['startDate'])) $this->startDate = JsonConverters::from('DateTime', $o['startDate']);
        if (isset($o['status'])) $this->status = $o['status'];
        if (isset($o['occupation'])) $this->occupation = $o['occupation'];
        if (isset($o['aliases'])) $this->aliases = $o['aliases'];
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['serviceOffice'])) $this->serviceOffice = $o['serviceOffice'];
        if (isset($o['telephoneNumber'])) $this->telephoneNumber = $o['telephoneNumber'];
        if (isset($o['tradingNames'])) $this->tradingNames = $o['tradingNames'];
        if (isset($o['debtTotal'])) $this->debtTotal = $o['debtTotal'];
        if (isset($o['assetTotal'])) $this->assetTotal = $o['assetTotal'];
        if (isset($o['previousAddress1'])) $this->previousAddress1 = $o['previousAddress1'];
        if (isset($o['previousAddress2'])) $this->previousAddress2 = $o['previousAddress2'];
        if (isset($o['previousAddress3'])) $this->previousAddress3 = $o['previousAddress3'];
        if (isset($o['previousAddress4'])) $this->previousAddress4 = $o['previousAddress4'];
        if (isset($o['previousAddress5'])) $this->previousAddress5 = $o['previousAddress5'];
        if (isset($o['previousPostCode'])) $this->previousPostCode = $o['previousPostCode'];
        if (isset($o['previousDeliveryPointSuffix'])) $this->previousDeliveryPointSuffix = $o['previousDeliveryPointSuffix'];
        if (isset($o['presentationDate'])) $this->presentationDate = JsonConverters::from('DateTime', $o['presentationDate']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->caseType)) $o['caseType'] = $this->caseType;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->caseNo)) $o['caseNo'] = $this->caseNo;
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->deliveryPointSuffix)) $o['deliveryPointSuffix'] = $this->deliveryPointSuffix;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->court)) $o['court'] = $this->court;
        if (isset($this->startDate)) $o['startDate'] = JsonConverters::to('DateTime', $this->startDate);
        if (isset($this->status)) $o['status'] = $this->status;
        if (isset($this->occupation)) $o['occupation'] = $this->occupation;
        if (isset($this->aliases)) $o['aliases'] = $this->aliases;
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->serviceOffice)) $o['serviceOffice'] = $this->serviceOffice;
        if (isset($this->telephoneNumber)) $o['telephoneNumber'] = $this->telephoneNumber;
        if (isset($this->tradingNames)) $o['tradingNames'] = $this->tradingNames;
        if (isset($this->debtTotal)) $o['debtTotal'] = $this->debtTotal;
        if (isset($this->assetTotal)) $o['assetTotal'] = $this->assetTotal;
        if (isset($this->previousAddress1)) $o['previousAddress1'] = $this->previousAddress1;
        if (isset($this->previousAddress2)) $o['previousAddress2'] = $this->previousAddress2;
        if (isset($this->previousAddress3)) $o['previousAddress3'] = $this->previousAddress3;
        if (isset($this->previousAddress4)) $o['previousAddress4'] = $this->previousAddress4;
        if (isset($this->previousAddress5)) $o['previousAddress5'] = $this->previousAddress5;
        if (isset($this->previousPostCode)) $o['previousPostCode'] = $this->previousPostCode;
        if (isset($this->previousDeliveryPointSuffix)) $o['previousDeliveryPointSuffix'] = $this->previousDeliveryPointSuffix;
        if (isset($this->presentationDate)) $o['presentationDate'] = JsonConverters::to('DateTime', $this->presentationDate);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdInsolvencyResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdInsolvencyCaseResult>|null */
        public ?array $insolvencies=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['insolvencies'])) $this->insolvencies = JsonConverters::fromArray('ValidIdInsolvencyCaseResult', $o['insolvencies']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->insolvencies)) $o['insolvencies'] = JsonConverters::toArray('ValidIdInsolvencyCaseResult', $this->insolvencies);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdTravelVisaResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $visaMRZValid=null,
        /** @var bool|null */
        public ?bool $visaInDate=null,
        /** @var bool|null */
        public ?bool $visaUKResidenceValid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['visaMRZValid'])) $this->visaMRZValid = $o['visaMRZValid'];
        if (isset($o['visaInDate'])) $this->visaInDate = $o['visaInDate'];
        if (isset($o['visaUKResidenceValid'])) $this->visaUKResidenceValid = $o['visaUKResidenceValid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->visaMRZValid)) $o['visaMRZValid'] = $this->visaMRZValid;
        if (isset($this->visaInDate)) $o['visaInDate'] = $this->visaInDate;
        if (isset($this->visaUKResidenceValid)) $o['visaUKResidenceValid'] = $this->visaUKResidenceValid;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdIdCardResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $idCardMRZValid=null,
        /** @var bool|null */
        public ?bool $idCardDOBValid=null,
        /** @var bool|null */
        public ?bool $idCardGenderValid=null,
        /** @var bool|null */
        public ?bool $idCardExpiryValid=null,
        /** @var bool|null */
        public ?bool $idCardCountryValid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['idCardMRZValid'])) $this->idCardMRZValid = $o['idCardMRZValid'];
        if (isset($o['idCardDOBValid'])) $this->idCardDOBValid = $o['idCardDOBValid'];
        if (isset($o['idCardGenderValid'])) $this->idCardGenderValid = $o['idCardGenderValid'];
        if (isset($o['idCardExpiryValid'])) $this->idCardExpiryValid = $o['idCardExpiryValid'];
        if (isset($o['idCardCountryValid'])) $this->idCardCountryValid = $o['idCardCountryValid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->idCardMRZValid)) $o['idCardMRZValid'] = $this->idCardMRZValid;
        if (isset($this->idCardDOBValid)) $o['idCardDOBValid'] = $this->idCardDOBValid;
        if (isset($this->idCardGenderValid)) $o['idCardGenderValid'] = $this->idCardGenderValid;
        if (isset($this->idCardExpiryValid)) $o['idCardExpiryValid'] = $this->idCardExpiryValid;
        if (isset($this->idCardCountryValid)) $o['idCardCountryValid'] = $this->idCardCountryValid;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdBankLiveResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $bankLiveSortcode=null,
        /** @var string|null */
        public ?string $bankLiveNumber=null,
        /** @var string|null */
        public ?string $bankLiveName=null,
        /** @var string|null */
        public ?string $bankLiveAddress=null,
        /** @var string|null */
        public ?string $bankLiveStatus=null,
        /** @var string|null */
        public ?string $bankLiveError=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['bankLiveSortcode'])) $this->bankLiveSortcode = $o['bankLiveSortcode'];
        if (isset($o['bankLiveNumber'])) $this->bankLiveNumber = $o['bankLiveNumber'];
        if (isset($o['bankLiveName'])) $this->bankLiveName = $o['bankLiveName'];
        if (isset($o['bankLiveAddress'])) $this->bankLiveAddress = $o['bankLiveAddress'];
        if (isset($o['bankLiveStatus'])) $this->bankLiveStatus = $o['bankLiveStatus'];
        if (isset($o['bankLiveError'])) $this->bankLiveError = $o['bankLiveError'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->bankLiveSortcode)) $o['bankLiveSortcode'] = $this->bankLiveSortcode;
        if (isset($this->bankLiveNumber)) $o['bankLiveNumber'] = $this->bankLiveNumber;
        if (isset($this->bankLiveName)) $o['bankLiveName'] = $this->bankLiveName;
        if (isset($this->bankLiveAddress)) $o['bankLiveAddress'] = $this->bankLiveAddress;
        if (isset($this->bankLiveStatus)) $o['bankLiveStatus'] = $this->bankLiveStatus;
        if (isset($this->bankLiveError)) $o['bankLiveError'] = $this->bankLiveError;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCompanyAppointmentResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $address=null,
        /** @var DateTime|null */
        public ?DateTime $dob=null,
        /** @var string|null */
        public ?string $occupation=null,
        /** @var string|null */
        public ?string $nationality=null,
        /** @var DateTime|null */
        public ?DateTime $appointmentDate=null,
        /** @var string|null */
        public ?string $appointmentType=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['address'])) $this->address = $o['address'];
        if (isset($o['dob'])) $this->dob = JsonConverters::from('DateTime', $o['dob']);
        if (isset($o['occupation'])) $this->occupation = $o['occupation'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
        if (isset($o['appointmentDate'])) $this->appointmentDate = JsonConverters::from('DateTime', $o['appointmentDate']);
        if (isset($o['appointmentType'])) $this->appointmentType = $o['appointmentType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->address)) $o['address'] = $this->address;
        if (isset($this->dob)) $o['dob'] = JsonConverters::to('DateTime', $this->dob);
        if (isset($this->occupation)) $o['occupation'] = $this->occupation;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        if (isset($this->appointmentDate)) $o['appointmentDate'] = JsonConverters::to('DateTime', $this->appointmentDate);
        if (isset($this->appointmentType)) $o['appointmentType'] = $this->appointmentType;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCompanyDirectorshipResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $matchType=null,
        /** @var DateTime|null */
        public ?DateTime $dateAppointed=null,
        /** @var string|null */
        public ?string $companyRegNo=null,
        /** @var string|null */
        public ?string $companyName=null,
        /** @var string|null */
        public ?string $registeredOffice=null,
        /** @var array<ValidIdCompanyAppointmentResult>|null */
        public ?array $appointments=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['matchType'])) $this->matchType = $o['matchType'];
        if (isset($o['dateAppointed'])) $this->dateAppointed = JsonConverters::from('DateTime', $o['dateAppointed']);
        if (isset($o['companyRegNo'])) $this->companyRegNo = $o['companyRegNo'];
        if (isset($o['companyName'])) $this->companyName = $o['companyName'];
        if (isset($o['registeredOffice'])) $this->registeredOffice = $o['registeredOffice'];
        if (isset($o['appointments'])) $this->appointments = JsonConverters::fromArray('ValidIdCompanyAppointmentResult', $o['appointments']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->matchType)) $o['matchType'] = $this->matchType;
        if (isset($this->dateAppointed)) $o['dateAppointed'] = JsonConverters::to('DateTime', $this->dateAppointed);
        if (isset($this->companyRegNo)) $o['companyRegNo'] = $this->companyRegNo;
        if (isset($this->companyName)) $o['companyName'] = $this->companyName;
        if (isset($this->registeredOffice)) $o['registeredOffice'] = $this->registeredOffice;
        if (isset($this->appointments)) $o['appointments'] = JsonConverters::toArray('ValidIdCompanyAppointmentResult', $this->appointments);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdCompanyDirectorResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdCompanyDirectorshipResult>|null */
        public ?array $directorships=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['directorships'])) $this->directorships = JsonConverters::fromArray('ValidIdCompanyDirectorshipResult', $o['directorships']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->directorships)) $o['directorships'] = JsonConverters::toArray('ValidIdCompanyDirectorshipResult', $this->directorships);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdSearchActivityHistoryResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $businesActivity=null,
        /** @var DateTime|null */
        public ?DateTime $date=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['businesActivity'])) $this->businesActivity = $o['businesActivity'];
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->businesActivity)) $o['businesActivity'] = $this->businesActivity;
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdSearchActivityItemResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $profileType=null,
        /** @var int|null */
        public ?int $oneMonth=null,
        /** @var int|null */
        public ?int $threeMonth=null,
        /** @var int|null */
        public ?int $sixMonth=null,
        /** @var array<ValidIdSearchActivityHistoryResult>|null */
        public ?array $history=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['profileType'])) $this->profileType = $o['profileType'];
        if (isset($o['oneMonth'])) $this->oneMonth = $o['oneMonth'];
        if (isset($o['threeMonth'])) $this->threeMonth = $o['threeMonth'];
        if (isset($o['sixMonth'])) $this->sixMonth = $o['sixMonth'];
        if (isset($o['history'])) $this->history = JsonConverters::fromArray('ValidIdSearchActivityHistoryResult', $o['history']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->profileType)) $o['profileType'] = $this->profileType;
        if (isset($this->oneMonth)) $o['oneMonth'] = $this->oneMonth;
        if (isset($this->threeMonth)) $o['threeMonth'] = $this->threeMonth;
        if (isset($this->sixMonth)) $o['sixMonth'] = $this->sixMonth;
        if (isset($this->history)) $o['history'] = JsonConverters::toArray('ValidIdSearchActivityHistoryResult', $this->history);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdSearchActivityResult implements JsonSerializable
{
    public function __construct(
        /** @var array<ValidIdSearchActivityItemResult>|null */
        public ?array $activity=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['activity'])) $this->activity = JsonConverters::fromArray('ValidIdSearchActivityItemResult', $o['activity']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->activity)) $o['activity'] = JsonConverters::toArray('ValidIdSearchActivityItemResult', $this->activity);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPRSResult implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $matchResult=null,
        /** @var string|null */
        public ?string $propertyOwnership=null,
        /** @var string|null */
        public ?string $titleNumber=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['matchResult'])) $this->matchResult = $o['matchResult'];
        if (isset($o['propertyOwnership'])) $this->propertyOwnership = $o['propertyOwnership'];
        if (isset($o['titleNumber'])) $this->titleNumber = $o['titleNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->matchResult)) $o['matchResult'] = $this->matchResult;
        if (isset($this->propertyOwnership)) $o['propertyOwnership'] = $this->propertyOwnership;
        if (isset($this->titleNumber)) $o['titleNumber'] = $this->titleNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdPollNumberResult implements JsonSerializable
{
    public function __construct(
        /** @var int|null */
        public ?int $pollNumberMatch=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['pollNumberMatch'])) $this->pollNumberMatch = $o['pollNumberMatch'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->pollNumberMatch)) $o['pollNumberMatch'] = $this->pollNumberMatch;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdOnlineProfileResult implements JsonSerializable
{
    public function __construct(
        /** @var int|null */
        public ?int $onlineProfileStatus=null,
        /** @var string|null */
        public ?string $onlineTwitterUsername=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth1=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth2=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth3=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth4=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth5=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth6=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth7=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth8=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth9=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth10=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth11=null,
        /** @var int|null */
        public ?int $onlineTwitterActivityMonth12=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['onlineProfileStatus'])) $this->onlineProfileStatus = $o['onlineProfileStatus'];
        if (isset($o['onlineTwitterUsername'])) $this->onlineTwitterUsername = $o['onlineTwitterUsername'];
        if (isset($o['onlineTwitterActivityMonth1'])) $this->onlineTwitterActivityMonth1 = $o['onlineTwitterActivityMonth1'];
        if (isset($o['onlineTwitterActivityMonth2'])) $this->onlineTwitterActivityMonth2 = $o['onlineTwitterActivityMonth2'];
        if (isset($o['onlineTwitterActivityMonth3'])) $this->onlineTwitterActivityMonth3 = $o['onlineTwitterActivityMonth3'];
        if (isset($o['onlineTwitterActivityMonth4'])) $this->onlineTwitterActivityMonth4 = $o['onlineTwitterActivityMonth4'];
        if (isset($o['onlineTwitterActivityMonth5'])) $this->onlineTwitterActivityMonth5 = $o['onlineTwitterActivityMonth5'];
        if (isset($o['onlineTwitterActivityMonth6'])) $this->onlineTwitterActivityMonth6 = $o['onlineTwitterActivityMonth6'];
        if (isset($o['onlineTwitterActivityMonth7'])) $this->onlineTwitterActivityMonth7 = $o['onlineTwitterActivityMonth7'];
        if (isset($o['onlineTwitterActivityMonth8'])) $this->onlineTwitterActivityMonth8 = $o['onlineTwitterActivityMonth8'];
        if (isset($o['onlineTwitterActivityMonth9'])) $this->onlineTwitterActivityMonth9 = $o['onlineTwitterActivityMonth9'];
        if (isset($o['onlineTwitterActivityMonth10'])) $this->onlineTwitterActivityMonth10 = $o['onlineTwitterActivityMonth10'];
        if (isset($o['onlineTwitterActivityMonth11'])) $this->onlineTwitterActivityMonth11 = $o['onlineTwitterActivityMonth11'];
        if (isset($o['onlineTwitterActivityMonth12'])) $this->onlineTwitterActivityMonth12 = $o['onlineTwitterActivityMonth12'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->onlineProfileStatus)) $o['onlineProfileStatus'] = $this->onlineProfileStatus;
        if (isset($this->onlineTwitterUsername)) $o['onlineTwitterUsername'] = $this->onlineTwitterUsername;
        if (isset($this->onlineTwitterActivityMonth1)) $o['onlineTwitterActivityMonth1'] = $this->onlineTwitterActivityMonth1;
        if (isset($this->onlineTwitterActivityMonth2)) $o['onlineTwitterActivityMonth2'] = $this->onlineTwitterActivityMonth2;
        if (isset($this->onlineTwitterActivityMonth3)) $o['onlineTwitterActivityMonth3'] = $this->onlineTwitterActivityMonth3;
        if (isset($this->onlineTwitterActivityMonth4)) $o['onlineTwitterActivityMonth4'] = $this->onlineTwitterActivityMonth4;
        if (isset($this->onlineTwitterActivityMonth5)) $o['onlineTwitterActivityMonth5'] = $this->onlineTwitterActivityMonth5;
        if (isset($this->onlineTwitterActivityMonth6)) $o['onlineTwitterActivityMonth6'] = $this->onlineTwitterActivityMonth6;
        if (isset($this->onlineTwitterActivityMonth7)) $o['onlineTwitterActivityMonth7'] = $this->onlineTwitterActivityMonth7;
        if (isset($this->onlineTwitterActivityMonth8)) $o['onlineTwitterActivityMonth8'] = $this->onlineTwitterActivityMonth8;
        if (isset($this->onlineTwitterActivityMonth9)) $o['onlineTwitterActivityMonth9'] = $this->onlineTwitterActivityMonth9;
        if (isset($this->onlineTwitterActivityMonth10)) $o['onlineTwitterActivityMonth10'] = $this->onlineTwitterActivityMonth10;
        if (isset($this->onlineTwitterActivityMonth11)) $o['onlineTwitterActivityMonth11'] = $this->onlineTwitterActivityMonth11;
        if (isset($this->onlineTwitterActivityMonth12)) $o['onlineTwitterActivityMonth12'] = $this->onlineTwitterActivityMonth12;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdMarriageResult implements JsonSerializable
{
    public function __construct(
        /** @var int|null */
        public ?int $marriageCertFlag=null,
        /** @var int|null */
        public ?int $marriageResultFlag=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['marriageCertFlag'])) $this->marriageCertFlag = $o['marriageCertFlag'];
        if (isset($o['marriageResultFlag'])) $this->marriageResultFlag = $o['marriageResultFlag'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->marriageCertFlag)) $o['marriageCertFlag'] = $this->marriageCertFlag;
        if (isset($this->marriageResultFlag)) $o['marriageResultFlag'] = $this->marriageResultFlag;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdAgeResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $ageIsAboveLower=null,
        /** @var bool|null */
        public ?bool $ageIsBelowUpper=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ageIsAboveLower'])) $this->ageIsAboveLower = $o['ageIsAboveLower'];
        if (isset($o['ageIsBelowUpper'])) $this->ageIsBelowUpper = $o['ageIsBelowUpper'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ageIsAboveLower)) $o['ageIsAboveLower'] = $this->ageIsAboveLower;
        if (isset($this->ageIsBelowUpper)) $o['ageIsBelowUpper'] = $this->ageIsBelowUpper;
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdResult implements JsonSerializable
{
    public function __construct(
        /** @var ValidIdResultSummary|null */
        public ?ValidIdResultSummary $summaryResult=null,
        /** @var array<ValidIdResultErrors>|null */
        public ?array $errors=null,
        /** @var ValidIdDrivingResult|null */
        public ?ValidIdDrivingResult $drivingResult=null,
        /** @var ValidIdDOBResult|null */
        public ?ValidIdDOBResult $dobResult=null,
        /** @var ValidIdNHSResult|null */
        public ?ValidIdNHSResult $nhsResult=null,
        /** @var ValidIdNIResult|null */
        public ?ValidIdNIResult $niResult=null,
        /** @var ValidIdPassportResult|null */
        public ?ValidIdPassportResult $passportResult=null,
        /** @var ValidIdPassportChipResult|null */
        public ?ValidIdPassportChipResult $passportChipResult=null,
        /** @var ValidIdBirthResult|null */
        public ?ValidIdBirthResult $birthResult=null,
        /** @var ValidIdElectricityResult|null */
        public ?ValidIdElectricityResult $electricityResult=null,
        /** @var ValidIdBankResult|null */
        public ?ValidIdBankResult $bankResult=null,
        /** @var ValidIdCardNumberResult|null */
        public ?ValidIdCardNumberResult $cardNumberResult=null,
        /** @var ValidIdCreditActiveResult|null */
        public ?ValidIdCreditActiveResult $creditActiveResult=null,
        /** @var ValidIdAddressResult|null */
        public ?ValidIdAddressResult $addressResult=null,
        /** @var ValidIdSmartlinkResult|null */
        public ?ValidIdSmartlinkResult $smartlinkResult=null,
        /** @var ValidIdDeathscreenResult|null */
        public ?ValidIdDeathscreenResult $deathscreenResult=null,
        /** @var ValidIdPEPResult|null */
        public ?ValidIdPEPResult $pepResult=null,
        /** @var ValidIdCCJResult|null */
        public ?ValidIdCCJResult $ccjResult=null,
        /** @var ValidIdInsolvencyResult|null */
        public ?ValidIdInsolvencyResult $insolvencyResult=null,
        /** @var ValidIdTravelVisaResult|null */
        public ?ValidIdTravelVisaResult $travelVisaResult=null,
        /** @var ValidIdIdCardResult|null */
        public ?ValidIdIdCardResult $idCardResult=null,
        /** @var ValidIdBankLiveResult|null */
        public ?ValidIdBankLiveResult $bankLiveResult=null,
        /** @var ValidIdCompanyDirectorResult|null */
        public ?ValidIdCompanyDirectorResult $companyDirectorResult=null,
        /** @var ValidIdSearchActivityResult|null */
        public ?ValidIdSearchActivityResult $searchActivityResult=null,
        /** @var ValidIdPRSResult|null */
        public ?ValidIdPRSResult $prsResult=null,
        /** @var ValidIdPollNumberResult|null */
        public ?ValidIdPollNumberResult $pollNumberResult=null,
        /** @var ValidIdOnlineProfileResult|null */
        public ?ValidIdOnlineProfileResult $onlineProfileResult=null,
        /** @var ValidIdMarriageResult|null */
        public ?ValidIdMarriageResult $marriageResult=null,
        /** @var ValidIdAgeResult|null */
        public ?ValidIdAgeResult $ageResult=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['summaryResult'])) $this->summaryResult = JsonConverters::from('ValidIdResultSummary', $o['summaryResult']);
        if (isset($o['errors'])) $this->errors = JsonConverters::fromArray('ValidIdResultErrors', $o['errors']);
        if (isset($o['drivingResult'])) $this->drivingResult = JsonConverters::from('ValidIdDrivingResult', $o['drivingResult']);
        if (isset($o['dobResult'])) $this->dobResult = JsonConverters::from('ValidIdDOBResult', $o['dobResult']);
        if (isset($o['nhsResult'])) $this->nhsResult = JsonConverters::from('ValidIdNHSResult', $o['nhsResult']);
        if (isset($o['niResult'])) $this->niResult = JsonConverters::from('ValidIdNIResult', $o['niResult']);
        if (isset($o['passportResult'])) $this->passportResult = JsonConverters::from('ValidIdPassportResult', $o['passportResult']);
        if (isset($o['passportChipResult'])) $this->passportChipResult = JsonConverters::from('ValidIdPassportChipResult', $o['passportChipResult']);
        if (isset($o['birthResult'])) $this->birthResult = JsonConverters::from('ValidIdBirthResult', $o['birthResult']);
        if (isset($o['electricityResult'])) $this->electricityResult = JsonConverters::from('ValidIdElectricityResult', $o['electricityResult']);
        if (isset($o['bankResult'])) $this->bankResult = JsonConverters::from('ValidIdBankResult', $o['bankResult']);
        if (isset($o['cardNumberResult'])) $this->cardNumberResult = JsonConverters::from('ValidIdCardNumberResult', $o['cardNumberResult']);
        if (isset($o['creditActiveResult'])) $this->creditActiveResult = JsonConverters::from('ValidIdCreditActiveResult', $o['creditActiveResult']);
        if (isset($o['addressResult'])) $this->addressResult = JsonConverters::from('ValidIdAddressResult', $o['addressResult']);
        if (isset($o['smartlinkResult'])) $this->smartlinkResult = JsonConverters::from('ValidIdSmartlinkResult', $o['smartlinkResult']);
        if (isset($o['deathscreenResult'])) $this->deathscreenResult = JsonConverters::from('ValidIdDeathscreenResult', $o['deathscreenResult']);
        if (isset($o['pepResult'])) $this->pepResult = JsonConverters::from('ValidIdPEPResult', $o['pepResult']);
        if (isset($o['ccjResult'])) $this->ccjResult = JsonConverters::from('ValidIdCCJResult', $o['ccjResult']);
        if (isset($o['insolvencyResult'])) $this->insolvencyResult = JsonConverters::from('ValidIdInsolvencyResult', $o['insolvencyResult']);
        if (isset($o['travelVisaResult'])) $this->travelVisaResult = JsonConverters::from('ValidIdTravelVisaResult', $o['travelVisaResult']);
        if (isset($o['idCardResult'])) $this->idCardResult = JsonConverters::from('ValidIdIdCardResult', $o['idCardResult']);
        if (isset($o['bankLiveResult'])) $this->bankLiveResult = JsonConverters::from('ValidIdBankLiveResult', $o['bankLiveResult']);
        if (isset($o['companyDirectorResult'])) $this->companyDirectorResult = JsonConverters::from('ValidIdCompanyDirectorResult', $o['companyDirectorResult']);
        if (isset($o['searchActivityResult'])) $this->searchActivityResult = JsonConverters::from('ValidIdSearchActivityResult', $o['searchActivityResult']);
        if (isset($o['prsResult'])) $this->prsResult = JsonConverters::from('ValidIdPRSResult', $o['prsResult']);
        if (isset($o['pollNumberResult'])) $this->pollNumberResult = JsonConverters::from('ValidIdPollNumberResult', $o['pollNumberResult']);
        if (isset($o['onlineProfileResult'])) $this->onlineProfileResult = JsonConverters::from('ValidIdOnlineProfileResult', $o['onlineProfileResult']);
        if (isset($o['marriageResult'])) $this->marriageResult = JsonConverters::from('ValidIdMarriageResult', $o['marriageResult']);
        if (isset($o['ageResult'])) $this->ageResult = JsonConverters::from('ValidIdAgeResult', $o['ageResult']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->summaryResult)) $o['summaryResult'] = JsonConverters::to('ValidIdResultSummary', $this->summaryResult);
        if (isset($this->errors)) $o['errors'] = JsonConverters::toArray('ValidIdResultErrors', $this->errors);
        if (isset($this->drivingResult)) $o['drivingResult'] = JsonConverters::to('ValidIdDrivingResult', $this->drivingResult);
        if (isset($this->dobResult)) $o['dobResult'] = JsonConverters::to('ValidIdDOBResult', $this->dobResult);
        if (isset($this->nhsResult)) $o['nhsResult'] = JsonConverters::to('ValidIdNHSResult', $this->nhsResult);
        if (isset($this->niResult)) $o['niResult'] = JsonConverters::to('ValidIdNIResult', $this->niResult);
        if (isset($this->passportResult)) $o['passportResult'] = JsonConverters::to('ValidIdPassportResult', $this->passportResult);
        if (isset($this->passportChipResult)) $o['passportChipResult'] = JsonConverters::to('ValidIdPassportChipResult', $this->passportChipResult);
        if (isset($this->birthResult)) $o['birthResult'] = JsonConverters::to('ValidIdBirthResult', $this->birthResult);
        if (isset($this->electricityResult)) $o['electricityResult'] = JsonConverters::to('ValidIdElectricityResult', $this->electricityResult);
        if (isset($this->bankResult)) $o['bankResult'] = JsonConverters::to('ValidIdBankResult', $this->bankResult);
        if (isset($this->cardNumberResult)) $o['cardNumberResult'] = JsonConverters::to('ValidIdCardNumberResult', $this->cardNumberResult);
        if (isset($this->creditActiveResult)) $o['creditActiveResult'] = JsonConverters::to('ValidIdCreditActiveResult', $this->creditActiveResult);
        if (isset($this->addressResult)) $o['addressResult'] = JsonConverters::to('ValidIdAddressResult', $this->addressResult);
        if (isset($this->smartlinkResult)) $o['smartlinkResult'] = JsonConverters::to('ValidIdSmartlinkResult', $this->smartlinkResult);
        if (isset($this->deathscreenResult)) $o['deathscreenResult'] = JsonConverters::to('ValidIdDeathscreenResult', $this->deathscreenResult);
        if (isset($this->pepResult)) $o['pepResult'] = JsonConverters::to('ValidIdPEPResult', $this->pepResult);
        if (isset($this->ccjResult)) $o['ccjResult'] = JsonConverters::to('ValidIdCCJResult', $this->ccjResult);
        if (isset($this->insolvencyResult)) $o['insolvencyResult'] = JsonConverters::to('ValidIdInsolvencyResult', $this->insolvencyResult);
        if (isset($this->travelVisaResult)) $o['travelVisaResult'] = JsonConverters::to('ValidIdTravelVisaResult', $this->travelVisaResult);
        if (isset($this->idCardResult)) $o['idCardResult'] = JsonConverters::to('ValidIdIdCardResult', $this->idCardResult);
        if (isset($this->bankLiveResult)) $o['bankLiveResult'] = JsonConverters::to('ValidIdBankLiveResult', $this->bankLiveResult);
        if (isset($this->companyDirectorResult)) $o['companyDirectorResult'] = JsonConverters::to('ValidIdCompanyDirectorResult', $this->companyDirectorResult);
        if (isset($this->searchActivityResult)) $o['searchActivityResult'] = JsonConverters::to('ValidIdSearchActivityResult', $this->searchActivityResult);
        if (isset($this->prsResult)) $o['prsResult'] = JsonConverters::to('ValidIdPRSResult', $this->prsResult);
        if (isset($this->pollNumberResult)) $o['pollNumberResult'] = JsonConverters::to('ValidIdPollNumberResult', $this->pollNumberResult);
        if (isset($this->onlineProfileResult)) $o['onlineProfileResult'] = JsonConverters::to('ValidIdOnlineProfileResult', $this->onlineProfileResult);
        if (isset($this->marriageResult)) $o['marriageResult'] = JsonConverters::to('ValidIdMarriageResult', $this->marriageResult);
        if (isset($this->ageResult)) $o['ageResult'] = JsonConverters::to('ValidIdAgeResult', $this->ageResult);
        return empty($o) ? new class(){} : $o;
    }
}

class SearchCriteria implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $address=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $nationality=null,
        /** @var string|null */
        public ?string $reference=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['address'])) $this->address = $o['address'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
        if (isset($o['reference'])) $this->reference = $o['reference'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->address)) $o['address'] = $this->address;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        if (isset($this->reference)) $o['reference'] = $this->reference;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEuAddress implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $street=null,
        /** @var string|null */
        public ?string $city=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $other=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['street'])) $this->street = $o['street'];
        if (isset($o['city'])) $this->city = $o['city'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['other'])) $this->other = $o['other'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->street)) $o['street'] = $this->street;
        if (isset($this->city)) $o['city'] = $this->city;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->other)) $o['other'] = $this->other;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEuBirth implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $date=null,
        /** @var string|null */
        public ?string $place=null,
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['date'])) $this->date = $o['date'];
        if (isset($o['place'])) $this->place = $o['place'];
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->date)) $o['date'] = $this->date;
        if (isset($this->place)) $o['place'] = $this->place;
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacEuCitizenship implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEuName implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $fullName=null,
        /** @var string|null */
        public ?string $gender=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
        if (isset($o['gender'])) $this->gender = $o['gender'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        if (isset($this->gender)) $o['gender'] = $this->gender;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEuPassport implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $number=null,
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['number'])) $this->number = $o['number'];
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->number)) $o['number'] = $this->number;
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEu implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var array<SearchResultEuAddress>|null */
        public ?array $addresses=null,
        /** @var array<SearchResultEuBirth>|null */
        public ?array $births=null,
        /** @var array<SearchResultOfacEuCitizenship>|null */
        public ?array $citizenships=null,
        /** @var array<SearchResultEuName>|null */
        public ?array $names=null,
        /** @var array<SearchResultEuPassport>|null */
        public ?array $passports=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('SearchResultEuAddress', $o['addresses']);
        if (isset($o['births'])) $this->births = JsonConverters::fromArray('SearchResultEuBirth', $o['births']);
        if (isset($o['citizenships'])) $this->citizenships = JsonConverters::fromArray('SearchResultOfacEuCitizenship', $o['citizenships']);
        if (isset($o['names'])) $this->names = JsonConverters::fromArray('SearchResultEuName', $o['names']);
        if (isset($o['passports'])) $this->passports = JsonConverters::fromArray('SearchResultEuPassport', $o['passports']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('SearchResultEuAddress', $this->addresses);
        if (isset($this->births)) $o['births'] = JsonConverters::toArray('SearchResultEuBirth', $this->births);
        if (isset($this->citizenships)) $o['citizenships'] = JsonConverters::toArray('SearchResultOfacEuCitizenship', $this->citizenships);
        if (isset($this->names)) $o['names'] = JsonConverters::toArray('SearchResultEuName', $this->names);
        if (isset($this->passports)) $o['passports'] = JsonConverters::toArray('SearchResultEuPassport', $this->passports);
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultHmTreasury implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateListed=new DateTime(),
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $name1=null,
        /** @var string|null */
        public ?string $name2=null,
        /** @var string|null */
        public ?string $name3=null,
        /** @var string|null */
        public ?string $name4=null,
        /** @var string|null */
        public ?string $name5=null,
        /** @var string|null */
        public ?string $name6=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $countryOfBirth=null,
        /** @var string|null */
        public ?string $nationality=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $address4=null,
        /** @var string|null */
        public ?string $address5=null,
        /** @var string|null */
        public ?string $address6=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateListed'])) $this->dateListed = JsonConverters::from('DateTime', $o['dateListed']);
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['name1'])) $this->name1 = $o['name1'];
        if (isset($o['name2'])) $this->name2 = $o['name2'];
        if (isset($o['name3'])) $this->name3 = $o['name3'];
        if (isset($o['name4'])) $this->name4 = $o['name4'];
        if (isset($o['name5'])) $this->name5 = $o['name5'];
        if (isset($o['name6'])) $this->name6 = $o['name6'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['countryOfBirth'])) $this->countryOfBirth = $o['countryOfBirth'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['address4'])) $this->address4 = $o['address4'];
        if (isset($o['address5'])) $this->address5 = $o['address5'];
        if (isset($o['address6'])) $this->address6 = $o['address6'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateListed)) $o['dateListed'] = JsonConverters::to('DateTime', $this->dateListed);
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->name1)) $o['name1'] = $this->name1;
        if (isset($this->name2)) $o['name2'] = $this->name2;
        if (isset($this->name3)) $o['name3'] = $this->name3;
        if (isset($this->name4)) $o['name4'] = $this->name4;
        if (isset($this->name5)) $o['name5'] = $this->name5;
        if (isset($this->name6)) $o['name6'] = $this->name6;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->countryOfBirth)) $o['countryOfBirth'] = $this->countryOfBirth;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->address4)) $o['address4'] = $this->address4;
        if (isset($this->address5)) $o['address5'] = $this->address5;
        if (isset($this->address6)) $o['address6'] = $this->address6;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacAddress implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $city=null,
        /** @var string|null */
        public ?string $state=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['city'])) $this->city = $o['city'];
        if (isset($o['state'])) $this->state = $o['state'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->city)) $o['city'] = $this->city;
        if (isset($this->state)) $o['state'] = $this->state;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacAka implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $firstName=null,
        /** @var string|null */
        public ?string $lastName=null,
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $strength=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['firstName'])) $this->firstName = $o['firstName'];
        if (isset($o['lastName'])) $this->lastName = $o['lastName'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['strength'])) $this->strength = $o['strength'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->firstName)) $o['firstName'] = $this->firstName;
        if (isset($this->lastName)) $o['lastName'] = $this->lastName;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->strength)) $o['strength'] = $this->strength;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacDateOfBirth implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $dateOfBirth=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacNationality implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfacPlaceOfBirth implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $placeOfBirth=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['placeOfBirth'])) $this->placeOfBirth = $o['placeOfBirth'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->placeOfBirth)) $o['placeOfBirth'] = $this->placeOfBirth;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOfac implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $firstName=null,
        /** @var string|null */
        public ?string $lastName=null,
        /** @var array<SearchResultOfacAddress>|null */
        public ?array $addresses=null,
        /** @var array<SearchResultOfacAka>|null */
        public ?array $akas=null,
        /** @var array<SearchResultOfacDateOfBirth>|null */
        public ?array $dateOfBirths=null,
        /** @var array<SearchResultOfacNationality>|null */
        public ?array $nationalities=null,
        /** @var array<SearchResultOfacPlaceOfBirth>|null */
        public ?array $placeOfBirths=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['firstName'])) $this->firstName = $o['firstName'];
        if (isset($o['lastName'])) $this->lastName = $o['lastName'];
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('SearchResultOfacAddress', $o['addresses']);
        if (isset($o['akas'])) $this->akas = JsonConverters::fromArray('SearchResultOfacAka', $o['akas']);
        if (isset($o['dateOfBirths'])) $this->dateOfBirths = JsonConverters::fromArray('SearchResultOfacDateOfBirth', $o['dateOfBirths']);
        if (isset($o['nationalities'])) $this->nationalities = JsonConverters::fromArray('SearchResultOfacNationality', $o['nationalities']);
        if (isset($o['placeOfBirths'])) $this->placeOfBirths = JsonConverters::fromArray('SearchResultOfacPlaceOfBirth', $o['placeOfBirths']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->firstName)) $o['firstName'] = $this->firstName;
        if (isset($this->lastName)) $o['lastName'] = $this->lastName;
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('SearchResultOfacAddress', $this->addresses);
        if (isset($this->akas)) $o['akas'] = JsonConverters::toArray('SearchResultOfacAka', $this->akas);
        if (isset($this->dateOfBirths)) $o['dateOfBirths'] = JsonConverters::toArray('SearchResultOfacDateOfBirth', $this->dateOfBirths);
        if (isset($this->nationalities)) $o['nationalities'] = JsonConverters::toArray('SearchResultOfacNationality', $this->nationalities);
        if (isset($this->placeOfBirths)) $o['placeOfBirths'] = JsonConverters::toArray('SearchResultOfacPlaceOfBirth', $this->placeOfBirths);
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultDfat implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $fullName=null,
        /** @var string|null */
        public ?string $address=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $placeOfBirth=null,
        /** @var string|null */
        public ?string $nationality=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
        if (isset($o['address'])) $this->address = $o['address'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['placeOfBirth'])) $this->placeOfBirth = $o['placeOfBirth'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        if (isset($this->address)) $o['address'] = $this->address;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->placeOfBirth)) $o['placeOfBirth'] = $this->placeOfBirth;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultOsfi implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $fullName=null,
        /** @var string|null */
        public ?string $address=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $placeOfBirth=null,
        /** @var string|null */
        public ?string $nationality=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
        if (isset($o['address'])) $this->address = $o['address'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['placeOfBirth'])) $this->placeOfBirth = $o['placeOfBirth'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        if (isset($this->address)) $o['address'] = $this->address;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->placeOfBirth)) $o['placeOfBirth'] = $this->placeOfBirth;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultCanadianJustice implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var int */
        public int $refId=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['refId'])) $this->refId = $o['refId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->refId)) $o['refId'] = $this->refId;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultCanadianSema implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var string|null */
        public ?string $schedule=null,
        /** @var string|null */
        public ?string $item=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['schedule'])) $this->schedule = $o['schedule'];
        if (isset($o['item'])) $this->item = $o['item'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->schedule)) $o['schedule'] = $this->schedule;
        if (isset($this->item)) $o['item'] = $this->item;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultAddress implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultAddressId=0,
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $address1=null,
        /** @var string|null */
        public ?string $address2=null,
        /** @var string|null */
        public ?string $address3=null,
        /** @var string|null */
        public ?string $city=null,
        /** @var string|null */
        public ?string $county=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $country=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultAddressId'])) $this->searchResultAddressId = $o['searchResultAddressId'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['address1'])) $this->address1 = $o['address1'];
        if (isset($o['address2'])) $this->address2 = $o['address2'];
        if (isset($o['address3'])) $this->address3 = $o['address3'];
        if (isset($o['city'])) $this->city = $o['city'];
        if (isset($o['county'])) $this->county = $o['county'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['country'])) $this->country = $o['country'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultAddressId)) $o['searchResultAddressId'] = $this->searchResultAddressId;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->address1)) $o['address1'] = $this->address1;
        if (isset($this->address2)) $o['address2'] = $this->address2;
        if (isset($this->address3)) $o['address3'] = $this->address3;
        if (isset($this->city)) $o['city'] = $this->city;
        if (isset($this->county)) $o['county'] = $this->county;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->country)) $o['country'] = $this->country;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultDateOfBirth implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultDateOfBirthId=0,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var int|null */
        public ?int $year=null,
        /** @var int|null */
        public ?int $month=null,
        /** @var int|null */
        public ?int $day=null,
        /** @var string|null */
        public ?string $type=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultDateOfBirthId'])) $this->searchResultDateOfBirthId = $o['searchResultDateOfBirthId'];
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['year'])) $this->year = $o['year'];
        if (isset($o['month'])) $this->month = $o['month'];
        if (isset($o['day'])) $this->day = $o['day'];
        if (isset($o['type'])) $this->type = $o['type'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultDateOfBirthId)) $o['searchResultDateOfBirthId'] = $this->searchResultDateOfBirthId;
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->year)) $o['year'] = $this->year;
        if (isset($this->month)) $o['month'] = $this->month;
        if (isset($this->day)) $o['day'] = $this->day;
        if (isset($this->type)) $o['type'] = $this->type;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultName implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultNameId=0,
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $fullName=null,
        /** @var float */
        public float $resultSimilarity=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultNameId'])) $this->searchResultNameId = $o['searchResultNameId'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultNameId)) $o['searchResultNameId'] = $this->searchResultNameId;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultNationality implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultNationalityId=0,
        /** @var string|null */
        public ?string $nationality=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultNationalityId'])) $this->searchResultNationalityId = $o['searchResultNationalityId'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultNationalityId)) $o['searchResultNationalityId'] = $this->searchResultNationalityId;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultPlaceOfBirth implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultPlaceOfBirthId=0,
        /** @var string|null */
        public ?string $placeOfBirth=null,
        /** @var string|null */
        public ?string $countryOfBirth=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultPlaceOfBirthId'])) $this->searchResultPlaceOfBirthId = $o['searchResultPlaceOfBirthId'];
        if (isset($o['placeOfBirth'])) $this->placeOfBirth = $o['placeOfBirth'];
        if (isset($o['countryOfBirth'])) $this->countryOfBirth = $o['countryOfBirth'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultPlaceOfBirthId)) $o['searchResultPlaceOfBirthId'] = $this->searchResultPlaceOfBirthId;
        if (isset($this->placeOfBirth)) $o['placeOfBirth'] = $this->placeOfBirth;
        if (isset($this->countryOfBirth)) $o['countryOfBirth'] = $this->countryOfBirth;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultRemark implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultRemarkId=0,
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $description=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultRemarkId'])) $this->searchResultRemarkId = $o['searchResultRemarkId'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['description'])) $this->description = $o['description'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultRemarkId)) $o['searchResultRemarkId'] = $this->searchResultRemarkId;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->description)) $o['description'] = $this->description;
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResultEntry implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $searchResultId=0,
        /** @var int */
        public int $resultStrength=0,
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var string|null */
        public ?string $resultType=null,
        /** @var DateTime|null */
        public ?DateTime $dateUpdated=null,
        /** @var string|null */
        public ?string $sanctionsListId=null,
        /** @var string|null */
        public ?string $sanctionsListName=null,
        /** @var array<SearchResultAddress>|null */
        public ?array $addresses=null,
        /** @var array<SearchResultDateOfBirth>|null */
        public ?array $datesOfBirth=null,
        /** @var array<SearchResultName>|null */
        public ?array $names=null,
        /** @var array<SearchResultNationality>|null */
        public ?array $nationalities=null,
        /** @var array<SearchResultPlaceOfBirth>|null */
        public ?array $placesOfBirth=null,
        /** @var array<SearchResultRemark>|null */
        public ?array $remarks=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['searchResultId'])) $this->searchResultId = $o['searchResultId'];
        if (isset($o['resultStrength'])) $this->resultStrength = $o['resultStrength'];
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['resultType'])) $this->resultType = $o['resultType'];
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['sanctionsListId'])) $this->sanctionsListId = $o['sanctionsListId'];
        if (isset($o['sanctionsListName'])) $this->sanctionsListName = $o['sanctionsListName'];
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('SearchResultAddress', $o['addresses']);
        if (isset($o['datesOfBirth'])) $this->datesOfBirth = JsonConverters::fromArray('SearchResultDateOfBirth', $o['datesOfBirth']);
        if (isset($o['names'])) $this->names = JsonConverters::fromArray('SearchResultName', $o['names']);
        if (isset($o['nationalities'])) $this->nationalities = JsonConverters::fromArray('SearchResultNationality', $o['nationalities']);
        if (isset($o['placesOfBirth'])) $this->placesOfBirth = JsonConverters::fromArray('SearchResultPlaceOfBirth', $o['placesOfBirth']);
        if (isset($o['remarks'])) $this->remarks = JsonConverters::fromArray('SearchResultRemark', $o['remarks']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->searchResultId)) $o['searchResultId'] = $this->searchResultId;
        if (isset($this->resultStrength)) $o['resultStrength'] = $this->resultStrength;
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->resultType)) $o['resultType'] = $this->resultType;
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->sanctionsListId)) $o['sanctionsListId'] = $this->sanctionsListId;
        if (isset($this->sanctionsListName)) $o['sanctionsListName'] = $this->sanctionsListName;
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('SearchResultAddress', $this->addresses);
        if (isset($this->datesOfBirth)) $o['datesOfBirth'] = JsonConverters::toArray('SearchResultDateOfBirth', $this->datesOfBirth);
        if (isset($this->names)) $o['names'] = JsonConverters::toArray('SearchResultName', $this->names);
        if (isset($this->nationalities)) $o['nationalities'] = JsonConverters::toArray('SearchResultNationality', $this->nationalities);
        if (isset($this->placesOfBirth)) $o['placesOfBirth'] = JsonConverters::toArray('SearchResultPlaceOfBirth', $this->placesOfBirth);
        if (isset($this->remarks)) $o['remarks'] = JsonConverters::toArray('SearchResultRemark', $this->remarks);
        return empty($o) ? new class(){} : $o;
    }
}

class SearchResults implements JsonSerializable
{
    public function __construct(
        /** @var array<SearchResultEu>|null */
        public ?array $euResults=null,
        /** @var array<SearchResultHmTreasury>|null */
        public ?array $hmtResults=null,
        /** @var array<SearchResultHmTreasury>|null */
        public ?array $hmtUkraineResults=null,
        /** @var array<SearchResultOfac>|null */
        public ?array $ofacResults=null,
        /** @var array<SearchResultOfac>|null */
        public ?array $ofacConsolidatedResults=null,
        /** @var array<SearchResultDfat>|null */
        public ?array $dfatResults=null,
        /** @var array<SearchResultOsfi>|null */
        public ?array $osfiResults=null,
        /** @var array<SearchResultCanadianJustice>|null */
        public ?array $canadianJusticeResults=null,
        /** @var array<SearchResultCanadianSema>|null */
        public ?array $canadianSemaResults=null,
        /** @var array<SearchResultEntry>|null */
        public ?array $swissSecoResults=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['euResults'])) $this->euResults = JsonConverters::fromArray('SearchResultEu', $o['euResults']);
        if (isset($o['hmtResults'])) $this->hmtResults = JsonConverters::fromArray('SearchResultHmTreasury', $o['hmtResults']);
        if (isset($o['hmtUkraineResults'])) $this->hmtUkraineResults = JsonConverters::fromArray('SearchResultHmTreasury', $o['hmtUkraineResults']);
        if (isset($o['ofacResults'])) $this->ofacResults = JsonConverters::fromArray('SearchResultOfac', $o['ofacResults']);
        if (isset($o['ofacConsolidatedResults'])) $this->ofacConsolidatedResults = JsonConverters::fromArray('SearchResultOfac', $o['ofacConsolidatedResults']);
        if (isset($o['dfatResults'])) $this->dfatResults = JsonConverters::fromArray('SearchResultDfat', $o['dfatResults']);
        if (isset($o['osfiResults'])) $this->osfiResults = JsonConverters::fromArray('SearchResultOsfi', $o['osfiResults']);
        if (isset($o['canadianJusticeResults'])) $this->canadianJusticeResults = JsonConverters::fromArray('SearchResultCanadianJustice', $o['canadianJusticeResults']);
        if (isset($o['canadianSemaResults'])) $this->canadianSemaResults = JsonConverters::fromArray('SearchResultCanadianSema', $o['canadianSemaResults']);
        if (isset($o['swissSecoResults'])) $this->swissSecoResults = JsonConverters::fromArray('SearchResultEntry', $o['swissSecoResults']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->euResults)) $o['euResults'] = JsonConverters::toArray('SearchResultEu', $this->euResults);
        if (isset($this->hmtResults)) $o['hmtResults'] = JsonConverters::toArray('SearchResultHmTreasury', $this->hmtResults);
        if (isset($this->hmtUkraineResults)) $o['hmtUkraineResults'] = JsonConverters::toArray('SearchResultHmTreasury', $this->hmtUkraineResults);
        if (isset($this->ofacResults)) $o['ofacResults'] = JsonConverters::toArray('SearchResultOfac', $this->ofacResults);
        if (isset($this->ofacConsolidatedResults)) $o['ofacConsolidatedResults'] = JsonConverters::toArray('SearchResultOfac', $this->ofacConsolidatedResults);
        if (isset($this->dfatResults)) $o['dfatResults'] = JsonConverters::toArray('SearchResultDfat', $this->dfatResults);
        if (isset($this->osfiResults)) $o['osfiResults'] = JsonConverters::toArray('SearchResultOsfi', $this->osfiResults);
        if (isset($this->canadianJusticeResults)) $o['canadianJusticeResults'] = JsonConverters::toArray('SearchResultCanadianJustice', $this->canadianJusticeResults);
        if (isset($this->canadianSemaResults)) $o['canadianSemaResults'] = JsonConverters::toArray('SearchResultCanadianSema', $this->canadianSemaResults);
        if (isset($this->swissSecoResults)) $o['swissSecoResults'] = JsonConverters::toArray('SearchResultEntry', $this->swissSecoResults);
        return empty($o) ? new class(){} : $o;
    }
}

class SearchSource implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $listId=null,
        /** @var string|null */
        public ?string $listName=null,
        /** @var string|null */
        public ?string $listShortName=null,
        /** @var bool|null */
        public ?bool $isAffectedByListUpdate=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['listId'])) $this->listId = $o['listId'];
        if (isset($o['listName'])) $this->listName = $o['listName'];
        if (isset($o['listShortName'])) $this->listShortName = $o['listShortName'];
        if (isset($o['isAffectedByListUpdate'])) $this->isAffectedByListUpdate = $o['isAffectedByListUpdate'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->listId)) $o['listId'] = $this->listId;
        if (isset($this->listName)) $o['listName'] = $this->listName;
        if (isset($this->listShortName)) $o['listShortName'] = $this->listShortName;
        if (isset($this->isAffectedByListUpdate)) $o['isAffectedByListUpdate'] = $this->isAffectedByListUpdate;
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template array of SearchResultEntry
 */
class ArrayOfSearchResultEntries extends \ArrayObject implements JsonSerializable
{
    public function __construct(SearchResultEntry ...$items) {
        parent::__construct($items, \ArrayObject::STD_PROP_LIST);
    }
    
    /** @throws \Exception */
    public function append($value): void {
        if ($value instanceof SearchResultEntry)
            parent::append($value);
        else
            throw new \Exception("Can only append a SearchResultEntry to " . __CLASS__);
    }
    
    /** @throws Exception */
    public function fromMap($o): void {
        foreach ($o as $item) {
            $el = new SearchResultEntry();
            $el->fromMap($item);
            $this->append($el);
        }
    }
    
    /** @throws Exception */
    public function jsonSerialize(): array {
        return parent::getArrayCopy();
    }
}

class SearchRecord implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $id=0,
        /** @var string|null */
        public ?string $searchType=null,
        /** @var DateTime */
        public DateTime $dateSearched=new DateTime(),
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var DateTime|null */
        public ?DateTime $dateArchived=null,
        /** @var bool|null */
        public ?bool $isArchived=null,
        /** @var int */
        public int $numOfResults=0,
        /** @var bool|null */
        public ?bool $clientInResults=null,
        /** @var bool|null */
        public ?bool $clientNotInResults=null,
        /** @var bool|null */
        public ?bool $affectedByUpdate=null,
        /** @var SearchCriteria|null */
        public ?SearchCriteria $searchCriteria=null,
        /** @var SearchResults|null */
        public ?SearchResults $searchResults=null,
        /** @var array<SearchSource>|null */
        public ?array $searchSources=null,
        /** @var ArrayOfSearchResultEntries|null */
        public ?ArrayOfSearchResultEntries $listSearchResults=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['searchType'])) $this->searchType = $o['searchType'];
        if (isset($o['dateSearched'])) $this->dateSearched = JsonConverters::from('DateTime', $o['dateSearched']);
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['dateArchived'])) $this->dateArchived = JsonConverters::from('DateTime', $o['dateArchived']);
        if (isset($o['isArchived'])) $this->isArchived = $o['isArchived'];
        if (isset($o['numOfResults'])) $this->numOfResults = $o['numOfResults'];
        if (isset($o['clientInResults'])) $this->clientInResults = $o['clientInResults'];
        if (isset($o['clientNotInResults'])) $this->clientNotInResults = $o['clientNotInResults'];
        if (isset($o['affectedByUpdate'])) $this->affectedByUpdate = $o['affectedByUpdate'];
        if (isset($o['searchCriteria'])) $this->searchCriteria = JsonConverters::from('SearchCriteria', $o['searchCriteria']);
        if (isset($o['searchResults'])) $this->searchResults = JsonConverters::from('SearchResults', $o['searchResults']);
        if (isset($o['searchSources'])) $this->searchSources = JsonConverters::fromArray('SearchSource', $o['searchSources']);
        if (isset($o['listSearchResults'])) $this->listSearchResults = JsonConverters::from('ArrayOfSearchResultEntries', $o['listSearchResults']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->searchType)) $o['searchType'] = $this->searchType;
        if (isset($this->dateSearched)) $o['dateSearched'] = JsonConverters::to('DateTime', $this->dateSearched);
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->dateArchived)) $o['dateArchived'] = JsonConverters::to('DateTime', $this->dateArchived);
        if (isset($this->isArchived)) $o['isArchived'] = $this->isArchived;
        if (isset($this->numOfResults)) $o['numOfResults'] = $this->numOfResults;
        if (isset($this->clientInResults)) $o['clientInResults'] = $this->clientInResults;
        if (isset($this->clientNotInResults)) $o['clientNotInResults'] = $this->clientNotInResults;
        if (isset($this->affectedByUpdate)) $o['affectedByUpdate'] = $this->affectedByUpdate;
        if (isset($this->searchCriteria)) $o['searchCriteria'] = JsonConverters::to('SearchCriteria', $this->searchCriteria);
        if (isset($this->searchResults)) $o['searchResults'] = JsonConverters::to('SearchResults', $this->searchResults);
        if (isset($this->searchSources)) $o['searchSources'] = JsonConverters::toArray('SearchSource', $this->searchSources);
        if (isset($this->listSearchResults)) $o['listSearchResults'] = JsonConverters::to('ArrayOfSearchResultEntries', $this->listSearchResults);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultAddress implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $addressLine1=null,
        /** @var string|null */
        public ?string $addressLine2=null,
        /** @var string|null */
        public ?string $addressLine3=null,
        /** @var string|null */
        public ?string $addressLine4=null,
        /** @var string|null */
        public ?string $town=null,
        /** @var string|null */
        public ?string $county=null,
        /** @var string|null */
        public ?string $postCode=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var string|null */
        public ?string $isoCountry=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime()
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['addressLine1'])) $this->addressLine1 = $o['addressLine1'];
        if (isset($o['addressLine2'])) $this->addressLine2 = $o['addressLine2'];
        if (isset($o['addressLine3'])) $this->addressLine3 = $o['addressLine3'];
        if (isset($o['addressLine4'])) $this->addressLine4 = $o['addressLine4'];
        if (isset($o['town'])) $this->town = $o['town'];
        if (isset($o['county'])) $this->county = $o['county'];
        if (isset($o['postCode'])) $this->postCode = $o['postCode'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['isoCountry'])) $this->isoCountry = $o['isoCountry'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->addressLine1)) $o['addressLine1'] = $this->addressLine1;
        if (isset($this->addressLine2)) $o['addressLine2'] = $this->addressLine2;
        if (isset($this->addressLine3)) $o['addressLine3'] = $this->addressLine3;
        if (isset($this->addressLine4)) $o['addressLine4'] = $this->addressLine4;
        if (isset($this->town)) $o['town'] = $this->town;
        if (isset($this->county)) $o['county'] = $this->county;
        if (isset($this->postCode)) $o['postCode'] = $this->postCode;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->isoCountry)) $o['isoCountry'] = $this->isoCountry;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultAlias implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $forename=null,
        /** @var string|null */
        public ?string $middleName=null,
        /** @var string|null */
        public ?string $surname=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfSoftDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime(),
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $alternateTitle=null,
        /** @var string|null */
        public ?string $businessName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['forename'])) $this->forename = $o['forename'];
        if (isset($o['middleName'])) $this->middleName = $o['middleName'];
        if (isset($o['surname'])) $this->surname = $o['surname'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateOfSoftDelete'])) $this->dateOfSoftDelete = JsonConverters::from('DateTime', $o['dateOfSoftDelete']);
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['alternateTitle'])) $this->alternateTitle = $o['alternateTitle'];
        if (isset($o['businessName'])) $this->businessName = $o['businessName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->forename)) $o['forename'] = $this->forename;
        if (isset($this->middleName)) $o['middleName'] = $this->middleName;
        if (isset($this->surname)) $o['surname'] = $this->surname;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateOfSoftDelete)) $o['dateOfSoftDelete'] = JsonConverters::to('DateTime', $this->dateOfSoftDelete);
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->alternateTitle)) $o['alternateTitle'] = $this->alternateTitle;
        if (isset($this->businessName)) $o['businessName'] = $this->businessName;
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultArticleSnippet implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $text=null,
        /** @var string|null */
        public ?string $adverseTerms=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['text'])) $this->text = $o['text'];
        if (isset($o['adverseTerms'])) $this->adverseTerms = $o['adverseTerms'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->text)) $o['text'] = $this->text;
        if (isset($this->adverseTerms)) $o['adverseTerms'] = $this->adverseTerms;
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultArticle implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $url=null,
        /** @var string|null */
        public ?string $originalUrl=null,
        /** @var string|null */
        public ?string $source=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfCapture=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime(),
        /** @var array<PepSearchResultArticleSnippet>|null */
        public ?array $snippets=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['url'])) $this->url = $o['url'];
        if (isset($o['originalUrl'])) $this->originalUrl = $o['originalUrl'];
        if (isset($o['source'])) $this->source = $o['source'];
        if (isset($o['dateOfCapture'])) $this->dateOfCapture = JsonConverters::from('DateTime', $o['dateOfCapture']);
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
        if (isset($o['snippets'])) $this->snippets = JsonConverters::fromArray('PepSearchResultArticleSnippet', $o['snippets']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->url)) $o['url'] = $this->url;
        if (isset($this->originalUrl)) $o['originalUrl'] = $this->originalUrl;
        if (isset($this->source)) $o['source'] = $this->source;
        if (isset($this->dateOfCapture)) $o['dateOfCapture'] = JsonConverters::to('DateTime', $this->dateOfCapture);
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        if (isset($this->snippets)) $o['snippets'] = JsonConverters::toArray('PepSearchResultArticleSnippet', $this->snippets);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultIndividualAssociation implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $linkDescription=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime(),
        /** @var string|null */
        public ?string $fullName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['linkDescription'])) $this->linkDescription = $o['linkDescription'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
        if (isset($o['fullName'])) $this->fullName = $o['fullName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->linkDescription)) $o['linkDescription'] = $this->linkDescription;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        if (isset($this->fullName)) $o['fullName'] = $this->fullName;
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultBusinessAssociation implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $linkDescription=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime(),
        /** @var string|null */
        public ?string $businessName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['linkDescription'])) $this->linkDescription = $o['linkDescription'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
        if (isset($o['businessName'])) $this->businessName = $o['businessName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->linkDescription)) $o['linkDescription'] = $this->linkDescription;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        if (isset($this->businessName)) $o['businessName'] = $this->businessName;
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultNote implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $source=null,
        /** @var string|null */
        public ?string $notes=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime()
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['source'])) $this->source = $o['source'];
        if (isset($o['notes'])) $this->notes = $o['notes'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->source)) $o['source'] = $this->source;
        if (isset($this->notes)) $o['notes'] = $this->notes;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResultPoliticalPosition implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $description=null,
        /** @var string|null */
        public ?string $from=null,
        /** @var string|null */
        public ?string $to=null,
        /** @var string|null */
        public ?string $country=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime()
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['from'])) $this->from = $o['from'];
        if (isset($o['to'])) $this->to = $o['to'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->from)) $o['from'] = $this->from;
        if (isset($this->to)) $o['to'] = $this->to;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResult implements JsonSerializable
{
    public function __construct(
        /** @var float */
        public float $resultSimilarity=0.0,
        /** @var bool|null */
        public ?bool $resultResolved=null,
        /** @var DateTime */
        public DateTime $dateLastUpdated=new DateTime(),
        /** @var bool|null */
        public ?bool $resultIsClient=null,
        /** @var int */
        public int $id=0,
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $title=null,
        /** @var string|null */
        public ?string $forename=null,
        /** @var string|null */
        public ?string $middlename=null,
        /** @var string|null */
        public ?string $surname=null,
        /** @var bool|null */
        public ?bool $softDelete=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfSoftDelete=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfCapture=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfBirth=null,
        /** @var DateTime|null */
        public ?DateTime $dateOfDeath=null,
        /** @var int|null */
        public ?int $yearOfBirth=null,
        /** @var int|null */
        public ?int $yearOfDeath=null,
        /** @var string|null */
        public ?string $gender=null,
        /** @var string|null */
        public ?string $homeTelephone=null,
        /** @var string|null */
        public ?string $businessTelephone=null,
        /** @var string|null */
        public ?string $mobileTelephone=null,
        /** @var string|null */
        public ?string $fax=null,
        /** @var string|null */
        public ?string $email=null,
        /** @var string|null */
        public ?string $nationality=null,
        /** @var string|null */
        public ?string $source=null,
        /** @var string|null */
        public ?string $category=null,
        /** @var string|null */
        public ?string $picture=null,
        /** @var string|null */
        public ?string $alternateTitle=null,
        /** @var string|null */
        public ?string $businessName=null,
        /** @var string|null */
        public ?string $description=null,
        /** @var string|null */
        public ?string $telephone=null,
        /** @var string|null */
        public ?string $website=null,
        /** @var int|null */
        public ?int $pepTier=null,
        /** @var array<PepSearchResultAddress>|null */
        public ?array $addresses=null,
        /** @var array<PepSearchResultAlias>|null */
        public ?array $aliases=null,
        /** @var array<PepSearchResultArticle>|null */
        public ?array $articles=null,
        /** @var array<PepSearchResultIndividualAssociation>|null */
        public ?array $associations=null,
        /** @var array<PepSearchResultBusinessAssociation>|null */
        public ?array $businessAssociations=null,
        /** @var array<PepSearchResultNote>|null */
        public ?array $notes=null,
        /** @var array<PepSearchResultPoliticalPosition>|null */
        public ?array $politicalPositions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['resultSimilarity'])) $this->resultSimilarity = $o['resultSimilarity'];
        if (isset($o['resultResolved'])) $this->resultResolved = $o['resultResolved'];
        if (isset($o['dateLastUpdated'])) $this->dateLastUpdated = JsonConverters::from('DateTime', $o['dateLastUpdated']);
        if (isset($o['resultIsClient'])) $this->resultIsClient = $o['resultIsClient'];
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['forename'])) $this->forename = $o['forename'];
        if (isset($o['middlename'])) $this->middlename = $o['middlename'];
        if (isset($o['surname'])) $this->surname = $o['surname'];
        if (isset($o['softDelete'])) $this->softDelete = $o['softDelete'];
        if (isset($o['dateOfSoftDelete'])) $this->dateOfSoftDelete = JsonConverters::from('DateTime', $o['dateOfSoftDelete']);
        if (isset($o['dateOfCapture'])) $this->dateOfCapture = JsonConverters::from('DateTime', $o['dateOfCapture']);
        if (isset($o['dateOfBirth'])) $this->dateOfBirth = JsonConverters::from('DateTime', $o['dateOfBirth']);
        if (isset($o['dateOfDeath'])) $this->dateOfDeath = JsonConverters::from('DateTime', $o['dateOfDeath']);
        if (isset($o['yearOfBirth'])) $this->yearOfBirth = $o['yearOfBirth'];
        if (isset($o['yearOfDeath'])) $this->yearOfDeath = $o['yearOfDeath'];
        if (isset($o['gender'])) $this->gender = $o['gender'];
        if (isset($o['homeTelephone'])) $this->homeTelephone = $o['homeTelephone'];
        if (isset($o['businessTelephone'])) $this->businessTelephone = $o['businessTelephone'];
        if (isset($o['mobileTelephone'])) $this->mobileTelephone = $o['mobileTelephone'];
        if (isset($o['fax'])) $this->fax = $o['fax'];
        if (isset($o['email'])) $this->email = $o['email'];
        if (isset($o['nationality'])) $this->nationality = $o['nationality'];
        if (isset($o['source'])) $this->source = $o['source'];
        if (isset($o['category'])) $this->category = $o['category'];
        if (isset($o['picture'])) $this->picture = $o['picture'];
        if (isset($o['alternateTitle'])) $this->alternateTitle = $o['alternateTitle'];
        if (isset($o['businessName'])) $this->businessName = $o['businessName'];
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['telephone'])) $this->telephone = $o['telephone'];
        if (isset($o['website'])) $this->website = $o['website'];
        if (isset($o['pepTier'])) $this->pepTier = $o['pepTier'];
        if (isset($o['addresses'])) $this->addresses = JsonConverters::fromArray('PepSearchResultAddress', $o['addresses']);
        if (isset($o['aliases'])) $this->aliases = JsonConverters::fromArray('PepSearchResultAlias', $o['aliases']);
        if (isset($o['articles'])) $this->articles = JsonConverters::fromArray('PepSearchResultArticle', $o['articles']);
        if (isset($o['associations'])) $this->associations = JsonConverters::fromArray('PepSearchResultIndividualAssociation', $o['associations']);
        if (isset($o['businessAssociations'])) $this->businessAssociations = JsonConverters::fromArray('PepSearchResultBusinessAssociation', $o['businessAssociations']);
        if (isset($o['notes'])) $this->notes = JsonConverters::fromArray('PepSearchResultNote', $o['notes']);
        if (isset($o['politicalPositions'])) $this->politicalPositions = JsonConverters::fromArray('PepSearchResultPoliticalPosition', $o['politicalPositions']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->resultSimilarity)) $o['resultSimilarity'] = $this->resultSimilarity;
        if (isset($this->resultResolved)) $o['resultResolved'] = $this->resultResolved;
        if (isset($this->dateLastUpdated)) $o['dateLastUpdated'] = JsonConverters::to('DateTime', $this->dateLastUpdated);
        if (isset($this->resultIsClient)) $o['resultIsClient'] = $this->resultIsClient;
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->forename)) $o['forename'] = $this->forename;
        if (isset($this->middlename)) $o['middlename'] = $this->middlename;
        if (isset($this->surname)) $o['surname'] = $this->surname;
        if (isset($this->softDelete)) $o['softDelete'] = $this->softDelete;
        if (isset($this->dateOfSoftDelete)) $o['dateOfSoftDelete'] = JsonConverters::to('DateTime', $this->dateOfSoftDelete);
        if (isset($this->dateOfCapture)) $o['dateOfCapture'] = JsonConverters::to('DateTime', $this->dateOfCapture);
        if (isset($this->dateOfBirth)) $o['dateOfBirth'] = JsonConverters::to('DateTime', $this->dateOfBirth);
        if (isset($this->dateOfDeath)) $o['dateOfDeath'] = JsonConverters::to('DateTime', $this->dateOfDeath);
        if (isset($this->yearOfBirth)) $o['yearOfBirth'] = $this->yearOfBirth;
        if (isset($this->yearOfDeath)) $o['yearOfDeath'] = $this->yearOfDeath;
        if (isset($this->gender)) $o['gender'] = $this->gender;
        if (isset($this->homeTelephone)) $o['homeTelephone'] = $this->homeTelephone;
        if (isset($this->businessTelephone)) $o['businessTelephone'] = $this->businessTelephone;
        if (isset($this->mobileTelephone)) $o['mobileTelephone'] = $this->mobileTelephone;
        if (isset($this->fax)) $o['fax'] = $this->fax;
        if (isset($this->email)) $o['email'] = $this->email;
        if (isset($this->nationality)) $o['nationality'] = $this->nationality;
        if (isset($this->source)) $o['source'] = $this->source;
        if (isset($this->category)) $o['category'] = $this->category;
        if (isset($this->picture)) $o['picture'] = $this->picture;
        if (isset($this->alternateTitle)) $o['alternateTitle'] = $this->alternateTitle;
        if (isset($this->businessName)) $o['businessName'] = $this->businessName;
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->telephone)) $o['telephone'] = $this->telephone;
        if (isset($this->website)) $o['website'] = $this->website;
        if (isset($this->pepTier)) $o['pepTier'] = $this->pepTier;
        if (isset($this->addresses)) $o['addresses'] = JsonConverters::toArray('PepSearchResultAddress', $this->addresses);
        if (isset($this->aliases)) $o['aliases'] = JsonConverters::toArray('PepSearchResultAlias', $this->aliases);
        if (isset($this->articles)) $o['articles'] = JsonConverters::toArray('PepSearchResultArticle', $this->articles);
        if (isset($this->associations)) $o['associations'] = JsonConverters::toArray('PepSearchResultIndividualAssociation', $this->associations);
        if (isset($this->businessAssociations)) $o['businessAssociations'] = JsonConverters::toArray('PepSearchResultBusinessAssociation', $this->businessAssociations);
        if (isset($this->notes)) $o['notes'] = JsonConverters::toArray('PepSearchResultNote', $this->notes);
        if (isset($this->politicalPositions)) $o['politicalPositions'] = JsonConverters::toArray('PepSearchResultPoliticalPosition', $this->politicalPositions);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchResults implements JsonSerializable
{
    public function __construct(
        /** @var array<PepSearchResult>|null */
        public ?array $results=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['results'])) $this->results = JsonConverters::fromArray('PepSearchResult', $o['results']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->results)) $o['results'] = JsonConverters::toArray('PepSearchResult', $this->results);
        return empty($o) ? new class(){} : $o;
    }
}

class PepSearchRecord implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $id=0,
        /** @var string|null */
        public ?string $searchType=null,
        /** @var DateTime */
        public DateTime $dateSearched=new DateTime(),
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var DateTime|null */
        public ?DateTime $dateRenewal=null,
        /** @var DateTime|null */
        public ?DateTime $dateArchived=null,
        /** @var bool|null */
        public ?bool $isArchived=null,
        /** @var int */
        public int $numOfResults=0,
        /** @var bool|null */
        public ?bool $clientInResults=null,
        /** @var bool|null */
        public ?bool $clientNotInResults=null,
        /** @var bool|null */
        public ?bool $affectedByUpdate=null,
        /** @var bool|null */
        public ?bool $isDayOneSearch=null,
        /** @var SearchCriteria|null */
        public ?SearchCriteria $searchCriteria=null,
        /** @var PepSearchResults|null */
        public ?PepSearchResults $searchResults=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['searchType'])) $this->searchType = $o['searchType'];
        if (isset($o['dateSearched'])) $this->dateSearched = JsonConverters::from('DateTime', $o['dateSearched']);
        if (isset($o['dateUpdated'])) $this->dateUpdated = JsonConverters::from('DateTime', $o['dateUpdated']);
        if (isset($o['dateRenewal'])) $this->dateRenewal = JsonConverters::from('DateTime', $o['dateRenewal']);
        if (isset($o['dateArchived'])) $this->dateArchived = JsonConverters::from('DateTime', $o['dateArchived']);
        if (isset($o['isArchived'])) $this->isArchived = $o['isArchived'];
        if (isset($o['numOfResults'])) $this->numOfResults = $o['numOfResults'];
        if (isset($o['clientInResults'])) $this->clientInResults = $o['clientInResults'];
        if (isset($o['clientNotInResults'])) $this->clientNotInResults = $o['clientNotInResults'];
        if (isset($o['affectedByUpdate'])) $this->affectedByUpdate = $o['affectedByUpdate'];
        if (isset($o['isDayOneSearch'])) $this->isDayOneSearch = $o['isDayOneSearch'];
        if (isset($o['searchCriteria'])) $this->searchCriteria = JsonConverters::from('SearchCriteria', $o['searchCriteria']);
        if (isset($o['searchResults'])) $this->searchResults = JsonConverters::from('PepSearchResults', $o['searchResults']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->searchType)) $o['searchType'] = $this->searchType;
        if (isset($this->dateSearched)) $o['dateSearched'] = JsonConverters::to('DateTime', $this->dateSearched);
        if (isset($this->dateUpdated)) $o['dateUpdated'] = JsonConverters::to('DateTime', $this->dateUpdated);
        if (isset($this->dateRenewal)) $o['dateRenewal'] = JsonConverters::to('DateTime', $this->dateRenewal);
        if (isset($this->dateArchived)) $o['dateArchived'] = JsonConverters::to('DateTime', $this->dateArchived);
        if (isset($this->isArchived)) $o['isArchived'] = $this->isArchived;
        if (isset($this->numOfResults)) $o['numOfResults'] = $this->numOfResults;
        if (isset($this->clientInResults)) $o['clientInResults'] = $this->clientInResults;
        if (isset($this->clientNotInResults)) $o['clientNotInResults'] = $this->clientNotInResults;
        if (isset($this->affectedByUpdate)) $o['affectedByUpdate'] = $this->affectedByUpdate;
        if (isset($this->isDayOneSearch)) $o['isDayOneSearch'] = $this->isDayOneSearch;
        if (isset($this->searchCriteria)) $o['searchCriteria'] = JsonConverters::to('SearchCriteria', $this->searchCriteria);
        if (isset($this->searchResults)) $o['searchResults'] = JsonConverters::to('PepSearchResults', $this->searchResults);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidIdRecord implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $id=0,
        /** @var int|null */
        public ?int $sanctionsSearchId=null,
        /** @var int|null */
        public ?int $pepSearchId=null,
        /** @var int|null */
        public ?int $validIdPassportId=null,
        /** @var int|null */
        public ?int $validIdPassportChipId=null,
        /** @var DateTime */
        public DateTime $date=new DateTime(),
        /** @var string|null */
        public ?string $searchListIds=null,
        /** @var bool|null */
        public ?bool $pepError=null,
        /** @var bool|null */
        public ?bool $replaced=null,
        /** @var int|null */
        public ?int $replacementSearchId=null,
        /** @var bool|null */
        public ?bool $hasError=null,
        /** @var bool|null */
        public ?bool $hasCompletedRequest=null,
        /** @var bool|null */
        public ?bool $hasCompletedSearch=null,
        /** @var bool|null */
        public ?bool $hasExtendedOptions=null,
        /** @var int */
        public int $type=0,
        /** @var string|null */
        public ?string $reference=null,
        /** @var bool|null */
        public ?bool $passportChipEnabled=null,
        /** @var bool|null */
        public ?bool $passportEnabled=null,
        /** @var bool|null */
        public ?bool $drivingEnabled=null,
        /** @var bool|null */
        public ?bool $birthEnabled=null,
        /** @var bool|null */
        public ?bool $smartlinkEnabled=null,
        /** @var bool|null */
        public ?bool $niEnabled=null,
        /** @var bool|null */
        public ?bool $nhsEnabled=null,
        /** @var bool|null */
        public ?bool $electricityEnabled=null,
        /** @var bool|null */
        public ?bool $bankEnabled=null,
        /** @var bool|null */
        public ?bool $creditActiveEnabled=null,
        /** @var bool|null */
        public ?bool $cardNumberEnabled=null,
        /** @var bool|null */
        public ?bool $travelVisaEnabled=null,
        /** @var bool|null */
        public ?bool $idCardEnabled=null,
        /** @var bool|null */
        public ?bool $bankLiveEnabled=null,
        /** @var bool|null */
        public ?bool $companyDirectorEnabled=null,
        /** @var bool|null */
        public ?bool $searchActivityEnabled=null,
        /** @var bool|null */
        public ?bool $prsEnabled=null,
        /** @var bool|null */
        public ?bool $onlineProfileEnabled=null,
        /** @var bool|null */
        public ?bool $pollNumberEnabled=null,
        /** @var bool|null */
        public ?bool $marriageEnabled=null,
        /** @var bool|null */
        public ?bool $ageEnabled=null,
        /** @var ValidIdBasicRequest|null */
        public ?ValidIdBasicRequest $basicRequest=null,
        /** @var ValidIdPassportRequest|null */
        public ?ValidIdPassportRequest $passportRequest=null,
        /** @var ValidIdDrivingRequest|null */
        public ?ValidIdDrivingRequest $drivingRequest=null,
        /** @var ValidIdBirthRequest|null */
        public ?ValidIdBirthRequest $birthRequest=null,
        /** @var ValidIdNIRequest|null */
        public ?ValidIdNIRequest $niRequest=null,
        /** @var ValidIdNHSRequest|null */
        public ?ValidIdNHSRequest $nhsRequest=null,
        /** @var ValidIdElectricityRequest|null */
        public ?ValidIdElectricityRequest $electricityRequest=null,
        /** @var ValidIdBankRequest|null */
        public ?ValidIdBankRequest $bankRequest=null,
        /** @var ValidIdCardNumberRequest|null */
        public ?ValidIdCardNumberRequest $cardNumberRequest=null,
        /** @var ValidIdTravelVisaRequest|null */
        public ?ValidIdTravelVisaRequest $travelVisaRequest=null,
        /** @var ValidIdIdCardRequest|null */
        public ?ValidIdIdCardRequest $idCardRequest=null,
        /** @var ValidIdPollNumberRequest|null */
        public ?ValidIdPollNumberRequest $pollNumberRequest=null,
        /** @var ValidIdMarriageRequest|null */
        public ?ValidIdMarriageRequest $marriageRequest=null,
        /** @var ValidIdResult|null */
        public ?ValidIdResult $result=null,
        /** @var SearchRecord|null */
        public ?SearchRecord $sanctionsResult=null,
        /** @var PepSearchRecord|null */
        public ?PepSearchRecord $pepSearchRecord=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['sanctionsSearchId'])) $this->sanctionsSearchId = $o['sanctionsSearchId'];
        if (isset($o['pepSearchId'])) $this->pepSearchId = $o['pepSearchId'];
        if (isset($o['validIdPassportId'])) $this->validIdPassportId = $o['validIdPassportId'];
        if (isset($o['validIdPassportChipId'])) $this->validIdPassportChipId = $o['validIdPassportChipId'];
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
        if (isset($o['searchListIds'])) $this->searchListIds = $o['searchListIds'];
        if (isset($o['pepError'])) $this->pepError = $o['pepError'];
        if (isset($o['replaced'])) $this->replaced = $o['replaced'];
        if (isset($o['replacementSearchId'])) $this->replacementSearchId = $o['replacementSearchId'];
        if (isset($o['hasError'])) $this->hasError = $o['hasError'];
        if (isset($o['hasCompletedRequest'])) $this->hasCompletedRequest = $o['hasCompletedRequest'];
        if (isset($o['hasCompletedSearch'])) $this->hasCompletedSearch = $o['hasCompletedSearch'];
        if (isset($o['hasExtendedOptions'])) $this->hasExtendedOptions = $o['hasExtendedOptions'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['reference'])) $this->reference = $o['reference'];
        if (isset($o['passportChipEnabled'])) $this->passportChipEnabled = $o['passportChipEnabled'];
        if (isset($o['passportEnabled'])) $this->passportEnabled = $o['passportEnabled'];
        if (isset($o['drivingEnabled'])) $this->drivingEnabled = $o['drivingEnabled'];
        if (isset($o['birthEnabled'])) $this->birthEnabled = $o['birthEnabled'];
        if (isset($o['smartlinkEnabled'])) $this->smartlinkEnabled = $o['smartlinkEnabled'];
        if (isset($o['niEnabled'])) $this->niEnabled = $o['niEnabled'];
        if (isset($o['nhsEnabled'])) $this->nhsEnabled = $o['nhsEnabled'];
        if (isset($o['electricityEnabled'])) $this->electricityEnabled = $o['electricityEnabled'];
        if (isset($o['bankEnabled'])) $this->bankEnabled = $o['bankEnabled'];
        if (isset($o['creditActiveEnabled'])) $this->creditActiveEnabled = $o['creditActiveEnabled'];
        if (isset($o['cardNumberEnabled'])) $this->cardNumberEnabled = $o['cardNumberEnabled'];
        if (isset($o['travelVisaEnabled'])) $this->travelVisaEnabled = $o['travelVisaEnabled'];
        if (isset($o['idCardEnabled'])) $this->idCardEnabled = $o['idCardEnabled'];
        if (isset($o['bankLiveEnabled'])) $this->bankLiveEnabled = $o['bankLiveEnabled'];
        if (isset($o['companyDirectorEnabled'])) $this->companyDirectorEnabled = $o['companyDirectorEnabled'];
        if (isset($o['searchActivityEnabled'])) $this->searchActivityEnabled = $o['searchActivityEnabled'];
        if (isset($o['prsEnabled'])) $this->prsEnabled = $o['prsEnabled'];
        if (isset($o['onlineProfileEnabled'])) $this->onlineProfileEnabled = $o['onlineProfileEnabled'];
        if (isset($o['pollNumberEnabled'])) $this->pollNumberEnabled = $o['pollNumberEnabled'];
        if (isset($o['marriageEnabled'])) $this->marriageEnabled = $o['marriageEnabled'];
        if (isset($o['ageEnabled'])) $this->ageEnabled = $o['ageEnabled'];
        if (isset($o['basicRequest'])) $this->basicRequest = JsonConverters::from('ValidIdBasicRequest', $o['basicRequest']);
        if (isset($o['passportRequest'])) $this->passportRequest = JsonConverters::from('ValidIdPassportRequest', $o['passportRequest']);
        if (isset($o['drivingRequest'])) $this->drivingRequest = JsonConverters::from('ValidIdDrivingRequest', $o['drivingRequest']);
        if (isset($o['birthRequest'])) $this->birthRequest = JsonConverters::from('ValidIdBirthRequest', $o['birthRequest']);
        if (isset($o['niRequest'])) $this->niRequest = JsonConverters::from('ValidIdNIRequest', $o['niRequest']);
        if (isset($o['nhsRequest'])) $this->nhsRequest = JsonConverters::from('ValidIdNHSRequest', $o['nhsRequest']);
        if (isset($o['electricityRequest'])) $this->electricityRequest = JsonConverters::from('ValidIdElectricityRequest', $o['electricityRequest']);
        if (isset($o['bankRequest'])) $this->bankRequest = JsonConverters::from('ValidIdBankRequest', $o['bankRequest']);
        if (isset($o['cardNumberRequest'])) $this->cardNumberRequest = JsonConverters::from('ValidIdCardNumberRequest', $o['cardNumberRequest']);
        if (isset($o['travelVisaRequest'])) $this->travelVisaRequest = JsonConverters::from('ValidIdTravelVisaRequest', $o['travelVisaRequest']);
        if (isset($o['idCardRequest'])) $this->idCardRequest = JsonConverters::from('ValidIdIdCardRequest', $o['idCardRequest']);
        if (isset($o['pollNumberRequest'])) $this->pollNumberRequest = JsonConverters::from('ValidIdPollNumberRequest', $o['pollNumberRequest']);
        if (isset($o['marriageRequest'])) $this->marriageRequest = JsonConverters::from('ValidIdMarriageRequest', $o['marriageRequest']);
        if (isset($o['result'])) $this->result = JsonConverters::from('ValidIdResult', $o['result']);
        if (isset($o['sanctionsResult'])) $this->sanctionsResult = JsonConverters::from('SearchRecord', $o['sanctionsResult']);
        if (isset($o['pepSearchRecord'])) $this->pepSearchRecord = JsonConverters::from('PepSearchRecord', $o['pepSearchRecord']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->sanctionsSearchId)) $o['sanctionsSearchId'] = $this->sanctionsSearchId;
        if (isset($this->pepSearchId)) $o['pepSearchId'] = $this->pepSearchId;
        if (isset($this->validIdPassportId)) $o['validIdPassportId'] = $this->validIdPassportId;
        if (isset($this->validIdPassportChipId)) $o['validIdPassportChipId'] = $this->validIdPassportChipId;
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        if (isset($this->searchListIds)) $o['searchListIds'] = $this->searchListIds;
        if (isset($this->pepError)) $o['pepError'] = $this->pepError;
        if (isset($this->replaced)) $o['replaced'] = $this->replaced;
        if (isset($this->replacementSearchId)) $o['replacementSearchId'] = $this->replacementSearchId;
        if (isset($this->hasError)) $o['hasError'] = $this->hasError;
        if (isset($this->hasCompletedRequest)) $o['hasCompletedRequest'] = $this->hasCompletedRequest;
        if (isset($this->hasCompletedSearch)) $o['hasCompletedSearch'] = $this->hasCompletedSearch;
        if (isset($this->hasExtendedOptions)) $o['hasExtendedOptions'] = $this->hasExtendedOptions;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->reference)) $o['reference'] = $this->reference;
        if (isset($this->passportChipEnabled)) $o['passportChipEnabled'] = $this->passportChipEnabled;
        if (isset($this->passportEnabled)) $o['passportEnabled'] = $this->passportEnabled;
        if (isset($this->drivingEnabled)) $o['drivingEnabled'] = $this->drivingEnabled;
        if (isset($this->birthEnabled)) $o['birthEnabled'] = $this->birthEnabled;
        if (isset($this->smartlinkEnabled)) $o['smartlinkEnabled'] = $this->smartlinkEnabled;
        if (isset($this->niEnabled)) $o['niEnabled'] = $this->niEnabled;
        if (isset($this->nhsEnabled)) $o['nhsEnabled'] = $this->nhsEnabled;
        if (isset($this->electricityEnabled)) $o['electricityEnabled'] = $this->electricityEnabled;
        if (isset($this->bankEnabled)) $o['bankEnabled'] = $this->bankEnabled;
        if (isset($this->creditActiveEnabled)) $o['creditActiveEnabled'] = $this->creditActiveEnabled;
        if (isset($this->cardNumberEnabled)) $o['cardNumberEnabled'] = $this->cardNumberEnabled;
        if (isset($this->travelVisaEnabled)) $o['travelVisaEnabled'] = $this->travelVisaEnabled;
        if (isset($this->idCardEnabled)) $o['idCardEnabled'] = $this->idCardEnabled;
        if (isset($this->bankLiveEnabled)) $o['bankLiveEnabled'] = $this->bankLiveEnabled;
        if (isset($this->companyDirectorEnabled)) $o['companyDirectorEnabled'] = $this->companyDirectorEnabled;
        if (isset($this->searchActivityEnabled)) $o['searchActivityEnabled'] = $this->searchActivityEnabled;
        if (isset($this->prsEnabled)) $o['prsEnabled'] = $this->prsEnabled;
        if (isset($this->onlineProfileEnabled)) $o['onlineProfileEnabled'] = $this->onlineProfileEnabled;
        if (isset($this->pollNumberEnabled)) $o['pollNumberEnabled'] = $this->pollNumberEnabled;
        if (isset($this->marriageEnabled)) $o['marriageEnabled'] = $this->marriageEnabled;
        if (isset($this->ageEnabled)) $o['ageEnabled'] = $this->ageEnabled;
        if (isset($this->basicRequest)) $o['basicRequest'] = JsonConverters::to('ValidIdBasicRequest', $this->basicRequest);
        if (isset($this->passportRequest)) $o['passportRequest'] = JsonConverters::to('ValidIdPassportRequest', $this->passportRequest);
        if (isset($this->drivingRequest)) $o['drivingRequest'] = JsonConverters::to('ValidIdDrivingRequest', $this->drivingRequest);
        if (isset($this->birthRequest)) $o['birthRequest'] = JsonConverters::to('ValidIdBirthRequest', $this->birthRequest);
        if (isset($this->niRequest)) $o['niRequest'] = JsonConverters::to('ValidIdNIRequest', $this->niRequest);
        if (isset($this->nhsRequest)) $o['nhsRequest'] = JsonConverters::to('ValidIdNHSRequest', $this->nhsRequest);
        if (isset($this->electricityRequest)) $o['electricityRequest'] = JsonConverters::to('ValidIdElectricityRequest', $this->electricityRequest);
        if (isset($this->bankRequest)) $o['bankRequest'] = JsonConverters::to('ValidIdBankRequest', $this->bankRequest);
        if (isset($this->cardNumberRequest)) $o['cardNumberRequest'] = JsonConverters::to('ValidIdCardNumberRequest', $this->cardNumberRequest);
        if (isset($this->travelVisaRequest)) $o['travelVisaRequest'] = JsonConverters::to('ValidIdTravelVisaRequest', $this->travelVisaRequest);
        if (isset($this->idCardRequest)) $o['idCardRequest'] = JsonConverters::to('ValidIdIdCardRequest', $this->idCardRequest);
        if (isset($this->pollNumberRequest)) $o['pollNumberRequest'] = JsonConverters::to('ValidIdPollNumberRequest', $this->pollNumberRequest);
        if (isset($this->marriageRequest)) $o['marriageRequest'] = JsonConverters::to('ValidIdMarriageRequest', $this->marriageRequest);
        if (isset($this->result)) $o['result'] = JsonConverters::to('ValidIdResult', $this->result);
        if (isset($this->sanctionsResult)) $o['sanctionsResult'] = JsonConverters::to('SearchRecord', $this->sanctionsResult);
        if (isset($this->pepSearchRecord)) $o['pepSearchRecord'] = JsonConverters::to('PepSearchRecord', $this->pepSearchRecord);
        return empty($o) ? new class(){} : $o;
    }
}

class GetValidIdData extends BaseResponse implements IBaseSearchResponse, JsonSerializable
{
    /**
     * @param ResponseStatus|null $responseStatus
     */
    public function __construct(
        ?ResponseStatus $responseStatus=null,
        /** @var ArrayOfLinkedTo|null */
        public ?ArrayOfLinkedTo $linkedTo=null,
        /** @var bool|null */
        public ?bool $resolveSanctionsResults=null,
        /** @var ValidIdRecord|null */
        public ?ValidIdRecord $searchRecord=null,
        /** @var int|null */
        public ?int $sanctionsSearchId=null,
        /** @var int|null */
        public ?int $pepSearchId=null,
        /** @var int */
        public int $validIdSearchId=0
    ) {
        parent::__construct($responseStatus);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['linkedTo'])) $this->linkedTo = JsonConverters::from('ArrayOfLinkedTo', $o['linkedTo']);
        if (isset($o['resolveSanctionsResults'])) $this->resolveSanctionsResults = $o['resolveSanctionsResults'];
        if (isset($o['searchRecord'])) $this->searchRecord = JsonConverters::from('ValidIdRecord', $o['searchRecord']);
        if (isset($o['sanctionsSearchId'])) $this->sanctionsSearchId = $o['sanctionsSearchId'];
        if (isset($o['pepSearchId'])) $this->pepSearchId = $o['pepSearchId'];
        if (isset($o['validIdSearchId'])) $this->validIdSearchId = $o['validIdSearchId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->linkedTo)) $o['linkedTo'] = JsonConverters::to('ArrayOfLinkedTo', $this->linkedTo);
        if (isset($this->resolveSanctionsResults)) $o['resolveSanctionsResults'] = $this->resolveSanctionsResults;
        if (isset($this->searchRecord)) $o['searchRecord'] = JsonConverters::to('ValidIdRecord', $this->searchRecord);
        if (isset($this->sanctionsSearchId)) $o['sanctionsSearchId'] = $this->sanctionsSearchId;
        if (isset($this->pepSearchId)) $o['pepSearchId'] = $this->pepSearchId;
        if (isset($this->validIdSearchId)) $o['validIdSearchId'] = $this->validIdSearchId;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetValidIdResponse implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var GetValidIdData|null */
        public ?GetValidIdData $data=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['data'])) $this->data = JsonConverters::from('GetValidIdData', $o['data']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->data)) $o['data'] = JsonConverters::to('GetValidIdData', $this->data);
        return empty($o) ? new class(){} : $o;
    }
}

class GetValidIdRequest implements JsonSerializable
{
    public function __construct(
        /** @description If the search should be saved against a single Sub User account, specify their username here */
        // @ApiMember(Description="If the search should be saved against a single Sub User account, specify their username here")
        /** @var string|null */
        public ?string $subUserName=null,

        /** @var int */
        public int $id=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['subUserName'])) $this->subUserName = $o['subUserName'];
        if (isset($o['id'])) $this->id = $o['id'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->subUserName)) $o['subUserName'] = $this->subUserName;
        if (isset($this->id)) $o['id'] = $this->id;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetValidId extends BaseRequest implements JsonSerializable
{
    /**
     * @param Authentication|null $authentication
     */
    public function __construct(
        ?Authentication $authentication=null,
        // @DataMember
        /** @var GetValidIdRequest|null */
        public ?GetValidIdRequest $request=null
    ) {
        parent::__construct($authentication);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['request'])) $this->request = JsonConverters::from('GetValidIdRequest', $o['request']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->request)) $o['request'] = JsonConverters::to('GetValidIdRequest', $this->request);
        return empty($o) ? new class(){} : $o;
    }
}

PHP GetValidId DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /validid/get HTTP/1.1 
Host: api.sanctionssearch.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"request":{"subUserName":"String","id":0},"authentication":{"apiUserId":"String","apiUserKey":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"data":{"linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}],"resolveSanctionsResults":false,"searchRecord":{"id":0,"sanctionsSearchId":0,"pepSearchId":0,"validIdPassportId":0,"validIdPassportChipId":0,"date":"\/Date(-62135596800000-0000)\/","searchListIds":"String","pepError":false,"replaced":false,"replacementSearchId":0,"hasError":false,"hasCompletedRequest":false,"hasCompletedSearch":false,"hasExtendedOptions":false,"type":0,"reference":"String","passportChipEnabled":false,"passportEnabled":false,"drivingEnabled":false,"birthEnabled":false,"smartlinkEnabled":false,"niEnabled":false,"nhsEnabled":false,"electricityEnabled":false,"bankEnabled":false,"creditActiveEnabled":false,"cardNumberEnabled":false,"travelVisaEnabled":false,"idCardEnabled":false,"bankLiveEnabled":false,"companyDirectorEnabled":false,"searchActivityEnabled":false,"prsEnabled":false,"onlineProfileEnabled":false,"pollNumberEnabled":false,"marriageEnabled":false,"ageEnabled":false,"basicRequest":{"name1":"String","name2":"String","name3":"String","dateOfBirth":"\/Date(-62135596800000-0000)\/","gender":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String"},"passportRequest":{"passport1":"String","passport2":"String","passport3":"String","passport4":"String","passport5":"String","passport6":"String","passport7":"String","passport8":"String","passportMrzLineOne1":"String","passportMrzLineOne2":"String","passportMrzLineOne3":"String"},"drivingRequest":{"driving1":"String","driving2":"String","driving3":"String","drivingPostcode":"String","drivingMailSort":"String"},"birthRequest":{"birthForeName":"String","birthMiddleName":"String","birthSurname":"String","birthMaidenName":"String","birthDistrict":"String","birthCertIssueNum":"String"},"niRequest":{"niNumber":"String"},"nhsRequest":{"nhsNumber":"String"},"electricityRequest":{"mpanNumber1":"String","mpanNumber2":"String","mpanNumber3":"String","mpanNumber4":"String"},"bankRequest":{"bankSortCode":"String","bankAccountNumber":"String"},"cardNumberRequest":{"cardNumber":"String","cardType":"String"},"travelVisaRequest":{"travelVisa1":"String","travelVisa2":"String","travelVisa3":"String","travelVisa4":"String","travelVisa5":"String","travelVisa6":"String","travelVisa7":"String","travelVisa8":"String","travelVisa9":"String"},"idCardRequest":{"idCard1":"String","idCard2":"String","idCard3":"String","idCard4":"String","idCard5":"String","idCard6":"String","idCard7":"String","idCard8":"String","idCard9":"String","idCard10":"String"},"pollNumberRequest":{"pollNumber":"String"},"marriageRequest":{"forename":"String","surname":"String","partnerForename":"String","partnerSurname":"String","date":"String","district":"String","certIssueNum":"String"},"result":{"summaryResult":{"summaryStatus":false,"summaryId":0,"summaryReference":"String","summarySmartscore":0,"summaryResultText":"String","noticeOfCorrection":"String"},"errors":[{"service":"String","details":"String"}],"drivingResult":{"drivingLicenseResultFlag":false,"drivingLicenseMailSortFlag":false,"drivingLicenseMiddleNameWarning":false,"drivingLicenceErrors":"String"},"dobResult":{"dobTracesmartCount":0,"dobExperianCount":0,"dobEquifaxCount":0,"dobEquifaxSpecified":false,"dobEquifaxStatus":"String"},"nhsResult":{"nhsResultFlag":false},"niResult":{"niResultFlag":false},"passportResult":{"passportMRZLine1Valid":false,"passportMRZValid":false,"passportDOBValid":false,"passportGenderValid":false,"passportExpiryValid":false,"passportNameValid":false,"passportErrors":"String"},"passportChipResult":{"contentAuthenticity":false,"chipAuthenticity":false,"chipDataToImageDataMatch":false,"chipPhotoToImagePhotoMatch":false,"passportChipMrzLineOne":"String","passportChipMrzLineTwo":"String","passportChipMrzLineOneValid":false,"passportChipMrzLineTwoValid":false,"passportChipDOBValid":false,"passportChipGenderValid":false,"passportChipExpiryValid":false,"passportChipNameValid":false,"passportChipErrors":"String"},"birthResult":{"birthResultFlag":"String","birthName":"String","birthMaidenName":"String","birthRegDate":"String","birthRegDistrict":"String"},"electricityResult":{"mpanResultFlag":false},"bankResult":{"bankAccountResultFlag":false,"bankAccountName":"String","bankAccountBranch":"String","bankAccountBACSPayments":false,"bankAccountCHAPSPayments":false,"bankAccountFasterPayments":false,"bankAccountDirectDebits":false},"cardNumberResult":{"cardNumberValid":false,"cardTypeValid":false,"cardTypeConfirm":"String","cardFraudCheck":"String"},"creditActiveResult":{"creditActiveAccounts":0,"creditActiveLenders":0,"creditActiveCIFAS":"String","creditActiveCAIS":0,"creditActiveInsightAccounts":0},"addressResult":{"addressForename":"String","addressMiddleName":"String","addressSurname":"String","addressMatchType":"String","addressDOB":"\/Date(-62135596800000-0000)\/","addressForenameAppended":false,"addressMiddleNameAppended":false,"addressDOBAppended":false,"addressTelephone":"String","addressTelephoneName":"String","addressGoneAway":"String","addressSource":"String","credivaFullER":false,"addressValidated":false,"addressRecency":"\/Date(-62135596800000-0000)\/","occupants":[{"name":"String","dob":"\/Date(-62135596800000-0000)\/","recency":"\/Date(-62135596800000-0000)\/","residency":"String","telephone":"String","telephoneName":"String","source":"String","residencyScore":"String"}],"sales":[{"type":"String","tenure":"String","date":"\/Date(-62135596800000-0000)\/","price":"String","silhouette":"String"}]},"smartlinkResult":{"addresses":[{"title":"String","forename":"String","middleName":"String","surname":"String","dob":"\/Date(-62135596800000-0000)\/","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String","deliveryPointSuffix":"String","recency":"\/Date(-62135596800000-0000)\/","residency":"String","linkSource":"String"}]},"deathscreenResult":{"deaths":[{"forename":"String","secondName":"String","thirdName":"String","fourthName":"String","surname":"String","district":"String","dob":"\/Date(-62135596800000-0000)\/","dod":"\/Date(-62135596800000-0000)\/","dor":"String","volumeNo":"String","distNo":"String","pageNo":"String","regNo":"String","entryNo":"String","placeOfBirth":"String","maidenName":"String","groReference":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String","matchType":"String"}]},"pepResult":{"pepPersons":[{"name":"String","recency":"\/Date(-62135596800000-0000)\/","dob":"String","addresses":[{"address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String","deliveryPointSuffix":"String"}],"aliases":[{"name":"String"}],"positions":[{"position":"String"}]}]},"ccjResult":{"ccJs":[{"name":"String","dob":"\/Date(-62135596800000-0000)\/","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String","judgementDate":"\/Date(-62135596800000-0000)\/","judgementType":"String","amount":"String","caseNo":"String","courtName":"String","dateEnd":"\/Date(-62135596800000-0000)\/"}]},"insolvencyResult":{"insolvencies":[{"type":"String","caseType":"String","name":"String","caseNo":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","postCode":"String","deliveryPointSuffix":"String","dob":"\/Date(-62135596800000-0000)\/","court":"String","startDate":"\/Date(-62135596800000-0000)\/","status":"String","occupation":"String","aliases":"String","description":"String","serviceOffice":"String","telephoneNumber":"String","tradingNames":"String","debtTotal":"String","assetTotal":"String","previousAddress1":"String","previousAddress2":"String","previousAddress3":"String","previousAddress4":"String","previousAddress5":"String","previousPostCode":"String","previousDeliveryPointSuffix":"String","presentationDate":"\/Date(-62135596800000-0000)\/"}]},"travelVisaResult":{"visaMRZValid":false,"visaInDate":false,"visaUKResidenceValid":false},"idCardResult":{"idCardMRZValid":false,"idCardDOBValid":false,"idCardGenderValid":false,"idCardExpiryValid":false,"idCardCountryValid":false},"bankLiveResult":{"bankLiveSortcode":"String","bankLiveNumber":"String","bankLiveName":"String","bankLiveAddress":"String","bankLiveStatus":"String","bankLiveError":"String"},"companyDirectorResult":{"directorships":[{"matchType":"String","dateAppointed":"\/Date(-62135596800000-0000)\/","companyRegNo":"String","companyName":"String","registeredOffice":"String","appointments":[{"title":"String","name":"String","address":"String","dob":"\/Date(-62135596800000-0000)\/","occupation":"String","nationality":"String","appointmentDate":"\/Date(-62135596800000-0000)\/","appointmentType":"String"}]}]},"searchActivityResult":{"activity":[{"profileType":"String","oneMonth":0,"threeMonth":0,"sixMonth":0,"history":[{"businesActivity":"String","date":"\/Date(-62135596800000-0000)\/"}]}]},"prsResult":{"matchResult":"String","propertyOwnership":"String","titleNumber":"String"},"pollNumberResult":{"pollNumberMatch":0},"onlineProfileResult":{"onlineProfileStatus":0,"onlineTwitterUsername":"String","onlineTwitterActivityMonth1":0,"onlineTwitterActivityMonth2":0,"onlineTwitterActivityMonth3":0,"onlineTwitterActivityMonth4":0,"onlineTwitterActivityMonth5":0,"onlineTwitterActivityMonth6":0,"onlineTwitterActivityMonth7":0,"onlineTwitterActivityMonth8":0,"onlineTwitterActivityMonth9":0,"onlineTwitterActivityMonth10":0,"onlineTwitterActivityMonth11":0,"onlineTwitterActivityMonth12":0},"marriageResult":{"marriageCertFlag":0,"marriageResultFlag":0},"ageResult":{"ageIsAboveLower":false,"ageIsBelowUpper":false}},"sanctionsResult":{"id":0,"searchType":"String","dateSearched":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","dateArchived":"\/Date(-62135596800000-0000)\/","isArchived":false,"numOfResults":0,"clientInResults":false,"clientNotInResults":false,"affectedByUpdate":false,"searchCriteria":{"name":"String","address":"String","country":"String","dateOfBirth":"String","nationality":"String","reference":"String"},"searchResults":{"euResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","addresses":[{"street":"String","city":"String","country":"String","postCode":"String","other":"String"}],"births":[{"date":"String","place":"String","country":"String"}],"citizenships":[{"country":"String"}],"names":[{"fullName":"String","gender":"String"}],"passports":[{"number":"String","country":"String"}]}],"hmtResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateListed":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","name1":"String","name2":"String","name3":"String","name4":"String","name5":"String","name6":"String","dateOfBirth":"String","countryOfBirth":"String","nationality":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","address6":"String","postCode":"String","country":"String"}],"hmtUkraineResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateListed":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","name1":"String","name2":"String","name3":"String","name4":"String","name5":"String","name6":"String","dateOfBirth":"String","countryOfBirth":"String","nationality":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","address6":"String","postCode":"String","country":"String"}],"ofacResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","firstName":"String","lastName":"String","addresses":[{"address1":"String","address2":"String","address3":"String","city":"String","state":"String","postCode":"String","country":"String"}],"akas":[{"firstName":"String","lastName":"String","type":"String","strength":"String"}],"dateOfBirths":[{"dateOfBirth":"String"}],"nationalities":[{"country":"String"}],"placeOfBirths":[{"placeOfBirth":"String"}]}],"ofacConsolidatedResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","firstName":"String","lastName":"String","addresses":[{"address1":"String","address2":"String","address3":"String","city":"String","state":"String","postCode":"String","country":"String"}],"akas":[{"firstName":"String","lastName":"String","type":"String","strength":"String"}],"dateOfBirths":[{"dateOfBirth":"String"}],"nationalities":[{"country":"String"}],"placeOfBirths":[{"placeOfBirth":"String"}]}],"dfatResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","fullName":"String","address":"String","dateOfBirth":"String","placeOfBirth":"String","nationality":"String"}],"osfiResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","fullName":"String","address":"String","dateOfBirth":"String","placeOfBirth":"String","nationality":"String"}],"canadianJusticeResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","name":"String","dateOfBirth":"String","country":"String","refId":0}],"canadianSemaResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","name":"String","dateOfBirth":"String","country":"String","schedule":"String","item":"String"}],"swissSecoResults":[{"searchResultId":0,"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","sanctionsListId":"String","sanctionsListName":"String","addresses":[{"searchResultAddressId":0,"type":"String","address1":"String","address2":"String","address3":"String","city":"String","county":"String","postCode":"String","country":"String"}],"datesOfBirth":[{"searchResultDateOfBirthId":0,"dateOfBirth":"String","year":0,"month":0,"day":0,"type":"String"}],"names":[{"searchResultNameId":0,"type":"String","title":"String","fullName":"String","resultSimilarity":0}],"nationalities":[{"searchResultNationalityId":0,"nationality":"String"}],"placesOfBirth":[{"searchResultPlaceOfBirthId":0,"placeOfBirth":"String","countryOfBirth":"String"}],"remarks":[{"searchResultRemarkId":0,"name":"String","description":"String"}]}]},"searchSources":[{"listId":"String","listName":"String","listShortName":"String","isAffectedByListUpdate":false}],"listSearchResults":[{"searchResultId":0,"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","sanctionsListId":"String","sanctionsListName":"String","addresses":[{"searchResultAddressId":0,"type":"String","address1":"String","address2":"String","address3":"String","city":"String","county":"String","postCode":"String","country":"String"}],"datesOfBirth":[{"searchResultDateOfBirthId":0,"dateOfBirth":"String","year":0,"month":0,"day":0,"type":"String"}],"names":[{"searchResultNameId":0,"type":"String","title":"String","fullName":"String","resultSimilarity":0}],"nationalities":[{"searchResultNationalityId":0,"nationality":"String"}],"placesOfBirth":[{"searchResultPlaceOfBirthId":0,"placeOfBirth":"String","countryOfBirth":"String"}],"remarks":[{"searchResultRemarkId":0,"name":"String","description":"String"}]}]},"pepSearchRecord":{"id":0,"searchType":"String","dateSearched":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","dateRenewal":"\/Date(-62135596800000-0000)\/","dateArchived":"\/Date(-62135596800000-0000)\/","isArchived":false,"numOfResults":0,"clientInResults":false,"clientNotInResults":false,"affectedByUpdate":false,"isDayOneSearch":false,"searchCriteria":{"name":"String","address":"String","country":"String","dateOfBirth":"String","nationality":"String","reference":"String"},"searchResults":{"results":[{"resultSimilarity":0,"resultResolved":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/","resultIsClient":false,"id":0,"type":"String","title":"String","forename":"String","middlename":"String","surname":"String","softDelete":false,"dateOfSoftDelete":"\/Date(-62135596800000-0000)\/","dateOfCapture":"\/Date(-62135596800000-0000)\/","dateOfBirth":"\/Date(-62135596800000-0000)\/","dateOfDeath":"\/Date(-62135596800000-0000)\/","yearOfBirth":0,"yearOfDeath":0,"gender":"String","homeTelephone":"String","businessTelephone":"String","mobileTelephone":"String","fax":"String","email":"String","nationality":"String","source":"String","category":"String","picture":"String","alternateTitle":"String","businessName":"String","description":"String","telephone":"String","website":"String","pepTier":0,"addresses":[{"addressLine1":"String","addressLine2":"String","addressLine3":"String","addressLine4":"String","town":"String","county":"String","postCode":"String","country":"String","isoCountry":"String","softDelete":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/"}],"aliases":[{"forename":"String","middleName":"String","surname":"String","softDelete":false,"dateOfSoftDelete":"\/Date(-62135596800000-0000)\/","dateLastUpdated":"\/Date(-62135596800000-0000)\/","title":"String","alternateTitle":"String","businessName":"String"}],"articles":[{"url":"String","originalUrl":"String","source":"String","dateOfCapture":"\/Date(-62135596800000-0000)\/","dateLastUpdated":"\/Date(-62135596800000-0000)\/","snippets":[{"title":"String","text":"String","adverseTerms":"String"}]}],"associations":[{"linkDescription":"String","softDelete":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/","fullName":"String"}],"businessAssociations":[{"linkDescription":"String","softDelete":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/","businessName":"String"}],"notes":[{"source":"String","notes":"String","softDelete":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/"}],"politicalPositions":[{"description":"String","from":"String","to":"String","country":"String","softDelete":false,"dateLastUpdated":"\/Date(-62135596800000-0000)\/"}]}]}}},"sanctionsSearchId":0,"pepSearchId":0,"validIdSearchId":0,"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}}