""" Options: Date: 2025-12-16 10:17:20 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: RegisterAccountTemplate.* #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. Can be provided in the request body, or as a header parameter (X-Api-User)", 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. Can be provided in the request body, or as a header parameter (X-Api-User) """ # @ApiMember(Description="The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key)", 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. Can be provided in the request body, or as a header parameter (X-Api-Key) """ # @ApiMember(Description="The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).", ParameterType="header, body") user_id: Optional[str] = None """ The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id). """ @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 RegisterAccountRequest: # @ApiMember(Description="The desired login username for the account", IsRequired=true) username: Optional[str] = None """ The desired login username for the account """ # @ApiMember(Description="The password for account login", IsRequired=true) password: Optional[str] = None """ The password for account login """ # @ApiMember(Description="The contact email address for the account holder", IsRequired=true) email: Optional[str] = None """ The contact email address for the account holder """ # @ApiMember(Description="The full legal name of the account holder", IsRequired=true) full_name: Optional[str] = None """ The full legal name of the account holder """ # @ApiMember(Description="The registered name of the company associated with this account", IsRequired=true) company_name: Optional[str] = None """ The registered name of the company associated with this account """ # @ApiMember(Description="The primary contact phone number of the company", IsRequired=true) company_phone: Optional[str] = None """ The primary contact phone number of the company """ # @ApiMember(Description="The first line of the company’s address (e.g., street name and number)", IsRequired=true) address1: Optional[str] = None """ The first line of the company’s address (e.g., street name and number) """ # @ApiMember(Description="The second line of the company’s address (optional)") address2: Optional[str] = None """ The second line of the company’s address (optional) """ # @ApiMember(Description="The third line of the company’s address (optional)") address3: Optional[str] = None """ The third line of the company’s address (optional) """ # @ApiMember(Description="The city where the company is located (optional)") city: Optional[str] = None """ The city where the company is located (optional) """ # @ApiMember(Description="The postal or ZIP code of the company’s address", IsRequired=true) postcode: Optional[str] = None """ The postal or ZIP code of the company’s address """ # @ApiMember(Description="The country where the company is registered", IsRequired=true) country: Optional[str] = None """ The country where the company is registered """ # @ApiMember(Description="The classification of the company (e.g., LLC, Corporation, Sole Proprietorship)", IsRequired=true) company_type: Optional[str] = None """ The classification of the company (e.g., LLC, Corporation, Sole Proprietorship) """ # @ApiMember(Description="The industry sector the company operates in", IsRequired=true) company_industry: Optional[str] = None """ The industry sector the company operates in """ # @ApiMember(Description="The trade body, network, or affiliation the company is a member of (if applicable)") company_network: Optional[str] = None """ The trade body, network, or affiliation the company is a member of (if applicable) """ # @ApiMember(Description="Indicates agreement to the terms and conditions (required)", IsRequired=true) agree_to_terms: bool = False """ Indicates agreement to the terms and conditions (required) """ # @ApiMember(Description="Indicates agreement to the data protection statement (required)", IsRequired=true) agree_to_data_protection: bool = False """ Indicates agreement to the data protection statement (required) """ # @ApiMember(Description="Indicates consent to be contacted (optional)") agree_to_contact: bool = False """ Indicates consent to be contacted (optional) """ # @ApiMember(Description="Indicates agreement to the privacy policy (required)", IsRequired=true) agree_to_privacy: bool = False """ Indicates agreement to the privacy policy (required) """ # @ApiMember(Description="An optional voucher code for discounts or promotions") voucher_code: Optional[str] = None """ An optional voucher code for discounts or promotions """ # @ApiMember(Description="An optional code that grants access to certain features or subscriptions") account_activation_code: Optional[str] = None """ An optional code that grants access to certain features or subscriptions """ # @ApiMember(Description="The company's VAT registration number (if applicable)") vat_number: Optional[str] = None """ The company's VAT registration number (if applicable) """ # @ApiMember(Description="The country where the company is VAT-registered") vat_country: Optional[str] = None """ The country where the company is VAT-registered """ @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 """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfCountry(List[str]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfCompanyIndustry(List[str]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfCompanyType(List[str]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfVATCountry(List[str]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReferenceData: # @ApiMember(Description="A list of supported country values") countries: Optional[ArrayOfCountry] = None """ A list of supported country values """ # @ApiMember(Description="A list of valid industry classifications for companies") company_industries: Optional[ArrayOfCompanyIndustry] = None """ A list of valid industry classifications for companies """ # @ApiMember(Description="A list of accepted company types") company_types: Optional[ArrayOfCompanyType] = None """ A list of accepted company types """ # @ApiMember(Description="A list of countries where VAT registration is recognized") vat_countries: Optional[ArrayOfVATCountry] = None """ A list of countries where VAT registration is recognized """ # @ApiMember(Description="A URL linking to the terms and conditions document") terms_and_conditions_link: Optional[str] = None """ A URL linking to the terms and conditions document """ # @ApiMember(Description="A URL linking to the privacy policy") privacy_policy_link: Optional[str] = None """ A URL linking to the privacy policy """ # @ApiMember(Description="The statement regarding contact preferences") contact_statement: Optional[str] = None """ The statement regarding contact preferences """ # @ApiMember(Description="The statement outlining data protection policies") data_protection_statement: Optional[str] = None """ The statement outlining data protection policies """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegisterAccountTemplateData(BaseResponse): # @ApiMember(Description="The request body of the RegisterAccount endpoint") request: Optional[RegisterAccountRequest] = None """ The request body of the RegisterAccount endpoint """ # @ApiMember(Description="Reference data to fill out the RegisterAccount body") reference_data: Optional[ReferenceData] = None """ Reference data to fill out the RegisterAccount body """ 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 RegisterAccountTemplateResponse: # @ApiMember(Description="The response data") data: Optional[RegisterAccountTemplateData] = None """ The response data """ # @Route("/account/register/template", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegisterAccountTemplate(BaseRequest, IReturn[RegisterAccountTemplateResponse]): pass