""" Options:
Date: 2025-04-29 14:16:24
Version: 8.30
Tip: To override a DTO option, remove "#" prefix before updating
BaseUrl: https://api.sanctionssearch.com/v1
#GlobalNamespace:
#AddServiceStackTypes: True
#AddResponseStatus: False
#AddImplicitVersion:
#AddDescriptionAsComments: True
IncludeTypes: GetCompanySearch.*
#ExcludeTypes:
#DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum
#DataClass:
#DataClassJson:
"""
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Authentication(IAuthentication):
# @ApiMember(DataType="string", Description="The API User ID that will authenticate your request", IsRequired=true)
api_user_id: Optional[str] = None
"""
The API User ID that will authenticate your request
"""
# @ApiMember(DataType="string", Description="The API User Key that will authenticate your request", IsRequired=true)
api_user_key: Optional[str] = None
"""
The API User Key that will authenticate your request
"""
class IBaseRequest:
authentication: Optional[Authentication] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchCriteria:
name: Optional[str] = None
date_of_birth: Optional[str] = None
country_of_birth: Optional[str] = None
nationality: Optional[str] = None
address: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultHmTreasury:
result_strength: int = 0
result_similarity: Decimal = decimal.Decimal(0)
result_resolved: bool = False
result_type: Optional[str] = None
date_listed: datetime.datetime = datetime.datetime(1, 1, 1)
date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
name1: Optional[str] = None
name2: Optional[str] = None
name3: Optional[str] = None
name4: Optional[str] = None
name5: Optional[str] = None
name6: Optional[str] = None
date_of_birth: Optional[str] = None
country_of_birth: Optional[str] = None
nationality: Optional[str] = None
address1: Optional[str] = None
address2: Optional[str] = None
address3: Optional[str] = None
address4: Optional[str] = None
address5: Optional[str] = None
address6: Optional[str] = None
post_code: Optional[str] = None
country: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacAddress:
address1: Optional[str] = None
address2: Optional[str] = None
address3: Optional[str] = None
city: Optional[str] = None
state: Optional[str] = None
post_code: Optional[str] = None
country: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacAka:
first_name: Optional[str] = None
last_name: Optional[str] = None
type: Optional[str] = None
strength: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacDateOfBirth:
date_of_birth: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacNationality:
country: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacPlaceOfBirth:
place_of_birth: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfac:
result_strength: int = 0
result_similarity: Decimal = decimal.Decimal(0)
result_resolved: bool = False
result_type: Optional[str] = None
date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
first_name: Optional[str] = None
last_name: Optional[str] = None
addresses: Optional[List[SearchResultOfacAddress]] = None
akas: Optional[List[SearchResultOfacAka]] = None
date_of_births: Optional[List[SearchResultOfacDateOfBirth]] = None
nationalities: Optional[List[SearchResultOfacNationality]] = None
place_of_births: Optional[List[SearchResultOfacPlaceOfBirth]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResults:
hmt_results: Optional[List[SearchResultHmTreasury]] = None
ofac_results: Optional[List[SearchResultOfac]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchRecord:
id: int = 0
search_type: Optional[str] = None
date_searched: datetime.datetime = datetime.datetime(1, 1, 1)
date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
num_of_results: int = 0
client_in_results: bool = False
client_not_in_results: bool = False
affected_by_update: bool = False
search_criteria: Optional[SearchCriteria] = None
search_results: Optional[SearchResults] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCompanySearchData(IBaseDataResponse, IHasResponseStatus):
response_status: Optional[ResponseStatus] = None
search_record: Optional[SearchRecord] = None
class IAuthentication:
api_user_id: Optional[str] = None
api_user_key: Optional[str] = None
user_id: Optional[str] = None
class IBaseDataResponse:
response_status: Optional[ResponseStatus] = None
class IHasResponseStatus:
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCompanySearchResponse:
data: Optional[GetCompanySearchData] = None
# @Route("/sanctions/entity/get", "POST")
# @ApiResponse(Description="Your request is successful if the \"Data.ResponseStatus.Message\" field is \"Success\".", StatusCode=200)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCompanySearch(IReturn[GetCompanySearchResponse], IBaseRequest):
authentication: Optional[Authentication] = None
id: int = 0