/* Options: Date: 2025-03-15 03:44:16 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: GetClient.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/clients/{Id}", "GET") // @DataContract public class GetClient : BaseRequest, IReturn { public typealias Return = GetClientResponse // @DataMember // @ApiMember(IsRequired=true, ParameterType="path") public var id:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(Int.self, forKey: .id) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } } } // @DataContract public class GetClientResponse : Codable { // @DataMember public var data:GetClientData 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 } } // @DataContract(Name="ClientState", Namespace="http://schemas.servicestack.net/types") public enum ClientState : String, Codable { case Undefined case PendingCompletion case PendingOcr case PendingVerification case Verified } public class Client : Codable { public var id:Int public var dateCreated:Date public var name:String public var email:String public var reference:String public var state:ClientState public var mobileInternational:String public var postCode:String public var isValidateMe:Bool public var face:Face public var video:Video public var location:Location public var numOfDocuments:Int public var passports:ArrayOfPassports public var drivingLicences:ArrayOfDrivingLicences public var otherDocuments:ArrayOfOtherDocuments public var proofOfDocumentCategories:ArrayOfProofOfDocumentCategories required public init(){} } public class GetClientData : BaseResponse, IBaseSearchResponse { public var linkedTo:ArrayOfLinkedTo public var client:Client required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case linkedTo case client } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) linkedTo = try container.decodeIfPresent(ArrayOfLinkedTo.self, forKey: .linkedTo) client = try container.decodeIfPresent(Client.self, forKey: .client) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if linkedTo != nil { try container.encode(linkedTo, forKey: .linkedTo) } if client != nil { try container.encode(client, forKey: .client) } } } 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) } } 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 Face : Codable { public var age:Double? public var gender:String public var emotion:String public var smile:Double? public var hairColour:String public var facialHair:String public var makeup:String public var glasses:String public var accessories:String required public init(){} } public class Video : Codable { public var id:Int public var videoUrl:String public var imageUrl:String public var videoTimestamps:[VideoTimestamp] = [] required public init(){} } public class Location : Codable { public var latitude:Double public var longitude:Double required public init(){} } public class ArrayOfPassports : 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 ArrayOfDrivingLicences : 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 ArrayOfOtherDocuments : 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 protocol IBaseSearchResponse : IBaseDataResponse { var linkedTo:ArrayOfLinkedTo { 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 VideoTimestamp : Codable { public var tagName:String public var milli:Int? public var imageUrl:String required public init(){} } public class Passport : Codable { public var clientFileId:Int public var firstName:String public var middleName:String public var lastName:String public var dateOfBirth:String public var gender:String public var mrzLineOne:String public var mrzLineTwo1:String public var mrzLineTwo2:String public var mrzLineTwo3:String public var mrzLineTwo4:String public var mrzLineTwo5:String public var mrzLineTwo6:String public var mrzLineTwo7:String public var mrzLineTwo8:String public var images:ArrayOfImages public var isVerified:Bool public var isFaceMatch:Bool? public var faceMatchConfidence:Double? public var hasPcvSearch:Bool public var hasDfaSearch:Bool public var isPassportChipVerified:Bool? public var passportChipData:PassportChipData public var isEligibleForPcv:Bool public var isEligibleForDfa:Bool required public init(){} } public class DrivingLicence : Codable { public var clientFileId:Int public var firstName:String public var middleName:String public var lastName:String public var dateOfBirth:String public var address:String public var drivingLicenceNumber:String public var images:ArrayOfImages public var isVerified:Bool public var isFaceMatch:Bool? public var faceMatchConfidence:Double? public var hasDfaSearch:Bool required public init(){} } public class OtherDocument : Codable { public var clientFileId:Int public var type:String public var typeOther:String public var Description:String public var originalImageUrl:String public var croppedImageUrl:String public var isVerified:Bool 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 ArrayOfImages : 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 PassportChipData : Codable { public var isIssuerVerified:Bool public var issuerCommonName:String public var issuerOrganisationName:String public var issuerCountry:String public var mrzLine1:String public var mrzLine2:String public var isMrzLine1Verified:Bool public var isMrzLine2Verified:Bool public var dataGroupsVerified:[Int] = [] public var dataGroupsFailed:[Int] = [] public var isFaceMatch:Bool public var faceMatchConfidence:Double? required public init(){} } public class Image : Codable { public var id:Int public var name:String public var ocrId:Int? public var url:String required public init(){} } 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(){} }