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 .json suffix or ?format=json

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

HTTP + JSON

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

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

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

{"data":{"linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}],"searchRecord":{"id":0,"searchType":"String","dateSearched":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","dateArchived":"\/Date(-62135596800000-0000)\/","isArchived":false,"numOfResults":0,"clientInResults":false,"clientNotInResults":false,"affectedByUpdate":false,"searchCriteria":{"name":"String","address":"String","country":"String","dateOfBirth":"String","nationality":"String","reference":"String"},"searchResults":{"euResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","addresses":[{"street":"String","city":"String","country":"String","postCode":"String","other":"String"}],"births":[{"date":"String","place":"String","country":"String"}],"citizenships":[{"country":"String"}],"names":[{"fullName":"String","gender":"String"}],"passports":[{"number":"String","country":"String"}]}],"hmtResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateListed":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","name1":"String","name2":"String","name3":"String","name4":"String","name5":"String","name6":"String","dateOfBirth":"String","countryOfBirth":"String","nationality":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","address6":"String","postCode":"String","country":"String"}],"hmtUkraineResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateListed":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","name1":"String","name2":"String","name3":"String","name4":"String","name5":"String","name6":"String","dateOfBirth":"String","countryOfBirth":"String","nationality":"String","address1":"String","address2":"String","address3":"String","address4":"String","address5":"String","address6":"String","postCode":"String","country":"String"}],"ofacResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","firstName":"String","lastName":"String","addresses":[{"address1":"String","address2":"String","address3":"String","city":"String","state":"String","postCode":"String","country":"String"}],"akas":[{"firstName":"String","lastName":"String","type":"String","strength":"String"}],"dateOfBirths":[{"dateOfBirth":"String"}],"nationalities":[{"country":"String"}],"placeOfBirths":[{"placeOfBirth":"String"}]}],"ofacConsolidatedResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","firstName":"String","lastName":"String","addresses":[{"address1":"String","address2":"String","address3":"String","city":"String","state":"String","postCode":"String","country":"String"}],"akas":[{"firstName":"String","lastName":"String","type":"String","strength":"String"}],"dateOfBirths":[{"dateOfBirth":"String"}],"nationalities":[{"country":"String"}],"placeOfBirths":[{"placeOfBirth":"String"}]}],"dfatResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","fullName":"String","address":"String","dateOfBirth":"String","placeOfBirth":"String","nationality":"String"}],"osfiResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","fullName":"String","address":"String","dateOfBirth":"String","placeOfBirth":"String","nationality":"String"}],"canadianJusticeResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","name":"String","dateOfBirth":"String","country":"String","refId":0}],"canadianSemaResults":[{"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","name":"String","dateOfBirth":"String","country":"String","schedule":"String","item":"String"}],"swissSecoResults":[{"searchResultId":0,"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","sanctionsListId":"String","sanctionsListName":"String","addresses":[{"searchResultAddressId":0,"type":"String","address1":"String","address2":"String","address3":"String","city":"String","county":"String","postCode":"String","country":"String"}],"datesOfBirth":[{"searchResultDateOfBirthId":0,"dateOfBirth":"String","year":0,"month":0,"day":0,"type":"String"}],"names":[{"searchResultNameId":0,"type":"String","title":"String","fullName":"String","resultSimilarity":0}],"nationalities":[{"searchResultNationalityId":0,"nationality":"String"}],"placesOfBirth":[{"searchResultPlaceOfBirthId":0,"placeOfBirth":"String","countryOfBirth":"String"}],"remarks":[{"searchResultRemarkId":0,"name":"String","description":"String"}]}]},"searchSources":[{"listId":"String","listName":"String","listShortName":"String","isAffectedByListUpdate":false}],"listSearchResults":[{"searchResultId":0,"resultStrength":0,"resultSimilarity":0,"resultResolved":false,"resultType":"String","dateUpdated":"\/Date(-62135596800000-0000)\/","sanctionsListId":"String","sanctionsListName":"String","addresses":[{"searchResultAddressId":0,"type":"String","address1":"String","address2":"String","address3":"String","city":"String","county":"String","postCode":"String","country":"String"}],"datesOfBirth":[{"searchResultDateOfBirthId":0,"dateOfBirth":"String","year":0,"month":0,"day":0,"type":"String"}],"names":[{"searchResultNameId":0,"type":"String","title":"String","fullName":"String","resultSimilarity":0}],"nationalities":[{"searchResultNationalityId":0,"nationality":"String"}],"placesOfBirth":[{"searchResultPlaceOfBirthId":0,"placeOfBirth":"String","countryOfBirth":"String"}],"remarks":[{"searchResultRemarkId":0,"name":"String","description":"String"}]}]},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}}