/* Options: Date: 2025-03-15 04:29:09 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: AddDbsSearch.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/dbs", "POST") // @DataContract public class AddDbsSearch : BaseRequest, IReturn { public typealias Return = AddDbsSearchResponse // @DataMember public var request:AddDbsSearchRequest 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(AddDbsSearchRequest.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 AddDbsSearchResponse : Codable { // @DataMember public var data:AddDbsSearchData 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 AddDbsSearchRequest : Codable { /** * The full name of the applicant */ // @ApiMember(Description="The full name of the applicant", IsRequired=true) public var name:String /** * The date of birth for the applicant (DD/MM/YYYY format) */ // @ApiMember(Description="The date of birth for the applicant (DD/MM/YYYY format)", IsRequired=true) public var dateOfBirth:String /** * The email address of the applicant */ // @ApiMember(Description="The email address of the applicant", IsRequired=true) public var email:String /** * The applicant's mobile phone number in international format (e.g. '+447123456789') */ // @ApiMember(Description="The applicant's mobile phone number in international format (e.g. '+447123456789')", IsRequired=true) public var mobileInternational:String /** * The country where the job is located */ // @ApiMember(Description="The country where the job is located", IsRequired=true) public var jobLocation:String /** * The disclosure level of the DBS required */ // @ApiMember(Description="The disclosure level of the DBS required", IsRequired=true) public var disclosureLevel:String /** * Your reference, if any */ // @ApiMember(Description="Your reference, if any") public var reference:String /** * If this is specified, the search will be created for the specified sub user, otherwise it will be created in the main user account */ // @ApiMember(Description="If this is specified, the search will be created for the specified sub user, otherwise it will be created in the main user account") public var subUserName:String /** * If the search should be linked to other searches, specify the them here */ // @ApiMember(Description="If the search should be linked to other searches, specify the them here") public var linkedTo:ArrayOfLinkedTo required public init(){} } public class AddDbsSearchData : BaseResponse, IBaseSearchResponse { public var linkedTo:ArrayOfLinkedTo public var summary:DbsSearchSummary required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case linkedTo case summary } 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) summary = try container.decodeIfPresent(DbsSearchSummary.self, forKey: .summary) } 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 summary != nil { try container.encode(summary, forKey: .summary) } } } 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 protocol IBaseSearchResponse : IBaseDataResponse { var linkedTo:ArrayOfLinkedTo { get set } } public class DbsSearchSummary : Codable { public var id:Int public var dateSearched:Date public var dateUpdated:Date public var status:String public var disclosureStatus:String public var isApplicantInfoCompleted:Bool public var isIdCheckCompleted:Bool public var isApplicationCompleted:Bool public var isApplicationSubmitted:Bool public var isApplicationDisclosed:Bool public var disclosureLevel:String public var applicantInformation:ApplicantInformation 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 ApplicantInformation : Codable { public var name:String public var dateOfBirth:String public var email:String public var mobileInternational:String public var jobLocation:String public var reference:String required public init(){} }