/* Options: Date: 2025-12-16 00:59:13 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: RegisterAccount.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/account/register", "POST") // @DataContract public class RegisterAccount : BaseRequest, IReturn { public typealias Return = RegisterAccountResponse // @DataMember public var request:RegisterAccountRequest required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case request } 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) } 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) } } } // @DataContract public class RegisterAccountResponse : Codable { /** * The response data */ // @DataMember // @ApiMember(Description="The response data") public var data:RegisterAccountData 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 RegisterAccountData : BaseResponse { /** * A unique identifier for the users API access */ // @ApiMember(Description="A unique identifier for the users API access") public var apiUserId:String /** * A secure, randomly generated key used for API authentication */ // @ApiMember(Description="A secure, randomly generated key used for API authentication") public var apiUserKey:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case apiUserId case apiUserKey } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) apiUserId = try container.decodeIfPresent(String.self, forKey: .apiUserId) apiUserKey = try container.decodeIfPresent(String.self, forKey: .apiUserKey) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if apiUserId != nil { try container.encode(apiUserId, forKey: .apiUserId) } if apiUserKey != nil { try container.encode(apiUserKey, forKey: .apiUserKey) } } } 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 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) } }