""" Options: Date: 2025-03-15 05:27:32 Version: 8.30 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.sanctionssearch.com/v2 #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GetDbsSearches.* #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: # @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") api_user_id: Optional[str] = None """ The API User ID provided by us when you signed up to use our API """ # @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") api_user_key: Optional[str] = None """ The API User Key provided by us when you signed up to use our API """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseRequest(IBaseRequest): # @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body") authentication: Optional[Authentication] = None """ The authentication credentials """ class IBaseRequest: authentication: Optional[Authentication] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PagedRequest(BaseRequest): # @ApiMember(Description="The maximum number of records to be returned in one page", ParameterType="query") page_limit: int = 0 """ The maximum number of records to be returned in one page """ # @ApiMember(Description="The starting point in the list of records from where the data should be fetched. Zero based index.", ParameterType="query") page_offset: int = 0 """ The starting point in the list of records from where the data should be fetched. Zero based index. """ # @ApiMember(Description="The term to determine the order in which the data is returned", ParameterType="query") sort: Optional[str] = None """ The term to determine the order in which the data is returned """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseResponse(IBaseDataResponse, IHasResponseStatus): # @ApiMember(Description="The status of the response") response_status: Optional[ResponseStatus] = None """ The status of the response """ T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PagedResponse(Generic[T], BaseResponse): # @ApiMember(Description="The response Metadata") meta: Optional[Meta[T]] = None """ The response Metadata """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DbsSearchShort: id: int = 0 date_searched: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: datetime.datetime = datetime.datetime(1, 1, 1) status: Optional[str] = None disclosure_status: Optional[str] = None is_applicant_info_completed: bool = False is_id_check_completed: bool = False is_application_completed: bool = False is_application_submitted: bool = False is_application_disclosed: bool = False disclosure_level: Optional[str] = None name: Optional[str] = None reference: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfDbsSearchShort(List[DbsSearchShort]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetDbsSearchesData(PagedResponse[GetDbsSearches]): searches: Optional[ArrayOfDbsSearchShort] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetDbsSearchesResponse: data: Optional[GetDbsSearchesData] = None # @Route("/dbs", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetDbsSearches(PagedRequest, IReturn[GetDbsSearchesResponse]): # @ApiMember(Description="Filter the results to those that have a Name including the specified value", ParameterType="query") name: Optional[str] = None """ Filter the results to those that have a Name including the specified value """ # @ApiMember(Description="Filter the results to those that were created after (or on) this date", ParameterType="query") date_from: Optional[datetime.datetime] = None """ Filter the results to those that were created after (or on) this date """ # @ApiMember(Description="Filter the results to those that were created before this date", ParameterType="query") date_to: Optional[datetime.datetime] = None """ Filter the results to those that were created before this date """ # @ApiMember(Description="Filter the results to those where the applicant has provided their information (true), or not (false), or either (null)", ParameterType="query") is_applicant_info_completed: Optional[bool] = None """ Filter the results to those where the applicant has provided their information (true), or not (false), or either (null) """ # @ApiMember(Description="Filter the results to those where the ID Checker has verified the applicant's ID (true), or not (false), or either (null)", ParameterType="query") is_id_check_completed: Optional[bool] = None """ Filter the results to those where the ID Checker has verified the applicant's ID (true), or not (false), or either (null) """ # @ApiMember(Description="Filter the results to those where the application is complete and ready to be submitted (true), or not (false), or either (null)", ParameterType="query") is_application_completed: Optional[bool] = None """ Filter the results to those where the application is complete and ready to be submitted (true), or not (false), or either (null) """ # @ApiMember(Description="Filter the results to those where the application has been submitted (true), or not (false), or either (null)", ParameterType="query") is_application_submitted: Optional[bool] = None """ Filter the results to those where the application has been submitted (true), or not (false), or either (null) """ # @ApiMember(Description="Filter the results to those where the application has been disclosed (true), or not (false), or either (null)", ParameterType="query") is_application_disclosed: Optional[bool] = None """ Filter the results to those where the application has been disclosed (true), or not (false), or either (null) """ # @ApiMember(Description="If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view", ParameterType="query") sub_user_name: Optional[str] = None """ If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view """ 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 Links: # @ApiMember() self: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MetaLinks(Links): # @ApiMember(Description="The link to the first page of records") first: Optional[str] = None """ The link to the first page of records """ # @ApiMember(Description="The link to the last page of records") last: Optional[str] = None """ The link to the last page of records """ # @ApiMember(Description="The link to the next page of records, if applicable") next: Optional[str] = None """ The link to the next page of records, if applicable """ # @ApiMember(Description="The link to the last page of records, if applicable") prev: Optional[str] = None """ The link to the last page of records, if applicable """ T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Meta(Generic[T]): # @ApiMember(Description="Pagination links") links: Optional[MetaLinks] = None """ Pagination links """ # @ApiMember(Description="The total number of records for the query") total_count: Optional[int] = None """ The total number of records for the query """ # @ApiMember(Description="The maximum number of records to be returned in one page") page_limit: Optional[int] = None """ The maximum number of records to be returned in one page """ # @ApiMember(Description="The starting point in the list of records from where the data should be fetched. Zero based index.") page_offset: Optional[int] = None """ The starting point in the list of records from where the data should be fetched. Zero based index. """