/* Options: Date: 2025-03-15 05:52:57 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: GetCompanyLookups.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/companylookups/list", "POST") // @DataContract public class GetCompanyLookups : BaseRequest, IReturn { public typealias Return = GetCompanyLookupsResponse // @DataMember public var request:GetCompanyLookupsRequest 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(GetCompanyLookupsRequest.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 GetCompanyLookupsResponse : Codable { // @DataMember public var data:GetCompanyLookupsData 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 GetCompanyLookupsRequest : Codable { /** * If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view */ // @ApiMember(Description="If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view") public var subUserName:String public var listIncompleteSearches:Bool public var page:Int public var sortOrder:String public var nameSearch:String public var filterReference:String public var filterDateFrom:Date? public var filterDateTo:Date? /** * If set, will only return searches created by the user */ // @ApiMember(Description="If set, will only return searches created by the user") public var filterUserName:String required public init(){} } public class GetCompanyLookupsData : BaseResponse { public var totalRecords:Int public var currentPageNum:Int public var maxPageNum:Int public var companyLookupRecords:ArrayOfCompanyLookupListItem required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case totalRecords case currentPageNum case maxPageNum case companyLookupRecords } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) totalRecords = try container.decodeIfPresent(Int.self, forKey: .totalRecords) currentPageNum = try container.decodeIfPresent(Int.self, forKey: .currentPageNum) maxPageNum = try container.decodeIfPresent(Int.self, forKey: .maxPageNum) companyLookupRecords = try container.decodeIfPresent(ArrayOfCompanyLookupListItem.self, forKey: .companyLookupRecords) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if totalRecords != nil { try container.encode(totalRecords, forKey: .totalRecords) } if currentPageNum != nil { try container.encode(currentPageNum, forKey: .currentPageNum) } if maxPageNum != nil { try container.encode(maxPageNum, forKey: .maxPageNum) } if companyLookupRecords != nil { try container.encode(companyLookupRecords, forKey: .companyLookupRecords) } } } public class ArrayOfLists : 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 ArrayOfCompanyLookupListItem : 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 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 SearchCriteria : Codable { public var name:String public var address:String public var country:String public var dateOfBirth:String public var nationality:String public var reference:String required public init(){} } public class CompanyLookupListItem : Codable { public var id:Int public var searchCriteria:SearchCriteria public var selectedLists:ArrayOfLists public var date:Date public var hasCompanyId:Bool public var hasCompanyDetails:Bool public var hasStartedSearches:Bool public var hasCompletedSearches:Bool required public init(){} }