Sanctions Search API: v2

<back to all web services

GetDbsSearch

<?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 ApplicantInformation implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $name=null,
        /** @var string|null */
        public ?string $dateOfBirth=null,
        /** @var string|null */
        public ?string $email=null,
        /** @var string|null */
        public ?string $mobileInternational=null,
        /** @var string|null */
        public ?string $jobLocation=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['dateOfBirth'])) $this->dateOfBirth = $o['dateOfBirth'];
        if (isset($o['email'])) $this->email = $o['email'];
        if (isset($o['mobileInternational'])) $this->mobileInternational = $o['mobileInternational'];
        if (isset($o['jobLocation'])) $this->jobLocation = $o['jobLocation'];
        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->dateOfBirth)) $o['dateOfBirth'] = $this->dateOfBirth;
        if (isset($this->email)) $o['email'] = $this->email;
        if (isset($this->mobileInternational)) $o['mobileInternational'] = $this->mobileInternational;
        if (isset($this->jobLocation)) $o['jobLocation'] = $this->jobLocation;
        if (isset($this->reference)) $o['reference'] = $this->reference;
        return empty($o) ? new class(){} : $o;
    }
}

class DbsSearchSummary implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $id=0,
        /** @var DateTime */
        public DateTime $dateSearched=new DateTime(),
        /** @var DateTime */
        public DateTime $dateUpdated=new DateTime(),
        /** @var string|null */
        public ?string $status=null,
        /** @var string|null */
        public ?string $disclosureStatus=null,
        /** @var bool|null */
        public ?bool $isApplicantInfoCompleted=null,
        /** @var bool|null */
        public ?bool $isIdCheckCompleted=null,
        /** @var bool|null */
        public ?bool $isApplicationCompleted=null,
        /** @var bool|null */
        public ?bool $isApplicationSubmitted=null,
        /** @var bool|null */
        public ?bool $isApplicationDisclosed=null,
        /** @var string|null */
        public ?string $disclosureLevel=null,
        /** @var ApplicantInformation|null */
        public ?ApplicantInformation $applicantInformation=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        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['status'])) $this->status = $o['status'];
        if (isset($o['disclosureStatus'])) $this->disclosureStatus = $o['disclosureStatus'];
        if (isset($o['isApplicantInfoCompleted'])) $this->isApplicantInfoCompleted = $o['isApplicantInfoCompleted'];
        if (isset($o['isIdCheckCompleted'])) $this->isIdCheckCompleted = $o['isIdCheckCompleted'];
        if (isset($o['isApplicationCompleted'])) $this->isApplicationCompleted = $o['isApplicationCompleted'];
        if (isset($o['isApplicationSubmitted'])) $this->isApplicationSubmitted = $o['isApplicationSubmitted'];
        if (isset($o['isApplicationDisclosed'])) $this->isApplicationDisclosed = $o['isApplicationDisclosed'];
        if (isset($o['disclosureLevel'])) $this->disclosureLevel = $o['disclosureLevel'];
        if (isset($o['applicantInformation'])) $this->applicantInformation = JsonConverters::from('ApplicantInformation', $o['applicantInformation']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        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->status)) $o['status'] = $this->status;
        if (isset($this->disclosureStatus)) $o['disclosureStatus'] = $this->disclosureStatus;
        if (isset($this->isApplicantInfoCompleted)) $o['isApplicantInfoCompleted'] = $this->isApplicantInfoCompleted;
        if (isset($this->isIdCheckCompleted)) $o['isIdCheckCompleted'] = $this->isIdCheckCompleted;
        if (isset($this->isApplicationCompleted)) $o['isApplicationCompleted'] = $this->isApplicationCompleted;
        if (isset($this->isApplicationSubmitted)) $o['isApplicationSubmitted'] = $this->isApplicationSubmitted;
        if (isset($this->isApplicationDisclosed)) $o['isApplicationDisclosed'] = $this->isApplicationDisclosed;
        if (isset($this->disclosureLevel)) $o['disclosureLevel'] = $this->disclosureLevel;
        if (isset($this->applicantInformation)) $o['applicantInformation'] = JsonConverters::to('ApplicantInformation', $this->applicantInformation);
        return empty($o) ? new class(){} : $o;
    }
}

class GetDbsSearchData extends BaseResponse implements IBaseSearchResponse, JsonSerializable
{
    /**
     * @param ResponseStatus|null $responseStatus
     */
    public function __construct(
        ?ResponseStatus $responseStatus=null,
        /** @var ArrayOfLinkedTo|null */
        public ?ArrayOfLinkedTo $linkedTo=null,
        /** @var DbsSearchSummary|null */
        public ?DbsSearchSummary $summary=null
    ) {
        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['summary'])) $this->summary = JsonConverters::from('DbsSearchSummary', $o['summary']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->linkedTo)) $o['linkedTo'] = JsonConverters::to('ArrayOfLinkedTo', $this->linkedTo);
        if (isset($this->summary)) $o['summary'] = JsonConverters::to('DbsSearchSummary', $this->summary);
        return empty($o) ? new class(){} : $o;
    }
}

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

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

// @DataContract
class GetDbsSearch extends BaseRequest implements JsonSerializable
{
    /**
     * @param Authentication|null $authentication
     */
    public function __construct(
        ?Authentication $authentication=null,
        /** @description The ID of the DBS Search */
        // @DataMember
        // @ApiMember(Description="The ID of the DBS Search", IsRequired=true, ParameterType="path")
        /** @var int */
        public int $id=0,

        /** @description Provide a value to only return a search that the specified sub user has permission to access. If this is null or empty, then sub user permissions will not be enforced and the search will be returned */
        // @DataMember
        // @ApiMember(Description="Provide a value to only return a search that the specified sub user has permission to access. If this is null or empty, then sub user permissions will not be enforced and the search will be returned", ParameterType="query")
        /** @var string|null */
        public ?string $subUserName=null
    ) {
        parent::__construct($authentication);
    }

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

PHP GetDbsSearch DTOs

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

HTTP + SOAP11

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

POST /soap11 HTTP/1.1 
Host: api.sanctionssearch.com 
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: GetDbsSearch

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>

<GetDbsSearch xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Authentication>
    <ApiUserId>String</ApiUserId>
    <ApiUserKey>String</ApiUserKey>
  </Authentication>
  <Id>0</Id>
  <SubUserName>String</SubUserName>
</GetDbsSearch>

</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>

<GetDbsSearchResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Data>
    <ResponseStatus>
      <ErrorCode>String</ErrorCode>
      <Message>String</Message>
      <StackTrace>String</StackTrace>
      <Errors>
        <ResponseError>
          <ErrorCode>String</ErrorCode>
          <FieldName>String</FieldName>
          <Message>String</Message>
          <Meta xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:KeyValueOfstringstring>
              <d6p1:Key>String</d6p1:Key>
              <d6p1:Value>String</d6p1:Value>
            </d6p1:KeyValueOfstringstring>
          </Meta>
        </ResponseError>
      </Errors>
      <Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </Meta>
    </ResponseStatus>
    <LinkedTo>
      <LinkedTo>
        <ClientId>0</ClientId>
        <Date>0001-01-01T00:00:00</Date>
        <Description>String</Description>
        <Id>0</Id>
        <IsArchived>false</IsArchived>
        <Name>String</Name>
        <Status>String</Status>
        <Subtype>String</Subtype>
        <Type>String</Type>
      </LinkedTo>
    </LinkedTo>
    <Summary>
      <ApplicantInformation>
        <DateOfBirth>String</DateOfBirth>
        <Email>String</Email>
        <JobLocation>String</JobLocation>
        <MobileInternational>String</MobileInternational>
        <Name>String</Name>
        <Reference>String</Reference>
      </ApplicantInformation>
      <DateSearched>0001-01-01T00:00:00</DateSearched>
      <DateUpdated>0001-01-01T00:00:00</DateUpdated>
      <DisclosureLevel>String</DisclosureLevel>
      <DisclosureStatus>String</DisclosureStatus>
      <Id>0</Id>
      <IsApplicantInfoCompleted>false</IsApplicantInfoCompleted>
      <IsApplicationCompleted>false</IsApplicationCompleted>
      <IsApplicationDisclosed>false</IsApplicationDisclosed>
      <IsApplicationSubmitted>false</IsApplicationSubmitted>
      <IsIdCheckCompleted>false</IsIdCheckCompleted>
      <Status>String</Status>
    </Summary>
  </Data>
</GetDbsSearchResponse>

</soap:Body>
</soap:Envelope>