/* Options: Date: 2025-10-21 00:20:54 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: AddCompanyLookup.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/companylookups/create", "POST") // @DataContract public class AddCompanyLookup : BaseRequest, IReturn { public typealias Return = AddCompanyLookupResponse // @DataMember public var request:AddCompanyLookupRequest 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(AddCompanyLookupRequest.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 AddCompanyLookupResponse : Codable { // @DataMember public var data:AddCompanyLookupData required public init(){} } // @DataContract public class Authentication : Codable { /** * The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User) */ // @DataMember // @ApiMember(Description="The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User)", IsRequired=true, ParameterType="header, body") public var apiUserId:String /** * The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key) */ // @DataMember // @ApiMember(Description="The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key)", IsRequired=true, ParameterType="header, body") public var apiUserKey:String /** * The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id). */ // @DataMember // @ApiMember(Description="The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).", ParameterType="header, body") public var userId: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 AddCompanyLookupRequest : Codable { /** * If the search should be saved against a single Sub User account, specify their username here */ // @ApiMember(Description="If the search should be saved against a single Sub User account, specify their username here") public var subUserName:String public var companyLookupId:Int? /** * If this CompanyLookup is to update an existing record due to CompanyLookup Monitor changes, set the ID of the existing record here. This is the only field that needs to be set in the request. */ // @ApiMember(Description="If this CompanyLookup is to update an existing record due to CompanyLookup Monitor changes, set the ID of the existing record here. This is the only field that needs to be set in the request.") public var monitorCompanyLookupId:Int? public var companyRegistrationNumber:String public var companyName:String public var companyAddress:String public var companyCountry:String public var performEnhancedSearch:Bool public var selectedLists:ArrayOfLists /** * 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 AddCompanyLookupData : BaseResponse, IBaseSearchResponse { public var linkedTo:ArrayOfLinkedTo public var searchRecord:CompanyLookupSearchRecord 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(CompanyLookupSearchRecord.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 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 protocol IBaseSearchResponse : IBaseDataResponse { var linkedTo:ArrayOfLinkedTo { get set } } public class CompanyLookupSearchRecord : 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 public var companyChanges:ArrayOfCompanyChanges public var companyDirectorsAndShareholders:[CompanyDirectorOrShareholder] = [] public var companySearchRecord:SearchListItem public var hasEnhancedInformation:Bool public var enhancedInformation:CompanyLookupEnhanced 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 ArrayOfCompanyChanges : 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 CompanyDirectorOrShareholder : Codable { public var id:Int public var searchType:String public var dateSearched:Date public var dateUpdated:Date public var numOfResults:Int public var clientInResults:Bool public var clientNotInResults:Bool public var affectedByUpdate:Bool public var searchCriteria:SearchCriteria public var isDirector:Bool public var isShareholder:Bool 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 CompanyLookupEnhanced : Codable { public var summary:CompanyLookupEnhancedSummary public var contactInformation:CompanyLookupEnhancedContactInfo public var sicCodes:[CompanyLookupEnhancedSicCode] = [] public var previousNames:[CompanyLookupEnhancedPreviousName] = [] public var shareStructure:CompanyLookupEnhancedShareStructure public var directors:CompanyLookupEnhancedDirectors public var groupStructure:CompanyLookupEnhancedStructure public var countyCourtJudgements:CompanyLookupEnhancedCCJs public var eventHistory:[CompanyLookupEnhancedEvent] = [] public var commentaries:[CompanyLookupEnhancedCommentary] = [] public var creditAccounts:CompanyLookupEnhancedCreditAccount public var financialStatements:[CompanyLookupEnhancedFinancialStatement] = [] 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 CompanyChange : Codable { public var dateOfChange:Date public var changeEventType:String public var isPending:Bool public var companyChangeData:ArrayOfCompanyChangeData required public init(){} } public class CompanyLookupEnhancedSummary : Codable { public var name:String public var country:String public var registrationNumber:String public var dateOfIncorporation:String public var typeOfIncorporation:String public var companyStatus:String public var address:String public var telephone:String public var sicCode:String public var sicDescription:String public var principleActivity:String public var latestAccounts:CompanyLookupEnhancedLatestAccounts required public init(){} } public class CompanyLookupEnhancedContactInfo : Codable { public var registeredAddress:CompanyLookupEnhancedAddress public var tradingAddresses:[CompanyLookupEnhancedAddress] = [] public var websites:[CompanyLookupEnhancedWebsite] = [] public var additionalContactInfo:CompanyLookupEnhancedAdditionalContact required public init(){} } public class CompanyLookupEnhancedSicCode : Codable { public var sicCode2003:Int? public var sicCode2003Description:String public var sicCode2007:Int? public var sicCode2007Description:String public var status:String required public init(){} } public class CompanyLookupEnhancedPreviousName : Codable { public var dateChanged:Date? public var name:String required public init(){} } public class CompanyLookupEnhancedShareStructure : Codable { public var issuedShareCapital:Double? public var shareholders:[CompanyLookupEnhancedShareholder] = [] required public init(){} } public class CompanyLookupEnhancedDirectors : Codable { public var currentDirectors:[CompanyLookupEnhancedDirector] = [] public var previousDirectors:[CompanyLookupEnhancedDirector] = [] required public init(){} } public class CompanyLookupEnhancedStructure : Codable { public var parentCompanies:[CompanyLookupEnhancedCompany] = [] public var subsidiaryCompanies:[CompanyLookupEnhancedCompany] = [] required public init(){} } public class CompanyLookupEnhancedCCJs : Codable { public var possibleCCJs:[CompanyLookupEnhancedCCJ] = [] public var exactCCJs:[CompanyLookupEnhancedCCJ] = [] required public init(){} } public class CompanyLookupEnhancedEvent : Codable { public var date:Date? public var Description:String required public init(){} } public class CompanyLookupEnhancedCommentary : Codable { public var text:String public var positiveOrNegative:String public var priority:Int? required public init(){} } public class CompanyLookupEnhancedCreditAccount : Codable { public var creditLimitHistory:[CompanyLookupEnhancedCreditLimit] = [] public var creditRatingHistory:[CompanyLookupEnhancedCreditRating] = [] required public init(){} } public class CompanyLookupEnhancedFinancialStatement : Codable { public var yearEndDateOrder:Int? public var yearEndDate:Date? public var summaryNumberOfWeeks:Int? public var summaryCurrency:String public var summaryConsolidatedAccount:String public var profitAndLoss:CompanyLookupFinancialProfit public var balanceSheet:CompanyLookupFinancialBalance public var capitalAndReserves:CompanyLookupFinancialCapital public var other:CompanyLookupFinancialOther public var cash:CompanyLookupFinancialCash public var misc:CompanyLookupFinancialMisc public var ratios:CompanyLookupFinancialRatios required public init(){} } public class ArrayOfCompanyChangeData : 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 CompanyLookupEnhancedLatestAccounts : Codable { public var currency:String public var turnover:Double? public var shareholdersEquity:Double? public var creditRating:Int? public var creditLimit:Int? public var creditRatingDescription:String public var accountRefDay:Int? public var accountRefMonth:Int? public var accountNextDueDate:Date? public var accountLastMadeUpDate:Date? public var accountCategory:String public var returnLastMadeUpDate:Date? required public init(){} } public class CompanyLookupEnhancedAddress : Codable { public var fullAddress:String public var address1:String public var address2:String public var address3:String public var address4:String public var postCode:String public var telephone:String required public init(){} } public class CompanyLookupEnhancedWebsite : Codable { public var website:String required public init(){} } public class CompanyLookupEnhancedAdditionalContact : Codable { public var telephone:String public var faxNumber:String public var emailAddress:String public var webAddress:String public var twitter:String public var facebook:String public var googlePlus:String public var linkedIn:String public var contactName:String public var businessClassification:String required public init(){} } public class CompanyLookupEnhancedShareholder : Codable { public var title:String public var forename:String public var surname:String public var address1:String public var address2:String public var address3:String public var address4:String public var address5:String public var postCode:String public var shareType:String public var number:Double? public var value:Double? public var currency:String public var shareholderType:String public var shareClass:String required public init(){} } public class CompanyLookupEnhancedDirector : Codable { public var name:String public var address:String public var gender:String public var appointmentDate:Date? public var resignationDate:Date? public var dateOfBirth:Date? public var position:String public var idNumber:Int? public var currentDirectorships:Int? public var previousDirectorships:Int? public var totalDirectorships:Int? required public init(){} } public class CompanyLookupEnhancedCompany : Codable { public var country:String public var companyName:String public var companyNumber:String required public init(){} } public class CompanyLookupEnhancedCCJ : Codable { public var date:Date? public var court:String public var amount:Double? public var caseNumber:String public var status:String public var datePaid:String public var incomingRecordDetails:String required public init(){} } public class CompanyLookupEnhancedCreditLimit : Codable { public var date:Date? public var dateOrder:Int? public var amount:Int? required public init(){} } public class CompanyLookupEnhancedCreditRating : Codable { public var date:Date? public var dateOrder:Int? public var amount:Int? public var shortDescription:String public var Description:String required public init(){} } public class CompanyLookupFinancialProfit : Codable { public var turnover:Double? public var export:Double? public var costOfSales:Double? public var grossProfit:Double? public var wagesAndSalaries:Double? public var directorEmolument:Double? public var operatingProfit:Double? public var depreciation:Double? public var auditFees:Double? public var interestPayments:Double? public var pretaxProfit:Double? public var taxation:Double? public var profitAfterTax:Double? public var dividendsPayable:Double? public var retainedProfit:Double? required public init(){} } public class CompanyLookupFinancialBalance : Codable { public var tangibleAccounts:Double? public var intangibleAssets:Double? public var totalFixedAssets:Double? public var stock:Double? public var tradeDebtors:Double? public var cash:Double? public var otherDebtors:Double? public var miscCurrentAssets:Double? public var totalCurrentAssets:Double? public var tradeCreditors:Double? public var bankLoansAndOverdrafts:Double? public var otherShortTermFinance:Double? public var miscCurrentLiabilities:Double? public var totalCurrentLiabilities:Double? public var bankLoansAndOverdraftsAndLTL:Double? public var otherLongTermFinance:Double? public var totalLongTermFinance:Double? required public init(){} } public class CompanyLookupFinancialCapital : Codable { public var calledUpSharedCapital:Double? public var profitAndLossAccountReserve:Double? public var revaluationReserve:Double? public var sundryReserves:Double? public var shareholderFunds:Double? required public init(){} } public class CompanyLookupFinancialOther : Codable { public var netWorth:Double? public var netAssets:Double? public var workingCapital:Double? public var totalAssets:Double? public var totalLiabilities:Double? required public init(){} } public class CompanyLookupFinancialCash : Codable { public var netCashFlowFromOperations:Double? public var netCashFlowBeforeFinancing:Double? public var netCashFlowFromFinancing:Double? public var increaseInCash:Double? required public init(){} } public class CompanyLookupFinancialMisc : Codable { public var contingentLiability:String public var capitalEmployed:Double? public var numberOfEmployees:Double? public var auditors:String public var auditorComments:String public var bankers:String public var bankBranchCode:String required public init(){} } public class CompanyLookupFinancialRatios : Codable { public var preTaxProfitMargin:Double? public var currentRatio:Double? public var salesNetworkingCapital:Double? public var gearing:Double? public var equity:Double? public var creditorDays:Double? public var debtorDays:Double? public var liquidityAcidTest:Double? public var returnOnCapitalEmployed:Double? public var returnOnNetAssetsEmployed:Double? public var returnOnTotalAssetsEmployed:Double? public var currentDebtRatio:Double? public var totalDebtRatio:Double? public var stockTurnoverRatio:Double? required public init(){} } public class CompanyChangeData : Codable { public var name:String public var previousValue:String public var newValue:String required public init(){} }