/* Options: Date: 2025-12-16 07:40:23 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.sanctionssearch.com/v2 //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: RegisterAccountTemplate.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/account/register/template", "GET") // @DataContract public class RegisterAccountTemplate : BaseRequest, IReturn { public typealias Return = RegisterAccountTemplateResponse required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } // @DataContract public class RegisterAccountTemplateResponse : Codable { /** * The response data */ // @DataMember // @ApiMember(Description="The response data") public var data:RegisterAccountTemplateData required public init(){} } // @DataContract public class Authentication : Codable { /** * 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) */ // @DataMember // @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") public var apiUserId:String /** * 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) */ // @DataMember // @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") public var apiUserKey:String /** * 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). */ // @DataMember // @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") public var userId:String required public init(){} } // @DataContract public class BaseRequest : IBaseRequest, Codable { /** * The authentication credentials */ // @DataMember // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body") public var authentication:Authentication required public init(){} } public protocol IBaseRequest { var authentication:Authentication { get set } } public class RegisterAccountRequest : Codable { /** * The desired login username for the account */ // @ApiMember(Description="The desired login username for the account", IsRequired=true) public var username:String /** * The password for account login */ // @ApiMember(Description="The password for account login", IsRequired=true) public var password:String /** * The contact email address for the account holder */ // @ApiMember(Description="The contact email address for the account holder", IsRequired=true) public var email:String /** * The full legal name of the account holder */ // @ApiMember(Description="The full legal name of the account holder", IsRequired=true) public var fullName:String /** * The registered name of the company associated with this account */ // @ApiMember(Description="The registered name of the company associated with this account", IsRequired=true) public var companyName:String /** * The primary contact phone number of the company */ // @ApiMember(Description="The primary contact phone number of the company", IsRequired=true) public var companyPhone:String /** * The first line of the company’s address (e.g., street name and number) */ // @ApiMember(Description="The first line of the company’s address (e.g., street name and number)", IsRequired=true) public var address1:String /** * The second line of the company’s address (optional) */ // @ApiMember(Description="The second line of the company’s address (optional)") public var address2:String /** * The third line of the company’s address (optional) */ // @ApiMember(Description="The third line of the company’s address (optional)") public var address3:String /** * The city where the company is located (optional) */ // @ApiMember(Description="The city where the company is located (optional)") public var city:String /** * The postal or ZIP code of the company’s address */ // @ApiMember(Description="The postal or ZIP code of the company’s address", IsRequired=true) public var postcode:String /** * The country where the company is registered */ // @ApiMember(Description="The country where the company is registered", IsRequired=true) public var country:String /** * The classification of the company (e.g., LLC, Corporation, Sole Proprietorship) */ // @ApiMember(Description="The classification of the company (e.g., LLC, Corporation, Sole Proprietorship)", IsRequired=true) public var companyType:String /** * The industry sector the company operates in */ // @ApiMember(Description="The industry sector the company operates in", IsRequired=true) public var companyIndustry:String /** * The trade body, network, or affiliation the company is a member of (if applicable) */ // @ApiMember(Description="The trade body, network, or affiliation the company is a member of (if applicable)") public var companyNetwork:String /** * Indicates agreement to the terms and conditions (required) */ // @ApiMember(Description="Indicates agreement to the terms and conditions (required)", IsRequired=true) public var agreeToTerms:Bool /** * Indicates agreement to the data protection statement (required) */ // @ApiMember(Description="Indicates agreement to the data protection statement (required)", IsRequired=true) public var agreeToDataProtection:Bool /** * Indicates consent to be contacted (optional) */ // @ApiMember(Description="Indicates consent to be contacted (optional)") public var agreeToContact:Bool /** * Indicates agreement to the privacy policy (required) */ // @ApiMember(Description="Indicates agreement to the privacy policy (required)", IsRequired=true) public var agreeToPrivacy:Bool /** * An optional voucher code for discounts or promotions */ // @ApiMember(Description="An optional voucher code for discounts or promotions") public var voucherCode:String /** * An optional code that grants access to certain features or subscriptions */ // @ApiMember(Description="An optional code that grants access to certain features or subscriptions") public var accountActivationCode:String /** * The company's VAT registration number (if applicable) */ // @ApiMember(Description="The company's VAT registration number (if applicable)") public var vatNumber:String /** * The country where the company is VAT-registered */ // @ApiMember(Description="The country where the company is VAT-registered") public var vatCountry:String required public init(){} } public class RegisterAccountTemplateData : BaseResponse { /** * The request body of the RegisterAccount endpoint */ // @ApiMember(Description="The request body of the RegisterAccount endpoint") public var request:RegisterAccountRequest /** * Reference data to fill out the RegisterAccount body */ // @ApiMember(Description="Reference data to fill out the RegisterAccount body") public var referenceData:ReferenceData required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case request case referenceData } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) request = try container.decodeIfPresent(RegisterAccountRequest.self, forKey: .request) referenceData = try container.decodeIfPresent(ReferenceData.self, forKey: .referenceData) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if request != nil { try container.encode(request, forKey: .request) } if referenceData != nil { try container.encode(referenceData, forKey: .referenceData) } } } public class BaseResponse : IBaseDataResponse, IHasResponseStatus, Codable { /** * The status of the response */ // @ApiMember(Description="The status of the response") public var responseStatus:ResponseStatus required public init(){} } public protocol IBaseDataResponse { var responseStatus:ResponseStatus { get set } } public protocol IHasResponseStatus { var responseStatus:ResponseStatus { get set } } public class ReferenceData : Codable { /** * A list of supported country values */ // @ApiMember(Description="A list of supported country values") public var countries:ArrayOfCountry /** * A list of valid industry classifications for companies */ // @ApiMember(Description="A list of valid industry classifications for companies") public var companyIndustries:ArrayOfCompanyIndustry /** * A list of accepted company types */ // @ApiMember(Description="A list of accepted company types") public var companyTypes:ArrayOfCompanyType /** * A list of countries where VAT registration is recognized */ // @ApiMember(Description="A list of countries where VAT registration is recognized") public var vatCountries:ArrayOfVATCountry /** * A URL linking to the terms and conditions document */ // @ApiMember(Description="A URL linking to the terms and conditions document") public var termsAndConditionsLink:String /** * A URL linking to the privacy policy */ // @ApiMember(Description="A URL linking to the privacy policy") public var privacyPolicyLink:String /** * The statement regarding contact preferences */ // @ApiMember(Description="The statement regarding contact preferences") public var contactStatement:String /** * The statement outlining data protection policies */ // @ApiMember(Description="The statement outlining data protection policies") public var dataProtectionStatement:String required public init(){} } public class ArrayOfResponseError : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class ArrayOfCountry : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class ArrayOfCompanyIndustry : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class ArrayOfCompanyType : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class ArrayOfVATCountry : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } }