Sanctions Search API: v2

<back to all web services

GetSearch

Sanctions
The following routes are available for this service:
POST/sanctions/getGet a sanctions search
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

// @DataContract
class Authentication implements IConvertible
{
    /**
    * 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")
    String? apiUserId;

    /**
    * 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")
    String? apiUserKey;

    Authentication({this.apiUserId,this.apiUserKey});
    Authentication.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        apiUserId = json['apiUserId'];
        apiUserKey = json['apiUserKey'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'apiUserId': apiUserId,
        'apiUserKey': apiUserKey
    };

    getTypeName() => "Authentication";
    TypeContext? context = _ctx;
}

// @DataContract
class BaseRequest implements IBaseRequest, IConvertible
{
    /**
    * The authentication credentials
    */
    // @DataMember
    // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
    Authentication? authentication;

    BaseRequest({this.authentication});
    BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        authentication = JsonConverters.fromJson(json['authentication'],'Authentication',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'authentication': JsonConverters.toJson(authentication,'Authentication',context!)
    };

    getTypeName() => "BaseRequest";
    TypeContext? context = _ctx;
}

// @DataContract
class ResponseError implements IConvertible
{
    // @DataMember(Order=1)
    String? errorCode;

    // @DataMember(Order=2)
    String? fieldName;

    // @DataMember(Order=3)
    String? message;

    // @DataMember(Order=4)
    Map<String,String?>? meta;

    ResponseError({this.errorCode,this.fieldName,this.message,this.meta});
    ResponseError.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        errorCode = json['errorCode'];
        fieldName = json['fieldName'];
        message = json['message'];
        meta = JsonConverters.toStringMap(json['meta']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'errorCode': errorCode,
        'fieldName': fieldName,
        'message': message,
        'meta': meta
    };

    getTypeName() => "ResponseError";
    TypeContext? context = _ctx;
}

class ArrayOfResponseError extends ListBase<ResponseError> implements IConvertible
{
    final List<ResponseError> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    ResponseError operator [](int index) => l[index];
    void operator []=(int index, ResponseError value) { l[index] = value; }
    ArrayOfResponseError();
    ArrayOfResponseError.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "ArrayOfResponseError";
    TypeContext? context = _ctx;
}

// @DataContract
class ResponseStatus implements IConvertible
{
    // @DataMember(Order=1)
    String? errorCode;

    // @DataMember(Order=2)
    String? message;

    // @DataMember(Order=3)
    String? stackTrace;

    // @DataMember(Order=4)
    ArrayOfResponseError? errors;

    // @DataMember(Order=5)
    Map<String,String?>? meta;

    ResponseStatus({this.errorCode,this.message,this.stackTrace,this.errors,this.meta});
    ResponseStatus.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        errorCode = json['errorCode'];
        message = json['message'];
        stackTrace = json['stackTrace'];
        errors = JsonConverters.fromJson(json['errors'],'ArrayOfResponseError',context!);
        meta = JsonConverters.toStringMap(json['meta']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'errorCode': errorCode,
        'message': message,
        'stackTrace': stackTrace,
        'errors': JsonConverters.toJson(errors,'ArrayOfResponseError',context!),
        'meta': meta
    };

    getTypeName() => "ResponseStatus";
    TypeContext? context = _ctx;
}

class BaseResponse implements IBaseDataResponse, IHasResponseStatus, IConvertible
{
    /**
    * The status of the response
    */
    // @ApiMember(Description="The status of the response")
    ResponseStatus? responseStatus;

    BaseResponse({this.responseStatus});
    BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "BaseResponse";
    TypeContext? context = _ctx;
}

class LinkedTo implements IConvertible
{
    int? clientId;
    int? id;
    String? type;
    String? subtype;
    String? status;
    String? description;
    bool? isArchived;
    String? name;
    DateTime? date;

    LinkedTo({this.clientId,this.id,this.type,this.subtype,this.status,this.description,this.isArchived,this.name,this.date});
    LinkedTo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        clientId = json['clientId'];
        id = json['id'];
        type = json['type'];
        subtype = json['subtype'];
        status = json['status'];
        description = json['description'];
        isArchived = json['isArchived'];
        name = json['name'];
        date = JsonConverters.fromJson(json['date'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'clientId': clientId,
        'id': id,
        'type': type,
        'subtype': subtype,
        'status': status,
        'description': description,
        'isArchived': isArchived,
        'name': name,
        'date': JsonConverters.toJson(date,'DateTime',context!)
    };

    getTypeName() => "LinkedTo";
    TypeContext? context = _ctx;
}

class ArrayOfLinkedTo extends ListBase<LinkedTo> implements IConvertible
{
    final List<LinkedTo> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    LinkedTo operator [](int index) => l[index];
    void operator []=(int index, LinkedTo value) { l[index] = value; }
    ArrayOfLinkedTo();
    ArrayOfLinkedTo.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "ArrayOfLinkedTo";
    TypeContext? context = _ctx;
}

class SearchCriteria implements IConvertible
{
    String? name;
    String? address;
    String? country;
    String? dateOfBirth;
    String? nationality;
    String? reference;

    SearchCriteria({this.name,this.address,this.country,this.dateOfBirth,this.nationality,this.reference});
    SearchCriteria.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        address = json['address'];
        country = json['country'];
        dateOfBirth = json['dateOfBirth'];
        nationality = json['nationality'];
        reference = json['reference'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'address': address,
        'country': country,
        'dateOfBirth': dateOfBirth,
        'nationality': nationality,
        'reference': reference
    };

    getTypeName() => "SearchCriteria";
    TypeContext? context = _ctx;
}

class SearchResultEuAddress implements IConvertible
{
    String? street;
    String? city;
    String? country;
    String? postCode;
    String? other;

    SearchResultEuAddress({this.street,this.city,this.country,this.postCode,this.other});
    SearchResultEuAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        street = json['street'];
        city = json['city'];
        country = json['country'];
        postCode = json['postCode'];
        other = json['other'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'street': street,
        'city': city,
        'country': country,
        'postCode': postCode,
        'other': other
    };

    getTypeName() => "SearchResultEuAddress";
    TypeContext? context = _ctx;
}

class SearchResultEuBirth implements IConvertible
{
    String? date;
    String? place;
    String? country;

    SearchResultEuBirth({this.date,this.place,this.country});
    SearchResultEuBirth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        date = json['date'];
        place = json['place'];
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'date': date,
        'place': place,
        'country': country
    };

    getTypeName() => "SearchResultEuBirth";
    TypeContext? context = _ctx;
}

class SearchResultOfacEuCitizenship implements IConvertible
{
    String? country;

    SearchResultOfacEuCitizenship({this.country});
    SearchResultOfacEuCitizenship.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'country': country
    };

    getTypeName() => "SearchResultOfacEuCitizenship";
    TypeContext? context = _ctx;
}

class SearchResultEuName implements IConvertible
{
    String? fullName;
    String? gender;

    SearchResultEuName({this.fullName,this.gender});
    SearchResultEuName.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        fullName = json['fullName'];
        gender = json['gender'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'fullName': fullName,
        'gender': gender
    };

    getTypeName() => "SearchResultEuName";
    TypeContext? context = _ctx;
}

class SearchResultEuPassport implements IConvertible
{
    String? number;
    String? country;

    SearchResultEuPassport({this.number,this.country});
    SearchResultEuPassport.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        number = json['number'];
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'number': number,
        'country': country
    };

    getTypeName() => "SearchResultEuPassport";
    TypeContext? context = _ctx;
}

class SearchResultEu implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    List<SearchResultEuAddress>? addresses;
    List<SearchResultEuBirth>? births;
    List<SearchResultOfacEuCitizenship>? citizenships;
    List<SearchResultEuName>? names;
    List<SearchResultEuPassport>? passports;

    SearchResultEu({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.addresses,this.births,this.citizenships,this.names,this.passports});
    SearchResultEu.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        addresses = JsonConverters.fromJson(json['addresses'],'List<SearchResultEuAddress>',context!);
        births = JsonConverters.fromJson(json['births'],'List<SearchResultEuBirth>',context!);
        citizenships = JsonConverters.fromJson(json['citizenships'],'List<SearchResultOfacEuCitizenship>',context!);
        names = JsonConverters.fromJson(json['names'],'List<SearchResultEuName>',context!);
        passports = JsonConverters.fromJson(json['passports'],'List<SearchResultEuPassport>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'addresses': JsonConverters.toJson(addresses,'List<SearchResultEuAddress>',context!),
        'births': JsonConverters.toJson(births,'List<SearchResultEuBirth>',context!),
        'citizenships': JsonConverters.toJson(citizenships,'List<SearchResultOfacEuCitizenship>',context!),
        'names': JsonConverters.toJson(names,'List<SearchResultEuName>',context!),
        'passports': JsonConverters.toJson(passports,'List<SearchResultEuPassport>',context!)
    };

    getTypeName() => "SearchResultEu";
    TypeContext? context = _ctx;
}

class SearchResultHmTreasury implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateListed;
    DateTime? dateUpdated;
    String? 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;

    SearchResultHmTreasury({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateListed,this.dateUpdated,this.name1,this.name2,this.name3,this.name4,this.name5,this.name6,this.dateOfBirth,this.countryOfBirth,this.nationality,this.address1,this.address2,this.address3,this.address4,this.address5,this.address6,this.postCode,this.country});
    SearchResultHmTreasury.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateListed = JsonConverters.fromJson(json['dateListed'],'DateTime',context!);
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        name1 = json['name1'];
        name2 = json['name2'];
        name3 = json['name3'];
        name4 = json['name4'];
        name5 = json['name5'];
        name6 = json['name6'];
        dateOfBirth = json['dateOfBirth'];
        countryOfBirth = json['countryOfBirth'];
        nationality = json['nationality'];
        address1 = json['address1'];
        address2 = json['address2'];
        address3 = json['address3'];
        address4 = json['address4'];
        address5 = json['address5'];
        address6 = json['address6'];
        postCode = json['postCode'];
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateListed': JsonConverters.toJson(dateListed,'DateTime',context!),
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'name1': name1,
        'name2': name2,
        'name3': name3,
        'name4': name4,
        'name5': name5,
        'name6': name6,
        'dateOfBirth': dateOfBirth,
        'countryOfBirth': countryOfBirth,
        'nationality': nationality,
        'address1': address1,
        'address2': address2,
        'address3': address3,
        'address4': address4,
        'address5': address5,
        'address6': address6,
        'postCode': postCode,
        'country': country
    };

    getTypeName() => "SearchResultHmTreasury";
    TypeContext? context = _ctx;
}

class SearchResultOfacAddress implements IConvertible
{
    String? address1;
    String? address2;
    String? address3;
    String? city;
    String? state;
    String? postCode;
    String? country;

    SearchResultOfacAddress({this.address1,this.address2,this.address3,this.city,this.state,this.postCode,this.country});
    SearchResultOfacAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        address1 = json['address1'];
        address2 = json['address2'];
        address3 = json['address3'];
        city = json['city'];
        state = json['state'];
        postCode = json['postCode'];
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'address1': address1,
        'address2': address2,
        'address3': address3,
        'city': city,
        'state': state,
        'postCode': postCode,
        'country': country
    };

    getTypeName() => "SearchResultOfacAddress";
    TypeContext? context = _ctx;
}

class SearchResultOfacAka implements IConvertible
{
    String? firstName;
    String? lastName;
    String? type;
    String? strength;

    SearchResultOfacAka({this.firstName,this.lastName,this.type,this.strength});
    SearchResultOfacAka.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        firstName = json['firstName'];
        lastName = json['lastName'];
        type = json['type'];
        strength = json['strength'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'firstName': firstName,
        'lastName': lastName,
        'type': type,
        'strength': strength
    };

    getTypeName() => "SearchResultOfacAka";
    TypeContext? context = _ctx;
}

class SearchResultOfacDateOfBirth implements IConvertible
{
    String? dateOfBirth;

    SearchResultOfacDateOfBirth({this.dateOfBirth});
    SearchResultOfacDateOfBirth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        dateOfBirth = json['dateOfBirth'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'dateOfBirth': dateOfBirth
    };

    getTypeName() => "SearchResultOfacDateOfBirth";
    TypeContext? context = _ctx;
}

class SearchResultOfacNationality implements IConvertible
{
    String? country;

    SearchResultOfacNationality({this.country});
    SearchResultOfacNationality.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'country': country
    };

    getTypeName() => "SearchResultOfacNationality";
    TypeContext? context = _ctx;
}

class SearchResultOfacPlaceOfBirth implements IConvertible
{
    String? placeOfBirth;

    SearchResultOfacPlaceOfBirth({this.placeOfBirth});
    SearchResultOfacPlaceOfBirth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        placeOfBirth = json['placeOfBirth'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'placeOfBirth': placeOfBirth
    };

    getTypeName() => "SearchResultOfacPlaceOfBirth";
    TypeContext? context = _ctx;
}

class SearchResultOfac implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? firstName;
    String? lastName;
    List<SearchResultOfacAddress>? addresses;
    List<SearchResultOfacAka>? akas;
    List<SearchResultOfacDateOfBirth>? dateOfBirths;
    List<SearchResultOfacNationality>? nationalities;
    List<SearchResultOfacPlaceOfBirth>? placeOfBirths;

    SearchResultOfac({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.firstName,this.lastName,this.addresses,this.akas,this.dateOfBirths,this.nationalities,this.placeOfBirths});
    SearchResultOfac.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        firstName = json['firstName'];
        lastName = json['lastName'];
        addresses = JsonConverters.fromJson(json['addresses'],'List<SearchResultOfacAddress>',context!);
        akas = JsonConverters.fromJson(json['akas'],'List<SearchResultOfacAka>',context!);
        dateOfBirths = JsonConverters.fromJson(json['dateOfBirths'],'List<SearchResultOfacDateOfBirth>',context!);
        nationalities = JsonConverters.fromJson(json['nationalities'],'List<SearchResultOfacNationality>',context!);
        placeOfBirths = JsonConverters.fromJson(json['placeOfBirths'],'List<SearchResultOfacPlaceOfBirth>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'firstName': firstName,
        'lastName': lastName,
        'addresses': JsonConverters.toJson(addresses,'List<SearchResultOfacAddress>',context!),
        'akas': JsonConverters.toJson(akas,'List<SearchResultOfacAka>',context!),
        'dateOfBirths': JsonConverters.toJson(dateOfBirths,'List<SearchResultOfacDateOfBirth>',context!),
        'nationalities': JsonConverters.toJson(nationalities,'List<SearchResultOfacNationality>',context!),
        'placeOfBirths': JsonConverters.toJson(placeOfBirths,'List<SearchResultOfacPlaceOfBirth>',context!)
    };

    getTypeName() => "SearchResultOfac";
    TypeContext? context = _ctx;
}

class SearchResultDfat implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? fullName;
    String? address;
    String? dateOfBirth;
    String? placeOfBirth;
    String? nationality;

    SearchResultDfat({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.fullName,this.address,this.dateOfBirth,this.placeOfBirth,this.nationality});
    SearchResultDfat.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        fullName = json['fullName'];
        address = json['address'];
        dateOfBirth = json['dateOfBirth'];
        placeOfBirth = json['placeOfBirth'];
        nationality = json['nationality'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'fullName': fullName,
        'address': address,
        'dateOfBirth': dateOfBirth,
        'placeOfBirth': placeOfBirth,
        'nationality': nationality
    };

    getTypeName() => "SearchResultDfat";
    TypeContext? context = _ctx;
}

class SearchResultOsfi implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? fullName;
    String? address;
    String? dateOfBirth;
    String? placeOfBirth;
    String? nationality;

    SearchResultOsfi({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.fullName,this.address,this.dateOfBirth,this.placeOfBirth,this.nationality});
    SearchResultOsfi.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        fullName = json['fullName'];
        address = json['address'];
        dateOfBirth = json['dateOfBirth'];
        placeOfBirth = json['placeOfBirth'];
        nationality = json['nationality'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'fullName': fullName,
        'address': address,
        'dateOfBirth': dateOfBirth,
        'placeOfBirth': placeOfBirth,
        'nationality': nationality
    };

    getTypeName() => "SearchResultOsfi";
    TypeContext? context = _ctx;
}

class SearchResultCanadianJustice implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? name;
    String? dateOfBirth;
    String? country;
    int? refId;

    SearchResultCanadianJustice({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.name,this.dateOfBirth,this.country,this.refId});
    SearchResultCanadianJustice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        name = json['name'];
        dateOfBirth = json['dateOfBirth'];
        country = json['country'];
        refId = json['refId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'name': name,
        'dateOfBirth': dateOfBirth,
        'country': country,
        'refId': refId
    };

    getTypeName() => "SearchResultCanadianJustice";
    TypeContext? context = _ctx;
}

class SearchResultCanadianSema implements IConvertible
{
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? name;
    String? dateOfBirth;
    String? country;
    String? schedule;
    String? item;

    SearchResultCanadianSema({this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.name,this.dateOfBirth,this.country,this.schedule,this.item});
    SearchResultCanadianSema.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        name = json['name'];
        dateOfBirth = json['dateOfBirth'];
        country = json['country'];
        schedule = json['schedule'];
        item = json['item'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'name': name,
        'dateOfBirth': dateOfBirth,
        'country': country,
        'schedule': schedule,
        'item': item
    };

    getTypeName() => "SearchResultCanadianSema";
    TypeContext? context = _ctx;
}

class SearchResultAddress implements IConvertible
{
    int? searchResultAddressId;
    String? type;
    String? address1;
    String? address2;
    String? address3;
    String? city;
    String? county;
    String? postCode;
    String? country;

    SearchResultAddress({this.searchResultAddressId,this.type,this.address1,this.address2,this.address3,this.city,this.county,this.postCode,this.country});
    SearchResultAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultAddressId = json['searchResultAddressId'];
        type = json['type'];
        address1 = json['address1'];
        address2 = json['address2'];
        address3 = json['address3'];
        city = json['city'];
        county = json['county'];
        postCode = json['postCode'];
        country = json['country'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultAddressId': searchResultAddressId,
        'type': type,
        'address1': address1,
        'address2': address2,
        'address3': address3,
        'city': city,
        'county': county,
        'postCode': postCode,
        'country': country
    };

    getTypeName() => "SearchResultAddress";
    TypeContext? context = _ctx;
}

class SearchResultDateOfBirth implements IConvertible
{
    int? searchResultDateOfBirthId;
    String? dateOfBirth;
    int? year;
    int? month;
    int? day;
    String? type;

    SearchResultDateOfBirth({this.searchResultDateOfBirthId,this.dateOfBirth,this.year,this.month,this.day,this.type});
    SearchResultDateOfBirth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultDateOfBirthId = json['searchResultDateOfBirthId'];
        dateOfBirth = json['dateOfBirth'];
        year = json['year'];
        month = json['month'];
        day = json['day'];
        type = json['type'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultDateOfBirthId': searchResultDateOfBirthId,
        'dateOfBirth': dateOfBirth,
        'year': year,
        'month': month,
        'day': day,
        'type': type
    };

    getTypeName() => "SearchResultDateOfBirth";
    TypeContext? context = _ctx;
}

class SearchResultName implements IConvertible
{
    int? searchResultNameId;
    String? type;
    String? title;
    String? fullName;
    double? resultSimilarity;

    SearchResultName({this.searchResultNameId,this.type,this.title,this.fullName,this.resultSimilarity});
    SearchResultName.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultNameId = json['searchResultNameId'];
        type = json['type'];
        title = json['title'];
        fullName = json['fullName'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultNameId': searchResultNameId,
        'type': type,
        'title': title,
        'fullName': fullName,
        'resultSimilarity': resultSimilarity
    };

    getTypeName() => "SearchResultName";
    TypeContext? context = _ctx;
}

class SearchResultNationality implements IConvertible
{
    int? searchResultNationalityId;
    String? nationality;

    SearchResultNationality({this.searchResultNationalityId,this.nationality});
    SearchResultNationality.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultNationalityId = json['searchResultNationalityId'];
        nationality = json['nationality'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultNationalityId': searchResultNationalityId,
        'nationality': nationality
    };

    getTypeName() => "SearchResultNationality";
    TypeContext? context = _ctx;
}

class SearchResultPlaceOfBirth implements IConvertible
{
    int? searchResultPlaceOfBirthId;
    String? placeOfBirth;
    String? countryOfBirth;

    SearchResultPlaceOfBirth({this.searchResultPlaceOfBirthId,this.placeOfBirth,this.countryOfBirth});
    SearchResultPlaceOfBirth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultPlaceOfBirthId = json['searchResultPlaceOfBirthId'];
        placeOfBirth = json['placeOfBirth'];
        countryOfBirth = json['countryOfBirth'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultPlaceOfBirthId': searchResultPlaceOfBirthId,
        'placeOfBirth': placeOfBirth,
        'countryOfBirth': countryOfBirth
    };

    getTypeName() => "SearchResultPlaceOfBirth";
    TypeContext? context = _ctx;
}

class SearchResultRemark implements IConvertible
{
    int? searchResultRemarkId;
    String? name;
    String? description;

    SearchResultRemark({this.searchResultRemarkId,this.name,this.description});
    SearchResultRemark.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultRemarkId = json['searchResultRemarkId'];
        name = json['name'];
        description = json['description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultRemarkId': searchResultRemarkId,
        'name': name,
        'description': description
    };

    getTypeName() => "SearchResultRemark";
    TypeContext? context = _ctx;
}

class SearchResultEntry implements IConvertible
{
    int? searchResultId;
    int? resultStrength;
    double? resultSimilarity;
    bool? resultResolved;
    String? resultType;
    DateTime? dateUpdated;
    String? sanctionsListId;
    String? sanctionsListName;
    List<SearchResultAddress>? addresses;
    List<SearchResultDateOfBirth>? datesOfBirth;
    List<SearchResultName>? names;
    List<SearchResultNationality>? nationalities;
    List<SearchResultPlaceOfBirth>? placesOfBirth;
    List<SearchResultRemark>? remarks;

    SearchResultEntry({this.searchResultId,this.resultStrength,this.resultSimilarity,this.resultResolved,this.resultType,this.dateUpdated,this.sanctionsListId,this.sanctionsListName,this.addresses,this.datesOfBirth,this.names,this.nationalities,this.placesOfBirth,this.remarks});
    SearchResultEntry.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        searchResultId = json['searchResultId'];
        resultStrength = json['resultStrength'];
        resultSimilarity = JsonConverters.toDouble(json['resultSimilarity']);
        resultResolved = json['resultResolved'];
        resultType = json['resultType'];
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        sanctionsListId = json['sanctionsListId'];
        sanctionsListName = json['sanctionsListName'];
        addresses = JsonConverters.fromJson(json['addresses'],'List<SearchResultAddress>',context!);
        datesOfBirth = JsonConverters.fromJson(json['datesOfBirth'],'List<SearchResultDateOfBirth>',context!);
        names = JsonConverters.fromJson(json['names'],'List<SearchResultName>',context!);
        nationalities = JsonConverters.fromJson(json['nationalities'],'List<SearchResultNationality>',context!);
        placesOfBirth = JsonConverters.fromJson(json['placesOfBirth'],'List<SearchResultPlaceOfBirth>',context!);
        remarks = JsonConverters.fromJson(json['remarks'],'List<SearchResultRemark>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'searchResultId': searchResultId,
        'resultStrength': resultStrength,
        'resultSimilarity': resultSimilarity,
        'resultResolved': resultResolved,
        'resultType': resultType,
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'sanctionsListId': sanctionsListId,
        'sanctionsListName': sanctionsListName,
        'addresses': JsonConverters.toJson(addresses,'List<SearchResultAddress>',context!),
        'datesOfBirth': JsonConverters.toJson(datesOfBirth,'List<SearchResultDateOfBirth>',context!),
        'names': JsonConverters.toJson(names,'List<SearchResultName>',context!),
        'nationalities': JsonConverters.toJson(nationalities,'List<SearchResultNationality>',context!),
        'placesOfBirth': JsonConverters.toJson(placesOfBirth,'List<SearchResultPlaceOfBirth>',context!),
        'remarks': JsonConverters.toJson(remarks,'List<SearchResultRemark>',context!)
    };

    getTypeName() => "SearchResultEntry";
    TypeContext? context = _ctx;
}

class SearchResults implements IConvertible
{
    List<SearchResultEu>? euResults;
    List<SearchResultHmTreasury>? hmtResults;
    List<SearchResultHmTreasury>? hmtUkraineResults;
    List<SearchResultOfac>? ofacResults;
    List<SearchResultOfac>? ofacConsolidatedResults;
    List<SearchResultDfat>? dfatResults;
    List<SearchResultOsfi>? osfiResults;
    List<SearchResultCanadianJustice>? canadianJusticeResults;
    List<SearchResultCanadianSema>? canadianSemaResults;
    List<SearchResultEntry>? swissSecoResults;

    SearchResults({this.euResults,this.hmtResults,this.hmtUkraineResults,this.ofacResults,this.ofacConsolidatedResults,this.dfatResults,this.osfiResults,this.canadianJusticeResults,this.canadianSemaResults,this.swissSecoResults});
    SearchResults.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        euResults = JsonConverters.fromJson(json['euResults'],'List<SearchResultEu>',context!);
        hmtResults = JsonConverters.fromJson(json['hmtResults'],'List<SearchResultHmTreasury>',context!);
        hmtUkraineResults = JsonConverters.fromJson(json['hmtUkraineResults'],'List<SearchResultHmTreasury>',context!);
        ofacResults = JsonConverters.fromJson(json['ofacResults'],'List<SearchResultOfac>',context!);
        ofacConsolidatedResults = JsonConverters.fromJson(json['ofacConsolidatedResults'],'List<SearchResultOfac>',context!);
        dfatResults = JsonConverters.fromJson(json['dfatResults'],'List<SearchResultDfat>',context!);
        osfiResults = JsonConverters.fromJson(json['osfiResults'],'List<SearchResultOsfi>',context!);
        canadianJusticeResults = JsonConverters.fromJson(json['canadianJusticeResults'],'List<SearchResultCanadianJustice>',context!);
        canadianSemaResults = JsonConverters.fromJson(json['canadianSemaResults'],'List<SearchResultCanadianSema>',context!);
        swissSecoResults = JsonConverters.fromJson(json['swissSecoResults'],'List<SearchResultEntry>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'euResults': JsonConverters.toJson(euResults,'List<SearchResultEu>',context!),
        'hmtResults': JsonConverters.toJson(hmtResults,'List<SearchResultHmTreasury>',context!),
        'hmtUkraineResults': JsonConverters.toJson(hmtUkraineResults,'List<SearchResultHmTreasury>',context!),
        'ofacResults': JsonConverters.toJson(ofacResults,'List<SearchResultOfac>',context!),
        'ofacConsolidatedResults': JsonConverters.toJson(ofacConsolidatedResults,'List<SearchResultOfac>',context!),
        'dfatResults': JsonConverters.toJson(dfatResults,'List<SearchResultDfat>',context!),
        'osfiResults': JsonConverters.toJson(osfiResults,'List<SearchResultOsfi>',context!),
        'canadianJusticeResults': JsonConverters.toJson(canadianJusticeResults,'List<SearchResultCanadianJustice>',context!),
        'canadianSemaResults': JsonConverters.toJson(canadianSemaResults,'List<SearchResultCanadianSema>',context!),
        'swissSecoResults': JsonConverters.toJson(swissSecoResults,'List<SearchResultEntry>',context!)
    };

    getTypeName() => "SearchResults";
    TypeContext? context = _ctx;
}

class SearchSource implements IConvertible
{
    String? listId;
    String? listName;
    String? listShortName;
    bool? isAffectedByListUpdate;

    SearchSource({this.listId,this.listName,this.listShortName,this.isAffectedByListUpdate});
    SearchSource.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        listId = json['listId'];
        listName = json['listName'];
        listShortName = json['listShortName'];
        isAffectedByListUpdate = json['isAffectedByListUpdate'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'listId': listId,
        'listName': listName,
        'listShortName': listShortName,
        'isAffectedByListUpdate': isAffectedByListUpdate
    };

    getTypeName() => "SearchSource";
    TypeContext? context = _ctx;
}

class ArrayOfSearchResultEntries extends ListBase<SearchResultEntry> implements IConvertible
{
    final List<SearchResultEntry> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    SearchResultEntry operator [](int index) => l[index];
    void operator []=(int index, SearchResultEntry value) { l[index] = value; }
    ArrayOfSearchResultEntries();
    ArrayOfSearchResultEntries.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "ArrayOfSearchResultEntries";
    TypeContext? context = _ctx;
}

class SearchRecord implements IConvertible
{
    int? id;
    String? searchType;
    DateTime? dateSearched;
    DateTime? dateUpdated;
    DateTime? dateArchived;
    bool? isArchived;
    int? numOfResults;
    bool? clientInResults;
    bool? clientNotInResults;
    bool? affectedByUpdate;
    SearchCriteria? searchCriteria;
    SearchResults? searchResults;
    List<SearchSource>? searchSources;
    ArrayOfSearchResultEntries? listSearchResults;

    SearchRecord({this.id,this.searchType,this.dateSearched,this.dateUpdated,this.dateArchived,this.isArchived,this.numOfResults,this.clientInResults,this.clientNotInResults,this.affectedByUpdate,this.searchCriteria,this.searchResults,this.searchSources,this.listSearchResults});
    SearchRecord.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        searchType = json['searchType'];
        dateSearched = JsonConverters.fromJson(json['dateSearched'],'DateTime',context!);
        dateUpdated = JsonConverters.fromJson(json['dateUpdated'],'DateTime',context!);
        dateArchived = JsonConverters.fromJson(json['dateArchived'],'DateTime',context!);
        isArchived = json['isArchived'];
        numOfResults = json['numOfResults'];
        clientInResults = json['clientInResults'];
        clientNotInResults = json['clientNotInResults'];
        affectedByUpdate = json['affectedByUpdate'];
        searchCriteria = JsonConverters.fromJson(json['searchCriteria'],'SearchCriteria',context!);
        searchResults = JsonConverters.fromJson(json['searchResults'],'SearchResults',context!);
        searchSources = JsonConverters.fromJson(json['searchSources'],'List<SearchSource>',context!);
        listSearchResults = JsonConverters.fromJson(json['listSearchResults'],'ArrayOfSearchResultEntries',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'searchType': searchType,
        'dateSearched': JsonConverters.toJson(dateSearched,'DateTime',context!),
        'dateUpdated': JsonConverters.toJson(dateUpdated,'DateTime',context!),
        'dateArchived': JsonConverters.toJson(dateArchived,'DateTime',context!),
        'isArchived': isArchived,
        'numOfResults': numOfResults,
        'clientInResults': clientInResults,
        'clientNotInResults': clientNotInResults,
        'affectedByUpdate': affectedByUpdate,
        'searchCriteria': JsonConverters.toJson(searchCriteria,'SearchCriteria',context!),
        'searchResults': JsonConverters.toJson(searchResults,'SearchResults',context!),
        'searchSources': JsonConverters.toJson(searchSources,'List<SearchSource>',context!),
        'listSearchResults': JsonConverters.toJson(listSearchResults,'ArrayOfSearchResultEntries',context!)
    };

    getTypeName() => "SearchRecord";
    TypeContext? context = _ctx;
}

class GetSearchData extends BaseResponse implements IBaseSearchResponse, IConvertible
{
    ArrayOfLinkedTo? linkedTo;
    SearchRecord? searchRecord;

    GetSearchData({this.linkedTo,this.searchRecord});
    GetSearchData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        linkedTo = JsonConverters.fromJson(json['linkedTo'],'ArrayOfLinkedTo',context!);
        searchRecord = JsonConverters.fromJson(json['searchRecord'],'SearchRecord',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'linkedTo': JsonConverters.toJson(linkedTo,'ArrayOfLinkedTo',context!),
        'searchRecord': JsonConverters.toJson(searchRecord,'SearchRecord',context!)
    });

    getTypeName() => "GetSearchData";
    TypeContext? context = _ctx;
}

// @DataContract
class GetSearchResponse implements IConvertible
{
    // @DataMember
    GetSearchData? data;

    GetSearchResponse({this.data});
    GetSearchResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        data = JsonConverters.fromJson(json['data'],'GetSearchData',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'data': JsonConverters.toJson(data,'GetSearchData',context!)
    };

    getTypeName() => "GetSearchResponse";
    TypeContext? context = _ctx;
}

class GetSearchRequest implements IConvertible
{
    /**
    * If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it
    */
    // @ApiMember(Description="If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it")
    String? subUserName;

    /**
    * If set to true, the response will exclude resolved search results, it will only include unresolved results
    */
    // @ApiMember(Description="If set to true, the response will exclude resolved search results, it will only include unresolved results")
    bool? onlyShowUnresolvedResults;

    int? id;

    GetSearchRequest({this.subUserName,this.onlyShowUnresolvedResults,this.id});
    GetSearchRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        subUserName = json['subUserName'];
        onlyShowUnresolvedResults = json['onlyShowUnresolvedResults'];
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'subUserName': subUserName,
        'onlyShowUnresolvedResults': onlyShowUnresolvedResults,
        'id': id
    };

    getTypeName() => "GetSearchRequest";
    TypeContext? context = _ctx;
}

// @DataContract
class GetSearch extends BaseRequest implements IConvertible
{
    // @DataMember
    GetSearchRequest? request;

    GetSearch({this.request});
    GetSearch.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        request = JsonConverters.fromJson(json['request'],'GetSearchRequest',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'request': JsonConverters.toJson(request,'GetSearchRequest',context!)
    });

    getTypeName() => "GetSearch";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.sanctionssearch.com', types: <String, TypeInfo> {
    'Authentication': TypeInfo(TypeOf.Class, create:() => Authentication()),
    'BaseRequest': TypeInfo(TypeOf.Class, create:() => BaseRequest()),
    'ArrayOfResponseError': TypeInfo(TypeOf.Class, create:() => ArrayOfResponseError()),
    'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
    'LinkedTo': TypeInfo(TypeOf.Class, create:() => LinkedTo()),
    'ArrayOfLinkedTo': TypeInfo(TypeOf.Class, create:() => ArrayOfLinkedTo()),
    'SearchCriteria': TypeInfo(TypeOf.Class, create:() => SearchCriteria()),
    'SearchResultEuAddress': TypeInfo(TypeOf.Class, create:() => SearchResultEuAddress()),
    'SearchResultEuBirth': TypeInfo(TypeOf.Class, create:() => SearchResultEuBirth()),
    'SearchResultOfacEuCitizenship': TypeInfo(TypeOf.Class, create:() => SearchResultOfacEuCitizenship()),
    'SearchResultEuName': TypeInfo(TypeOf.Class, create:() => SearchResultEuName()),
    'SearchResultEuPassport': TypeInfo(TypeOf.Class, create:() => SearchResultEuPassport()),
    'SearchResultEu': TypeInfo(TypeOf.Class, create:() => SearchResultEu()),
    'List<SearchResultEuAddress>': TypeInfo(TypeOf.Class, create:() => <SearchResultEuAddress>[]),
    'List<SearchResultEuBirth>': TypeInfo(TypeOf.Class, create:() => <SearchResultEuBirth>[]),
    'List<SearchResultOfacEuCitizenship>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacEuCitizenship>[]),
    'List<SearchResultEuName>': TypeInfo(TypeOf.Class, create:() => <SearchResultEuName>[]),
    'List<SearchResultEuPassport>': TypeInfo(TypeOf.Class, create:() => <SearchResultEuPassport>[]),
    'SearchResultHmTreasury': TypeInfo(TypeOf.Class, create:() => SearchResultHmTreasury()),
    'SearchResultOfacAddress': TypeInfo(TypeOf.Class, create:() => SearchResultOfacAddress()),
    'SearchResultOfacAka': TypeInfo(TypeOf.Class, create:() => SearchResultOfacAka()),
    'SearchResultOfacDateOfBirth': TypeInfo(TypeOf.Class, create:() => SearchResultOfacDateOfBirth()),
    'SearchResultOfacNationality': TypeInfo(TypeOf.Class, create:() => SearchResultOfacNationality()),
    'SearchResultOfacPlaceOfBirth': TypeInfo(TypeOf.Class, create:() => SearchResultOfacPlaceOfBirth()),
    'SearchResultOfac': TypeInfo(TypeOf.Class, create:() => SearchResultOfac()),
    'List<SearchResultOfacAddress>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacAddress>[]),
    'List<SearchResultOfacAka>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacAka>[]),
    'List<SearchResultOfacDateOfBirth>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacDateOfBirth>[]),
    'List<SearchResultOfacNationality>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacNationality>[]),
    'List<SearchResultOfacPlaceOfBirth>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfacPlaceOfBirth>[]),
    'SearchResultDfat': TypeInfo(TypeOf.Class, create:() => SearchResultDfat()),
    'SearchResultOsfi': TypeInfo(TypeOf.Class, create:() => SearchResultOsfi()),
    'SearchResultCanadianJustice': TypeInfo(TypeOf.Class, create:() => SearchResultCanadianJustice()),
    'SearchResultCanadianSema': TypeInfo(TypeOf.Class, create:() => SearchResultCanadianSema()),
    'SearchResultAddress': TypeInfo(TypeOf.Class, create:() => SearchResultAddress()),
    'SearchResultDateOfBirth': TypeInfo(TypeOf.Class, create:() => SearchResultDateOfBirth()),
    'SearchResultName': TypeInfo(TypeOf.Class, create:() => SearchResultName()),
    'SearchResultNationality': TypeInfo(TypeOf.Class, create:() => SearchResultNationality()),
    'SearchResultPlaceOfBirth': TypeInfo(TypeOf.Class, create:() => SearchResultPlaceOfBirth()),
    'SearchResultRemark': TypeInfo(TypeOf.Class, create:() => SearchResultRemark()),
    'SearchResultEntry': TypeInfo(TypeOf.Class, create:() => SearchResultEntry()),
    'List<SearchResultAddress>': TypeInfo(TypeOf.Class, create:() => <SearchResultAddress>[]),
    'List<SearchResultDateOfBirth>': TypeInfo(TypeOf.Class, create:() => <SearchResultDateOfBirth>[]),
    'List<SearchResultName>': TypeInfo(TypeOf.Class, create:() => <SearchResultName>[]),
    'List<SearchResultNationality>': TypeInfo(TypeOf.Class, create:() => <SearchResultNationality>[]),
    'List<SearchResultPlaceOfBirth>': TypeInfo(TypeOf.Class, create:() => <SearchResultPlaceOfBirth>[]),
    'List<SearchResultRemark>': TypeInfo(TypeOf.Class, create:() => <SearchResultRemark>[]),
    'SearchResults': TypeInfo(TypeOf.Class, create:() => SearchResults()),
    'List<SearchResultEu>': TypeInfo(TypeOf.Class, create:() => <SearchResultEu>[]),
    'List<SearchResultHmTreasury>': TypeInfo(TypeOf.Class, create:() => <SearchResultHmTreasury>[]),
    'List<SearchResultOfac>': TypeInfo(TypeOf.Class, create:() => <SearchResultOfac>[]),
    'List<SearchResultDfat>': TypeInfo(TypeOf.Class, create:() => <SearchResultDfat>[]),
    'List<SearchResultOsfi>': TypeInfo(TypeOf.Class, create:() => <SearchResultOsfi>[]),
    'List<SearchResultCanadianJustice>': TypeInfo(TypeOf.Class, create:() => <SearchResultCanadianJustice>[]),
    'List<SearchResultCanadianSema>': TypeInfo(TypeOf.Class, create:() => <SearchResultCanadianSema>[]),
    'List<SearchResultEntry>': TypeInfo(TypeOf.Class, create:() => <SearchResultEntry>[]),
    'SearchSource': TypeInfo(TypeOf.Class, create:() => SearchSource()),
    'ArrayOfSearchResultEntries': TypeInfo(TypeOf.Class, create:() => ArrayOfSearchResultEntries()),
    'SearchRecord': TypeInfo(TypeOf.Class, create:() => SearchRecord()),
    'List<SearchSource>': TypeInfo(TypeOf.Class, create:() => <SearchSource>[]),
    'GetSearchData': TypeInfo(TypeOf.Class, create:() => GetSearchData()),
    'GetSearchResponse': TypeInfo(TypeOf.Class, create:() => GetSearchResponse()),
    'GetSearchRequest': TypeInfo(TypeOf.Class, create:() => GetSearchRequest()),
    'GetSearch': TypeInfo(TypeOf.Class, create:() => GetSearch()),
});

Dart GetSearch DTOs

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

HTTP + XML

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

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

<GetSearch xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Authentication>
    <ApiUserId>String</ApiUserId>
    <ApiUserKey>String</ApiUserKey>
  </Authentication>
  <Request>
    <Id>0</Id>
    <OnlyShowUnresolvedResults>false</OnlyShowUnresolvedResults>
    <SubUserName>String</SubUserName>
  </Request>
</GetSearch>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetSearchResponse 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>
    <SearchRecord>
      <AffectedByUpdate>false</AffectedByUpdate>
      <ClientInResults>false</ClientInResults>
      <ClientNotInResults>false</ClientNotInResults>
      <DateArchived>0001-01-01T00:00:00</DateArchived>
      <DateSearched>0001-01-01T00:00:00</DateSearched>
      <DateUpdated>0001-01-01T00:00:00</DateUpdated>
      <Id>0</Id>
      <IsArchived>false</IsArchived>
      <ListSearchResults>
        <SearchResultEntry>
          <Addresses>
            <SearchResultAddress>
              <Address1>String</Address1>
              <Address2>String</Address2>
              <Address3>String</Address3>
              <City>String</City>
              <Country>String</Country>
              <County>String</County>
              <PostCode>String</PostCode>
              <SearchResultAddressId>0</SearchResultAddressId>
              <Type>String</Type>
            </SearchResultAddress>
          </Addresses>
          <DateUpdated>0001-01-01T00:00:00</DateUpdated>
          <DatesOfBirth>
            <SearchResultDateOfBirth>
              <DateOfBirth>String</DateOfBirth>
              <Day>0</Day>
              <Month>0</Month>
              <SearchResultDateOfBirthId>0</SearchResultDateOfBirthId>
              <Type>String</Type>
              <Year>0</Year>
            </SearchResultDateOfBirth>
          </DatesOfBirth>
          <Names>
            <SearchResultName>
              <FullName>String</FullName>
              <ResultSimilarity>0</ResultSimilarity>
              <SearchResultNameId>0</SearchResultNameId>
              <Title>String</Title>
              <Type>String</Type>
            </SearchResultName>
          </Names>
          <Nationalities>
            <SearchResultNationality>
              <Nationality>String</Nationality>
              <SearchResultNationalityId>0</SearchResultNationalityId>
            </SearchResultNationality>
          </Nationalities>
          <PlacesOfBirth>
            <SearchResultPlaceOfBirth>
              <CountryOfBirth>String</CountryOfBirth>
              <PlaceOfBirth>String</PlaceOfBirth>
              <SearchResultPlaceOfBirthId>0</SearchResultPlaceOfBirthId>
            </SearchResultPlaceOfBirth>
          </PlacesOfBirth>
          <Remarks>
            <SearchResultRemark>
              <Description>String</Description>
              <Name>String</Name>
              <SearchResultRemarkId>0</SearchResultRemarkId>
            </SearchResultRemark>
          </Remarks>
          <ResultResolved>false</ResultResolved>
          <ResultSimilarity>0</ResultSimilarity>
          <ResultStrength>0</ResultStrength>
          <ResultType>String</ResultType>
          <SanctionsListId>String</SanctionsListId>
          <SanctionsListName>String</SanctionsListName>
          <SearchResultId>0</SearchResultId>
        </SearchResultEntry>
      </ListSearchResults>
      <NumOfResults>0</NumOfResults>
      <SearchCriteria>
        <Address>String</Address>
        <Country>String</Country>
        <DateOfBirth>String</DateOfBirth>
        <Name>String</Name>
        <Nationality>String</Nationality>
        <Reference>String</Reference>
      </SearchCriteria>
      <SearchResults>
        <CanadianJusticeResults>
          <SearchResultCanadianJustice>
            <Country>String</Country>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Name>String</Name>
            <RefId>0</RefId>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultCanadianJustice>
        </CanadianJusticeResults>
        <CanadianSemaResults>
          <SearchResultCanadianSema>
            <Country>String</Country>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Item>String</Item>
            <Name>String</Name>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
            <Schedule>String</Schedule>
          </SearchResultCanadianSema>
        </CanadianSemaResults>
        <DfatResults>
          <SearchResultDfat>
            <Address>String</Address>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <FullName>String</FullName>
            <Nationality>String</Nationality>
            <PlaceOfBirth>String</PlaceOfBirth>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultDfat>
        </DfatResults>
        <EuResults>
          <SearchResultEu>
            <Addresses>
              <SearchResultEuAddress>
                <City>String</City>
                <Country>String</Country>
                <Other>String</Other>
                <PostCode>String</PostCode>
                <Street>String</Street>
              </SearchResultEuAddress>
            </Addresses>
            <Births>
              <SearchResultEuBirth>
                <Country>String</Country>
                <Date>String</Date>
                <Place>String</Place>
              </SearchResultEuBirth>
            </Births>
            <Citizenships>
              <SearchResultOfacEuCitizenship>
                <Country>String</Country>
              </SearchResultOfacEuCitizenship>
            </Citizenships>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Names>
              <SearchResultEuName>
                <FullName>String</FullName>
                <Gender>String</Gender>
              </SearchResultEuName>
            </Names>
            <Passports>
              <SearchResultEuPassport>
                <Country>String</Country>
                <Number>String</Number>
              </SearchResultEuPassport>
            </Passports>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultEu>
        </EuResults>
        <HMTResults>
          <SearchResultHmTreasury>
            <Address1>String</Address1>
            <Address2>String</Address2>
            <Address3>String</Address3>
            <Address4>String</Address4>
            <Address5>String</Address5>
            <Address6>String</Address6>
            <Country>String</Country>
            <CountryOfBirth>String</CountryOfBirth>
            <DateListed>0001-01-01T00:00:00</DateListed>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Name1>String</Name1>
            <Name2>String</Name2>
            <Name3>String</Name3>
            <Name4>String</Name4>
            <Name5>String</Name5>
            <Name6>String</Name6>
            <Nationality>String</Nationality>
            <PostCode>String</PostCode>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultHmTreasury>
        </HMTResults>
        <HMTUkraineResults>
          <SearchResultHmTreasury>
            <Address1>String</Address1>
            <Address2>String</Address2>
            <Address3>String</Address3>
            <Address4>String</Address4>
            <Address5>String</Address5>
            <Address6>String</Address6>
            <Country>String</Country>
            <CountryOfBirth>String</CountryOfBirth>
            <DateListed>0001-01-01T00:00:00</DateListed>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Name1>String</Name1>
            <Name2>String</Name2>
            <Name3>String</Name3>
            <Name4>String</Name4>
            <Name5>String</Name5>
            <Name6>String</Name6>
            <Nationality>String</Nationality>
            <PostCode>String</PostCode>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultHmTreasury>
        </HMTUkraineResults>
        <OfacConsolidatedResults>
          <SearchResultOfac>
            <Addresses>
              <SearchResultOfacAddress>
                <Address1>String</Address1>
                <Address2>String</Address2>
                <Address3>String</Address3>
                <City>String</City>
                <Country>String</Country>
                <PostCode>String</PostCode>
                <State>String</State>
              </SearchResultOfacAddress>
            </Addresses>
            <Akas>
              <SearchResultOfacAka>
                <FirstName>String</FirstName>
                <LastName>String</LastName>
                <Strength>String</Strength>
                <Type>String</Type>
              </SearchResultOfacAka>
            </Akas>
            <DateOfBirths>
              <SearchResultOfacDateOfBirth>
                <DateOfBirth>String</DateOfBirth>
              </SearchResultOfacDateOfBirth>
            </DateOfBirths>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <FirstName>String</FirstName>
            <LastName>String</LastName>
            <Nationalities>
              <SearchResultOfacNationality>
                <Country>String</Country>
              </SearchResultOfacNationality>
            </Nationalities>
            <PlaceOfBirths>
              <SearchResultOfacPlaceOfBirth>
                <PlaceOfBirth>String</PlaceOfBirth>
              </SearchResultOfacPlaceOfBirth>
            </PlaceOfBirths>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultOfac>
        </OfacConsolidatedResults>
        <OfacResults>
          <SearchResultOfac>
            <Addresses>
              <SearchResultOfacAddress>
                <Address1>String</Address1>
                <Address2>String</Address2>
                <Address3>String</Address3>
                <City>String</City>
                <Country>String</Country>
                <PostCode>String</PostCode>
                <State>String</State>
              </SearchResultOfacAddress>
            </Addresses>
            <Akas>
              <SearchResultOfacAka>
                <FirstName>String</FirstName>
                <LastName>String</LastName>
                <Strength>String</Strength>
                <Type>String</Type>
              </SearchResultOfacAka>
            </Akas>
            <DateOfBirths>
              <SearchResultOfacDateOfBirth>
                <DateOfBirth>String</DateOfBirth>
              </SearchResultOfacDateOfBirth>
            </DateOfBirths>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <FirstName>String</FirstName>
            <LastName>String</LastName>
            <Nationalities>
              <SearchResultOfacNationality>
                <Country>String</Country>
              </SearchResultOfacNationality>
            </Nationalities>
            <PlaceOfBirths>
              <SearchResultOfacPlaceOfBirth>
                <PlaceOfBirth>String</PlaceOfBirth>
              </SearchResultOfacPlaceOfBirth>
            </PlaceOfBirths>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultOfac>
        </OfacResults>
        <OsfiResults>
          <SearchResultOsfi>
            <Address>String</Address>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <FullName>String</FullName>
            <Nationality>String</Nationality>
            <PlaceOfBirth>String</PlaceOfBirth>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultOsfi>
        </OsfiResults>
        <SwissSecoResults>
          <SearchResultEntry>
            <Addresses>
              <SearchResultAddress>
                <Address1>String</Address1>
                <Address2>String</Address2>
                <Address3>String</Address3>
                <City>String</City>
                <Country>String</Country>
                <County>String</County>
                <PostCode>String</PostCode>
                <SearchResultAddressId>0</SearchResultAddressId>
                <Type>String</Type>
              </SearchResultAddress>
            </Addresses>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <DatesOfBirth>
              <SearchResultDateOfBirth>
                <DateOfBirth>String</DateOfBirth>
                <Day>0</Day>
                <Month>0</Month>
                <SearchResultDateOfBirthId>0</SearchResultDateOfBirthId>
                <Type>String</Type>
                <Year>0</Year>
              </SearchResultDateOfBirth>
            </DatesOfBirth>
            <Names>
              <SearchResultName>
                <FullName>String</FullName>
                <ResultSimilarity>0</ResultSimilarity>
                <SearchResultNameId>0</SearchResultNameId>
                <Title>String</Title>
                <Type>String</Type>
              </SearchResultName>
            </Names>
            <Nationalities>
              <SearchResultNationality>
                <Nationality>String</Nationality>
                <SearchResultNationalityId>0</SearchResultNationalityId>
              </SearchResultNationality>
            </Nationalities>
            <PlacesOfBirth>
              <SearchResultPlaceOfBirth>
                <CountryOfBirth>String</CountryOfBirth>
                <PlaceOfBirth>String</PlaceOfBirth>
                <SearchResultPlaceOfBirthId>0</SearchResultPlaceOfBirthId>
              </SearchResultPlaceOfBirth>
            </PlacesOfBirth>
            <Remarks>
              <SearchResultRemark>
                <Description>String</Description>
                <Name>String</Name>
                <SearchResultRemarkId>0</SearchResultRemarkId>
              </SearchResultRemark>
            </Remarks>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
            <SanctionsListId>String</SanctionsListId>
            <SanctionsListName>String</SanctionsListName>
            <SearchResultId>0</SearchResultId>
          </SearchResultEntry>
        </SwissSecoResults>
      </SearchResults>
      <SearchSources>
        <SearchSource>
          <IsAffectedByListUpdate>false</IsAffectedByListUpdate>
          <ListId>String</ListId>
          <ListName>String</ListName>
          <ListShortName>String</ListShortName>
        </SearchSource>
      </SearchSources>
      <SearchType>String</SearchType>
    </SearchRecord>
  </Data>
</GetSearchResponse>