/* Options: Date: 2025-03-15 04:22:11 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: GetSearches.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/sanctions/list", "POST") // @DataContract public class GetSearches : BaseRequest, IReturn { public typealias Return = GetSearchesResponse // @DataMember public var request:GetSearchesRequest 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(GetSearchesRequest.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 GetSearchesResponse : Codable { // @DataMember public var data:GetSearchesData 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 GetSearchesRequest : 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 listUnresolvedSearches:Bool? public var listUpdatedSearches:Bool? public var listArchivedSearches:Bool public var page:Int public var sortOrder:String public var nameSearch:String public var nameSearchExact:Bool public var filterReference:String public var filterType: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 public var includeSearchSourcesFull:Bool required public init(){} } public class GetSearchesData : BaseResponse { public var totalSearchRecords:Int public var currentPageNum:Int public var maxPageNum:Int public var searchRecords:ArrayOfSearchListItem required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case totalSearchRecords case currentPageNum case maxPageNum case searchRecords } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) totalSearchRecords = try container.decodeIfPresent(Int.self, forKey: .totalSearchRecords) currentPageNum = try container.decodeIfPresent(Int.self, forKey: .currentPageNum) maxPageNum = try container.decodeIfPresent(Int.self, forKey: .maxPageNum) searchRecords = try container.decodeIfPresent(ArrayOfSearchListItem.self, forKey: .searchRecords) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if totalSearchRecords != nil { try container.encode(totalSearchRecords, forKey: .totalSearchRecords) } if currentPageNum != nil { try container.encode(currentPageNum, forKey: .currentPageNum) } if maxPageNum != nil { try container.encode(maxPageNum, forKey: .maxPageNum) } if searchRecords != nil { try container.encode(searchRecords, forKey: .searchRecords) } } } 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 ArrayOfSearchListItem : 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 SearchListItem : Codable { public var id:Int public var searchType:String public var dateSearched:Date public var dateUpdated:Date public var dateArchived:Date? public var isArchived:Bool public var numOfResults:Int public var clientInResults:Bool public var clientNotInResults:Bool public var affectedByUpdate:Bool public var searchCriteria:SearchCriteria public var searchSources:[SearchSource] = [] required public init(){} } public class SearchSource : Codable { public var listId:String public var listName:String public var listShortName:String public var isAffectedByListUpdate:Bool? required public init(){} }