/* Options: Date: 2025-03-15 03:41:25 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: GetSearch.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/sanctions/get", "POST") // @DataContract public class GetSearch : BaseRequest, IReturn { public typealias Return = GetSearchResponse // @DataMember public var request:GetSearchRequest 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(GetSearchRequest.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 GetSearchResponse : Codable { // @DataMember public var data:GetSearchData 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 GetSearchRequest : Codable { /** * If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it */ // @ApiMember(Description="If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it") public var subUserName:String /** * If set to true, the response will exclude resolved search results, it will only include unresolved results */ // @ApiMember(Description="If set to true, the response will exclude resolved search results, it will only include unresolved results") public var onlyShowUnresolvedResults:Bool public var id:Int required public init(){} } public class GetSearchData : BaseResponse, IBaseSearchResponse { public var linkedTo:ArrayOfLinkedTo public var searchRecord:SearchRecord required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case linkedTo case searchRecord } 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) searchRecord = try container.decodeIfPresent(SearchRecord.self, forKey: .searchRecord) } 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 searchRecord != nil { try container.encode(searchRecord, forKey: .searchRecord) } } } 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 SearchRecord : 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 searchResults:SearchResults public var searchSources:[SearchSource] = [] public var listSearchResults:ArrayOfSearchResultEntries 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 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 SearchResults : Codable { public var euResults:[SearchResultEu] = [] public var hmtResults:[SearchResultHmTreasury] = [] public var hmtUkraineResults:[SearchResultHmTreasury] = [] public var ofacResults:[SearchResultOfac] = [] public var ofacConsolidatedResults:[SearchResultOfac] = [] public var dfatResults:[SearchResultDfat] = [] public var osfiResults:[SearchResultOsfi] = [] public var canadianJusticeResults:[SearchResultCanadianJustice] = [] public var canadianSemaResults:[SearchResultCanadianSema] = [] public var swissSecoResults:[SearchResultEntry] = [] 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(){} } public class ArrayOfSearchResultEntries : 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 SearchResultEu : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var addresses:[SearchResultEuAddress] = [] public var births:[SearchResultEuBirth] = [] public var citizenships:[SearchResultOfacEuCitizenship] = [] public var names:[SearchResultEuName] = [] public var passports:[SearchResultEuPassport] = [] required public init(){} } public class SearchResultHmTreasury : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateListed:Date public var dateUpdated:Date public var name1:String public var name2:String public var name3:String public var name4:String public var name5:String public var name6:String public var dateOfBirth:String public var countryOfBirth:String public var nationality:String public var address1:String public var address2:String public var address3:String public var address4:String public var address5:String public var address6:String public var postCode:String public var country:String required public init(){} } public class SearchResultOfac : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var firstName:String public var lastName:String public var addresses:[SearchResultOfacAddress] = [] public var akas:[SearchResultOfacAka] = [] public var dateOfBirths:[SearchResultOfacDateOfBirth] = [] public var nationalities:[SearchResultOfacNationality] = [] public var placeOfBirths:[SearchResultOfacPlaceOfBirth] = [] required public init(){} } public class SearchResultDfat : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var fullName:String public var address:String public var dateOfBirth:String public var placeOfBirth:String public var nationality:String required public init(){} } public class SearchResultOsfi : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var fullName:String public var address:String public var dateOfBirth:String public var placeOfBirth:String public var nationality:String required public init(){} } public class SearchResultCanadianJustice : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var name:String public var dateOfBirth:String public var country:String public var refId:Int required public init(){} } public class SearchResultCanadianSema : Codable { public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date public var name:String public var dateOfBirth:String public var country:String public var schedule:String public var item:String required public init(){} } public class SearchResultEntry : Codable { public var searchResultId:Int public var resultStrength:Int public var resultSimilarity:Double public var resultResolved:Bool public var resultType:String public var dateUpdated:Date? public var sanctionsListId:String public var sanctionsListName:String public var addresses:[SearchResultAddress] = [] public var datesOfBirth:[SearchResultDateOfBirth] = [] public var names:[SearchResultName] = [] public var nationalities:[SearchResultNationality] = [] public var placesOfBirth:[SearchResultPlaceOfBirth] = [] public var remarks:[SearchResultRemark] = [] required public init(){} } public class SearchResultEuAddress : Codable { public var street:String public var city:String public var country:String public var postCode:String public var other:String required public init(){} } public class SearchResultEuBirth : Codable { public var date:String public var place:String public var country:String required public init(){} } public class SearchResultOfacEuCitizenship : Codable { public var country:String required public init(){} } public class SearchResultEuName : Codable { public var fullName:String public var gender:String required public init(){} } public class SearchResultEuPassport : Codable { public var number:String public var country:String required public init(){} } public class SearchResultOfacAddress : Codable { public var address1:String public var address2:String public var address3:String public var city:String public var state:String public var postCode:String public var country:String required public init(){} } public class SearchResultOfacAka : Codable { public var firstName:String public var lastName:String public var type:String public var strength:String required public init(){} } public class SearchResultOfacDateOfBirth : Codable { public var dateOfBirth:String required public init(){} } public class SearchResultOfacNationality : Codable { public var country:String required public init(){} } public class SearchResultOfacPlaceOfBirth : Codable { public var placeOfBirth:String required public init(){} } public class SearchResultAddress : Codable { public var searchResultAddressId:Int public var type:String public var address1:String public var address2:String public var address3:String public var city:String public var county:String public var postCode:String public var country:String required public init(){} } public class SearchResultDateOfBirth : Codable { public var searchResultDateOfBirthId:Int public var dateOfBirth:String public var year:Int16? public var month:UInt8? public var day:UInt8? public var type:String required public init(){} } public class SearchResultName : Codable { public var searchResultNameId:Int public var type:String public var title:String public var fullName:String public var resultSimilarity:Double required public init(){} } public class SearchResultNationality : Codable { public var searchResultNationalityId:Int public var nationality:String required public init(){} } public class SearchResultPlaceOfBirth : Codable { public var searchResultPlaceOfBirthId:Int public var placeOfBirth:String public var countryOfBirth:String required public init(){} } public class SearchResultRemark : Codable { public var searchResultRemarkId:Int public var name:String public var Description:String required public init(){} }