/* Options: Date: 2025-03-15 05:48:01 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: AddClientTemplate.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/clients/template", "GET") // @DataContract public class AddClientTemplate : BaseRequest, IReturn { public typealias Return = AddClientTemplateResponse 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 AddClientTemplateResponse : Codable { // @DataMember public var data:AddClientTemplateData required public init(){} } // @DataContract public class Authentication : Codable { /** * The API User ID provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserId:String /** * The API User Key provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserKey: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 AddClientRequest : Codable { /** * The full name of the client */ // @ApiMember(Description="The full name of the client", IsRequired=true) public var name:String /** * The email address of the client */ // @ApiMember(Description="The email address of the client", IsRequired=true) public var email:String /** * The client's mobile phone number in international format (e.g. '+447123456789') */ // @ApiMember(Description="The client's mobile phone number in international format (e.g. '+447123456789')", IsRequired=true) public var mobileInternational:String /** * The postal code of the client's address. Used in emails sent to the client to help them recognize the communication as genuine */ // @ApiMember(Description="The postal code of the client's address. Used in emails sent to the client to help them recognize the communication as genuine", IsRequired=true) public var postCode:String /** * Specifies the type of ValidateMe preset. Possible values are 'ValidateMe' for configuring RequiredDocuments, or 'PassportChipVerification' for setting the Passport as Proof of Name */ // @ApiMember(Description="Specifies the type of ValidateMe preset. Possible values are 'ValidateMe' for configuring RequiredDocuments, or 'PassportChipVerification' for setting the Passport as Proof of Name", IsRequired=true) public var proofOfPreset:CreateMobileClientType /** * The categories of proof and selected documents that the client can use to provide proof. Required if ClientType is set to 'ValidateMe' */ // @ApiMember(Description="The categories of proof and selected documents that the client can use to provide proof. Required if ClientType is set to 'ValidateMe'") public var proofOfDocumentCategories:ArrayOfProofOfDocumentCategories /** * If the client should be linked to other searches, specify the them here */ // @ApiMember(Description="If the client should be linked to other searches, specify the them here") public var linkedTo:ArrayOfLinkedTo required public init(){} } public class AddClientTemplateData : BaseResponse { public var request:AddClientRequest 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(AddClientRequest.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) } } } public class ArrayOfProofOfDocumentCategories : 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) } } // @DataContract(Name="CreateMobileClientType", Namespace="http://schemas.servicestack.net/types") public enum CreateMobileClientType : String, Codable { case Undefined case ValidateMe case PassportChipVerification } public class ArrayOfLinkedTo : 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 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 ProofOfDocumentCategory : Codable { /** * The ID of the ProofOfDocumentCategory */ // @ApiMember(Description="The ID of the ProofOfDocumentCategory", IsRequired=true) public var id:Int /** * The category or subject that requires proof (e.g., 'Name', 'Address', 'Right to work') */ // @ApiMember(Description="The category or subject that requires proof (e.g., 'Name', 'Address', 'Right to work')", IsRequired=true) public var proofOf:String /** * The documents that can be used to provide proof for the specified category. */ // @ApiMember(Description="The documents that can be used to provide proof for the specified category.", IsRequired=true) public var proofOfDocuments:ArrayOfProofOfDocuments required public init(){} } public class LinkedTo : Codable { public var clientId:Int? public var id:Int? public var type:String public var subtype:String public var status:String public var Description:String public var isArchived:Bool? public var name:String public var date:Date? 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 ArrayOfProofOfDocuments : 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 ProofOfDocument : Codable { /** * The ID of the ProofOfDocument */ // @ApiMember(Description="The ID of the ProofOfDocument", IsRequired=true) public var id:Int /** * The name of the ProofOfDocument */ // @ApiMember(Description="The name of the ProofOfDocument", IsRequired=true) public var name:String required public init(){} }